Anda di halaman 1dari 11

ROBOTIC ARM

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

control each joint through computer interface

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

Sailent features / innovations


1. The arm has five servos which are controlled through the use of only one microcontroller atmega 16.

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.

What are Servo Motors?


Servo refers to an error sensing feedback control which is used to correct the performance of a system. Servo or RC Servo Motors are DC motors equipped with a servo mechanism for precise control of angular position. The RC servo motors usually have a rotation limit from 90 to 180. But servos do not rotate continually. Their rotation is restricted in between the fixed angles.

Where are Servos used?


The Servos are used for precision positioning. They are used in robotic arms and legs, sensor scanners and in RC toys like RC helicopter, airplanes and cars.

Servo Motor wiring and plugs


The Servo Motors come with three wires or leads. Two of these wires are to provide ground and positive supply to the servo DC motor. The third wire is for the control signal. These wires of a servo motor are colour coded. The red wire is the DC supply lead and must be connected to a DC voltage supply in the range of 4.8 V to 6V. The black wire is to provide ground. The colour for the third wire (to provide control signal) varies for different manufacturers. It can be yellow (in case of Hitec), white (in case of Futaba), brown etc. Futaba provides a J-type plug with an extra flange for proper connection of the servo. Hitec has an S-type connector. A Futaba connector can be used with a Hitec servo by clipping of the extra flange. Also a Hitec connector can be used with a Futaba servo just by filing off the extra width so that it fits in well.

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.

Basic Servomotor Bracket Assembly


These servomotor brackets may be used to create any number of robotic project like robotic arm,hexapod,snake robot.

Assembled Servomotor

Bracket

Fitting servo motor in bracket


.

Torque calculations of Joints


The point of doing torque calculations is for motor selection. We must make sure that the motor we choose can not only support the weight of the robot arm, but also what the robot arm will carry .The first step is to label your FBD, with the robot arm stretched out to its maximum length.Torque calculated here is torque at rest robotic arm(not in motion) .So rating of torque in servo motor is greater than calculated value.

Link for to view torque calculation:

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

Programming of Robotic Arm


1. Communication between PC and microcontroller
We used the opencv serial port interface functions for communication between the pc and microcontroller for sending the slider values(ocr values ) to atmega 16 for generating the required square wave for driving the servo motors

Why OpenCV ,not Matlab ?


The serial communication in opencv is fast as compared to that in matlab., thus enabling us to increase the rate of transfer of ocr values to atmega 16.Since we need slider value of computer interface to be transferred very fastly,so we preferred openCV.

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"); }

2. Programming the Atmega 16


The main function of atmega 16 is to generate square wave signal at 50Hz to control 5 servo motor.It receives slider value(desired angle for particular servo) from the computer and generate square wave as required. The desired frequency is generated with the help of TIMER0 in atmega 16.Code used for interrupt [TIM0_COMP] void timer0_comp_isr(void) { count++;
if(count>=SERVO_TIME_PERIOD)

{ 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.

n= .69 * x3 +52; conv_four(n,2); } void sending_wrist(int y) {int n; n= .58 * x4 +80; conv_four(n,3);}

//for servo cal.

//for servo cal.

void sending_gripper(int y) { int n; n= x5* 85 + 55 ; conv_four(n,4); }

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.

Future work to be done


1. Increasing the degrees of freedom of the robotic arm by implanting more servos motors. 2. Implementing the inverse kinematics technique in robotic arm. 3. Equipping the robotic arm with tactile sensors ,proximity sensors. 4. Developing the graphical user interface for making the arm more user friendly and developing a web interface so that arm could be controlled in remote place by your Web browser.

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

Anda mungkin juga menyukai