TEAM MEMBERS: 1. 2. 3.
RITESH KUMAR SUGAM ANAND RITESH GAUTAM
Description
A robotic arm is a robotic manipulator, usually programmable, with similar functions to a human arm .Servo motor is used for joint rotation. It has about same number of degree of freedom as in human arm. Humans pick things up without thinking about the steps involved. In order for a robot or a robotic arm to pick up or move something, someone has to tell it to perform several actions in a particular order from moving the arm, to rotating the wrist to opening and closing the hand or fingers. .So, we can
Overview
Degree of Freedom:4 Payload Capacity(Fully Extended) : 150gm Maximum Reach(Fully Extended) : 35cm Rated speed(Adjustable) : 0-0.3 m/s Joint speed(Adjustable) : 0-60 rpm Hardware interface : USB Control Software : computer interface(GUI) Shoulder Base Spin : 180 Shoulder Pitch : 180 Elbow Pitch : 180 Wrist Pitch : 180 Gripper Opening(Max) : 8cm
2. The arm could grab things approximately in a hemisphere of 50cm and is robust made completely with an aluminium sheet of 2.5mm. 3. The arm is very user friendly because of the computer interface developed by us, even layman could operate it. 4. The could lift objects upto weight of 200 gm. 5. Enabling the base rotation without the help of any gears or ball bearing, also using only low torque servo motors and three castor wheels for rotating the whole body. 6. Developing the graphical user interface using only the opencv highgui functions, Instead of previously used matlab. 7. Keeping the design of robotic arm gripper simple, as well as implementing the gripping mechanism without using gears and with one servo motors.
Hitec splines have 24 teeth while Futaba splines are of 25 teeth. Therefore splines made for one servo type cannot be used with another. Spline is the place where a servo arm is connected. It is analogous to the shaft of a common DC motor.
Unlike DC motors, reversing the ground and positive supply connections does not change the direction (of rotation) of a servo. This may, in fact, damage the servo motor. That is why it is important to properly account for the order of wires in a servo motor.
Servo Control
A servo motor mainly consists of a DC motor, gear system, a position sensor which is mostly a potentiometer, and control electronics. The DC motor is connected with a gear mechanism which provides feedback to a position sensor which is mostly a potentiometer. From the gear box, the output of the motor is delivered via servo spline to the servo arm. The potentiometer changes position corresponding to the current position of the motor. So the change in resistance produces an equivalent change in voltage from the potentiometer. A pulse width
modulated signal is fed through the control wire. The pulse width is converted into an equivalent voltage that is compared with that of signal from the potentiometer in an error amplifier. The servo motor can be moved to a desired angular position by sending PWM (pulse width modulated) signals on the control wire. The servo understands the language of pulse position modulation. A pulse of width varying from 1 millisecond to 2 milliseconds in a repeated time frame is sent to the servo for around 50 times in a second. The width of the pulse determines the angular position. For example, a pulse of 1 millisecond moves the servo towards 0, while a 2 milliseconds wide pulse would take it to 180. The pulse width for in between angular positions can be interpolated accordingly. Thus a pulse of width 1.5 milliseconds will shift the servo to 90. It must be noted that these values are only the approximations. The actual behavior of the servos differs based on their manufacturer. A sequence of such pulses (50 in one second) is required to be passed to the servo to sustain a particular angular position. When the servo receives a pulse, it can retain the corresponding angular position for next 20 milliseconds. So a pulse in every 20 millisecond time frame must be fed to the servo.
The required pulse train for controlling the servo motor can be generated by a timer IC such as 555 or a microcontroller can be programmed to generate the required waveform. Refer Servo Motor interfacing with 8051 microcontroller and Servo control using AVR ATmega16.
Assembled Servomotor
Bracket
http://students.iitk.ac.in/projects/roboticsclub/robotic_arm Torque of each Servo Used Minimum Necessary (kg-cm) 1.Base 2.Shoulder 3.Elbow 4.Wrist 4.0 19.2 12.2 4.4 Use (kg-cm) 6.5 20 14.5 6.5
The code used for communication is as follows: #includeconio.h #includeTserial.cpp #includehighgui.h #includecv.h #includestring.h #includestdio.h Void mainsending(char* ch) { Tserial *com; Com=new Tserial (); Com->connect(COM1,9600,spNONE); if (com!=0) { com->sendArray(ch,4); com->disconnect(); } else printf("not sent"); }
{ count=0;
PORTA.0=1; PORTA.1=1;
PORTA.2=1; PORTA.3=1; PORTA.4=1; } if(count>=x[0]) PORTA.3=0; if(count>=x[1]) PORTA.0=0; if(count>=x[2]) PORTA.1=0; if(count>=x[3]) PORTA.2=0; if(count>=x[4]) PORTA.4=0; }
Programming Methodolgy
The data is transferred from the openCV GUI in following format:- a123 .The first alphabetical character denoted the servo to be activated and the later digits denote the angle at which that particular servo has to rotate. void sending_base(int y) { int i,n; n= .58 * x1 +52; conv_four(n,0);} void sending_shoulder(int y) {int n; n= .58 * x2 +62; conv_four(n,1); } void sending_elbow(int y) { int n; //for servo cal. //for servo cal.
Application of
Robotic Arm
The robotic arm can be designed to perform any desired task such as welding, gripping, spinning etc., depending on the application. For example robot arms in automotive assembly line perform a variety of tasks such as wielding and parts rotation and placement during assembly. In space the space shuttle Remote Manipulator System have multi degree of freedom robotic arms that have been used to perform a variety of tasks such as inspections of the Space Shuttle using a specially deployed boom with cameras and sensors attached at the end effector. The robot arms can be autonomous or controlled manually and can be used to perform a variety of tasks with great accuracy.The robotic arm can be fixed or mobile (i.e. wheeled) and can be designed for industrial or home applications. Robotic hands often have built-in pressure sensors that tell the computer how hard the robot is gripping a particular object. This keeps the robot from dropping or breaking whatever it's carrying. Other end effectors include blowtorches, drills and spray painters.this improves their performance.
In medical science: "Neuroarm" uses miniaturized tools such as laser scalpels with pinpoint accuracy and it can also perform soft tissue manipulation, needle insertion, suturing, and cauterization.
Acknowledgements
We would like to express our sincere thanks to robotics club,iit Kanpur and our coordinators 1. Mukul singh 2. Nehchal Jindal 3. Subhojit ghosh We would also like to thank pranay aggrawal and 4-i lab ,iit Kanpur for their help in completing the project successfully.
References/Web links
1. For pwm generation through atmega 16 microcontroller http://enricorossi.org/blog/2010/avr_atmega16_fast_pwm/ 2. For developing the graphical user interface using the opencv The best way to learn opencv is to read the oreilly s book Learning OpenCV:computer vision with opencv library. http://opencv.willowgarage.com/documentation/highgui._highlevel_gui_and_media_io.htm http://www.aishack.in/
3.
For articles related to robotics and the servo motors http://www.robosapiens-india.com/cookbook/robotics%20virtual%20book/index.html http://www.engineersgarage.com/articles/servo-motor
http://www.engineersgarage.com/embedded/avr-microcontroller-projects/atmega16servo-motor-circuit