Académique Documents
Professionnel Documents
Culture Documents
CHAPTER 1 INTRODUCTION
1.1 INTRODUCTION
Since many years people try to replace human work with machines. Machines called robots
are faster and more effective than people. The term robotics is practically defined as the
study, design and use of robot systems for manufacturing. Robots are generally used to
perform unsafe, hazardous, highly repetitive, and unpleasant tasks. They have many different
functions such as material handling, assembly, arc welding, resistance welding and machine
tool load and unload functions, painting, spraying, etc. Many elements of robots are built with
inspiration from the nature. Construction of the manipulator as the arm of the robot is based
on human arm. The robot has the ability to manipulate objects such as pick and place
operations. It is also able to function by itself. The development of electronic industry robot
system technology has been expanded increasingly. As one such application, the service robot
with machine vision capability has been developed recently.
In this highly developing society time and man power are critical constrains for completion of
task in large scales. The automation is playing important role to save human efforts in most of
the regular and frequently carried works. One of the major and most commonly performed
works is picking and placing of jobs from source to destination.
Present day industry is increasingly turning towards computer-based automation mainly due
to the need for increased productivity and delivery of end products with uniform quality. The
inflexibility and generally high cost of hard-automation systems, which have been used for
automated manufacturing tasks in the past, have led to a broad based interest in the use of
mechanical arm capable of performing a variety of manufacturing functions in a flexible
environment and at lower costs.
The pick and place mechanical arm is a human controlled based system that detects the
object, picks that object from source location and places at desired location. For detection of
object, human detect presence of object and move machine accordingly.
John Iovine [1],inthis book various aspects of designing a Robot is described. It deals with
different types of Arm design, controlling techniques, vehicle design etc. ER. Rajput[5], in
this book the operation and control of robots is discussed. ARDUINO COOKBOOK [6], in
this book details and methods of interfacing hardware components such as DC motor, Servo
motor and RF Transmitter and Receiver is been discussed. The other references listed in the
references section discusses similar concepts in its various fields such as color identification
and segregation robot, robot for surveillance, pick and place robot controlled using android
etc.
The pick and place robot being implemented to ease the process of sorting, process of moving
heavy materials etc. Usually the transfer process of the heavy materials is being carried out,
using man power and if the transfer process is repeated for a period of time , it can cause
injuries to the operator. By using the particular robot the operator, will no longer have to bent
and lift up heavy loads thus preventing injuries and increasing the efficiency of the work.
Operator will make mistakes whether small or big in a while. In the industrial world, the
industry cannot afford to take any kind of mistakes. As every mistake is costly whether
interns of time, money and material.
1.4 OBJECTIVE
To control the displacement of the robotic arm so that the arm can be used to
pick and place the elements from any source to destination.
To control the displacement and movement of robotic arm using RF Transmitter and
Receiver.
To implement a robotic arm with two degrees of freedom.
1.5 MEHODOLOGY
TRANSMITTER
RECIVER
REGULATE
D DC
POWER
SUPPLY
DC
DC MOTOR DRIVER CIRCUIT
DC MO DC
MOTOR-3 TO MOTOR-1
R
ROBO-ARDUINO
DRI
MICROCONTROLLER
VE
DC R DC
MOTOR -4 CIR MOTOR-2
CUI
T
The pick and place robotic arm consists of a robotic arm placed on a moving vehicle
(chassis). The vehicle is able to move along any type of surfaces irrespective of it is smooth
or rough. The pick and place robot uses four motors for the operation of the chassis, two
servo motors for the operation pick and place operation. The pick and place arm consists of
an arm assembly with a jaw, which is only able to move in up and down direction .There are
two motors are for the arm assembly, one for the up and down motion and other for jaw
opening and closing.
For the controlling of motor, motor driver IC and Atmega328 micro controller is used. The
input signal or controlling signal is given from an wireless play station, which is interfaced
with the microcontroller by a RF receiver module. When the signal is sent from the play
station it is decoded in the controller and proper controlling signal is sent to actuators (dc
motors or servo motor) in the system.
CHAPTER 2 ROBOTICS
2.1 INTRODUCTION
A robotic arm is a type of mechanical arm, usually programmable, with similar functions to a
human arm; the arm may be the sum total of the mechanism or may be part of a more
complex robot. The links of such a manipulator are connected by joints allowing either
rotational motion (such as in an articulated robot) or translational (linear) displacement. The
links of the manipulator can be considered to form a kinematic chain. The terminus of the
kinematic chain of the manipulator is called the end effectors and it is analogous to the
human hand.
The degrees of freedom, or DOF, is a very important term to understand. Each degree of
freedom is a joint on the arm, a place where it can bend or rotate or translate. The number of
degrees of freedom can be typically identified by the number of actuators on the robot arm.
The Denavit-Hartenberg (DH) Convention is the accepted method of drawing robot arms in
FBD's. There are only two motions a joint could make: translate and rotate. There are only
three axes this could happen on: x, y, and z (out of plane). A few robot arms are shown below,
and their FBD next to it, to demonstrate the DOF relationships and symbols. Note that the
DOF on the gripper (otherwise known as the end effector) is not counted. The gripper is often
complex with multiple DOF, so for simplicity it is treated as separate in basic robot arm
design.
Fig 2.1 Robotic Arm with four and three degrees of freedom
Notice between each DOF there is a linkage of some particular length. Sometimes a joint can
have multiple DOF in the same location. An example would be the human shoulder. The
shoulder actually has three coincident DOF. If you were to mathematically represent this, you
would just say link length = 0.
Also note that a DOF has its limitations, known as the configuration space. Not all joints can
swivel 360 degrees! A joint has some max angle restriction. For example, no human joint can
rotate more than about 200 degrees. Limitations could be from wire wrapping, actuator
capabilities, servo max angle, etc. It is a good idea to label each link length and joint max
angle on the FBD.
The robot workspace (sometimes known as reachable space) is all places that the end effector
(gripper) can reach. The workspace is dependent on the DOF angle/translation limitations, the
arm link lengths, the angle at which something must be picked up at, etc. The workspace is
highly dependent on the robot configuration.
Since there are many possible configurations for the robot arm, we will only concentrate on
the 3 DOF configuration.
Now let us assume that all joints rotate a maximum of 180 degrees, because most servo
motors cannot exceed that amount. To determine the workspace, trace all locations that the
end effectors can reach as in the image below.
If you change the link lengths you can get very different sizes of workspaces, but this would
be the general shape. Any location outside of this space is a location the arm can’t reach. If
there are objects in the way of the arm, the workspace can get even more complicated.
3.1 ARDUINO
Arduino is a tool for making computers that can sense and control more of the physical world
than your desktop computer. It's an open-source physical computing platform based on a
simple microcontroller board, and a development environment for writing software for the
board. Arduino can be used to develop interactive objects, taking inputs from a variety of
switches or sensors, and controlling a variety of lights, motors, and other physical outputs.
Arduino projects can be stand-alone, or they can be communicate with software running on
your computer (e.g. Flash, Processing, Max MSP.) The boards can be assembled by hand or
purchased preassembled; the open-source IDE can be downloaded for free. The Arduino
programming language is an implementation of Wiring, a similar physical computing
platform, which is based on the Processing multimedia programming environment.
There are many other microcontrollers and microcontroller platforms available for physical
computing. Parallax Basic Stamp, Netmedia's BX-24, Phidgets, MIT's Handyboard, and
many others offer similar functionality. All of these tools take the messy details of
microcontroller programming and wrap it up in an easy-to-use package. Arduino also
simplifies the process of working with microcontrollers, but it offers some advantage for
teachers, students, and interested amateurs over other systems
Inexpensive -
Arduino boards are relatively inexpensive compared to other microcontroller platforms.
The least expensive version of the Arduino module can be assembled by hand, and even
the pre-assembled Arduino modules cost less than $50.
Cross-platform –
The Arduino software runs on Windows, Macintosh OSX, and Linux operating
systems. Most microcontroller systems are limited to Windows.
Open source
The Arduino is based on Atmel's ATMEGA8 andATMEGA168 microcontrollers. The
plans for the modules are published under a Creative Commons and shown in Table.
Table 3.2 Specifications of Arduino
PARAMETER SPECIFICATION
Operating Voltage 5V
SRAM 2KB
EEPROM 1 KB (ATmega328)
Length 68.6 mm
Width 53.4 mm
Weight 25 g
The power pins are as follows:
VIN: The input voltage to the Arduino board when it's using an external power source (as
opposed to 5 volts from the USB connection or other regulated power source). You can
supply voltage through this pin, or, if supplying voltage via the power jack, access it through
this pin.
5V: This pin outputs a regulated 5V from the regulator on the board. The board can be
supplied with power either from the DC power jack (7 - 12V), the USB connector (5V), or
the VIN pin of the board (7-12V). Supplying voltage via the 5V or 3.3V pins bypasses the
regulator, and can damage your board. We don't advise it.
3V3: A 3.3 volt supply generated by the on-board regulator. Maximum current draw is 50ma.
IOREF: This pin on the Arduino board provides the voltage reference with which the
microcontroller operates. A properly configured shield can read the IOREF pin voltage and
select the appropriate power source or enable voltage translators on the outputs for working
with the 5V or 3.3V.
MEMORY: The ATmega328 has 32 KB (with 0.5 KB used for the boot loader). It also has 2
KB of SRAM and 1 KB of EEPROM (which can be read and written with the EEPROM
library.
Input and Output: Each of the 14 digital pins on the Uno can be used as an input or output,
using pin mode(), digital write(), and digital read() functions. They operate at 5 volts. Each
pin can provide or receive a maximum of 40ma and has an internal pull-up resistor
(disconnected by default) of 20-50k Ohms. In addition, some pins have specialized functions:
Serial: 0 (RX) and 1 (TX): Used to receive (RX) and transmit (TX) TTL serial data. These
pins are connected to the corresponding pins of the ATmega8U2 USB-to-TTL Serial chip.
External Interrupts 2 and 3: These pins can be configured to trigger an interrupt on a low
value, a rising or falling edge, or a change in value. See the attach interrupt () function for
details.
PWM: 3, 5, 6, 9, 10, and 11: Provide 8-bit PWM output with the analog write() function.
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK): These pins support SPI communication
using the SPI library.
LED 13: There is a built-in LED connected to digital pin 13. When the pin is HIGH value the
LED is on, when the pin is LOW it’s off.
The Uno has 6 analog inputs, labelled A0 through A5, each of which provide 10 bits of
resolution (i.e. 1024 different values). By default they measure from ground to 5 volts,
though is it possible to change the upper end of their range using the AREF pin and
the analog Reference () function. Additionally, some pins have specialized functionality:
TWI A4 or SDA pin and A5 or SCL pin: Support TWI communication using the Wire
library. There are a couple of other pins on the board:
AREF: Reference voltage for the analog inputs. Used with analog reference.
3.3 SERVOMOTORS
FEATURES
Table 3.3 Specifications of Servo Motor
6. Dimension 41x20x38mm
7. Weight 41g
High Torque Standard Servo Motor with Dual Ball Bearing. Provides 7kg/cm at 6V. Exact
replacement for Futaba S3003 and Hitec HS-311.
Servomotors are DC motors with built in gearing and feedback control loop circuitry. And no
motor drivers required. A servomotor is a rotary actuator that allows for precise control of
angular position. They consist of a motor coupled to a sensor for position feedback, through a
reduction gearbox. They also require a relatively sophisticated controller, often a dedicated
module designed specifically for use with servomotors. Servomotors are used in applications
such as robotics, CNC machinery or automated manufacturing. . The servo motor has some
control circuits and a potentiometer (a variable resistor) that is connected to the output shaft.
This pot allows the control circuitry to monitor the current angle of the servo motor. Servos
are DC motors with built in gearing and feedback control loop circuitry. And no motor drivers
required. A servomotor is a rotary actuator that allows for precise control of angular position.
They consist of a motor coupled to a sensor for position feedback, through a reduction
gearbox. They also require a relatively sophisticated controller, often a dedicated module
designed specifically for use with servomotors.
If the output position differs from that required, an error signal is generated which then
causes the motor to rotate in either direction, as needed to bring the output shaft to the
appropriate position. As the positions approach, the error signal reduces to zero and the motor
stops. The very simplest servomotors use position-only sensing via a potentiometer and bang-
bang control of their motor; the motor always rotates at full speed (or is stopped). This type
of servomotor is not widely used in industrial motion control, but they form the basis of the
simple and cheap servos used forradio controlled models. More sophisticated servomotors
measure both the position and also the speed of the output shaft.
They may also control the speed of their motor, rather than always running at full speed. Both
of these enhancements, usually in combination with a PID control algorithm, allow the
servomotor to be brought to its commanded position more quickly and more precisely, with
less overshooting.
The servo turn rate, or transit time, is used for determining servo rotational velocity. This is
the amount of time it takes for the servo to move a set amount, usually 60 degrees. For
example, suppose you have a servo with a transit time of 0.17sec/60 degrees at no load.
This means it would take nearly half a second to rotate an entire 180 degrees. More if the
servo were under a load. It is also useful for determining the maximum forward velocity of
your robot if your servo is modified for full rotation. Remember, the worst case turning time
is when the servo is at the minimum rotation angle and is then commanded to go to maximum
rotation angle, all while under load. This can take several seconds on a very high torque
servo.
3.5 DC MOTORS
An electric motor converts electrical energy into mechanical energy. The Fig 2.3 shows DC
motor most electric motors operate through interacting magnetic fields and current-carrying
conductors to generate force, although electrostatic motors use electrostatic forces.
Electric motors are found in applications as diverse as industrial fans, blowers and pumps,
machine tools, household appliances, power tools, and disk drives. They may be powered by
direct (e.g., a battery powered portable device or motor vehicle), or by alternating current
from a central electrical distribution grid.
Brushless DC motors use a rotating permanent magnet in the rotor, and stationary electrical
magnets on the motor housing. A motor controller converts DC to AC. This design is simpler
than that of brushed motors because it eliminates the complication of transferring power
from outside the motor to the spinning rotor.
Advantages of brushless motors include long life span, little or no maintenance, and high
efficiency. Disadvantages include high initial cost, and more complicated motor speed
controllers
H-BRIDGE.
An H-bridge is an electronic circuit which enables DC electric motors to be run forwards or
backwards .The Fig 2.6 H-bridge of L293D motor driver circuits are often used in robotics.
H-bridges are available as integrated circuits, or can be built from discrete components.
An H-bridge is built with four switches. When the switches S1 and S4 are closed a positive
voltage will be applied across the motor. By opening S1 and S4 switches and closing S2 and
S3 switches, this voltage is reversed, allowing reverse operation of the motor. The H-Bridge
arrangement is generally used to reverse the polarity of the motor, but can also be used to
'brake' the motor, where the motor comes to a sudden stop, as the motors terminals are
shorted, or to let the motor 'free run' to a stop, as the motor is effectively disconnected from
the circuit.
This is a 2.4 G Hz wireless Play Station 2 style controller works perfectly with our Rhino
robot control board. Up to four of them can be used at the same time. They have a range of
10 meters, more when used outdoors in open space. Two analog joysticks and 16 buttons
available for robot control. Dual vibration motors are also provided inbuilt for feedback.
This controller is ready to use with our Rhino Robot Controller Board. You can also use it for
your custom projects of remote control.
PINOUTS:
1. Black - GND
2. Red - VCC
3. Blue - Clock
4. Green- Attention
5. Grey - Command
6. White –Data
Ability to be used with 2 servo motors for gripper open/close and wrist rotate. Can grip and
lift upto 200 gm of load in form of small objects. Maximum opening 3.5cm.
This board incorporates both Arduino Uno R3 and 20A motor driver into a single all in one
control board. It is versatile and expandable platform for robotics. Due to its expansion
capabilities the board can be used to control all robots starting from beginners robot to
advanced robots with multiple functionality such as Psx or IR controlled robot.
It can control up to 20Amp of current on each channel. It can drive 2 robot driving motors
(Connect two motors in parallel for 4 wheeled robot) in skid steer control with analog speed
control.
SPECIFICATIONS:
Table 3.3 Specifications of Lithium Battery
SI.NO PARAMETER SPECIFICATIONS
1. Battery Type 18X650 battery pack
2. Nominal voltage 7.4V
3. Nominal Capacity 2200mah
4. Maximum size 19*38*70mm(with PCM)
5. Weight 86grams
6. Maximum charging current 2200mA
7. Discharging current 2200mA
8. Max. discharging current 4400mA
9. Charging Temperature 0°C to 45°C
10. Discharging Temperature 20°C to 60°C
4.1 FLOWCHART
START
IF RECIVER FLAG
=1
FALSE
TRUE
IF
DATA= Psx.Up TRUE
MOVE THE CHASIS
FORWARD
[M-1,M-2, M-3,M-4] -
FALSE
IF
TRUE
DATA= Psx.Down MOVE THE CHASIS REVERSE
[M-1,M-2, M-3,M-4] - REVERSE
FALSE
IF
TRUE
DATA= Psx.Left
MOVE THE CHASIS LEFT
[M-1,M-2] - REVERSE
[M-3,M-4] - FORWARD
FALSE
IF
DATA= Psx.Right TRUE
MOVE THE CHASIS RIGHT
[M-1,M-2] - FORWARD
[M-3,M-4] - REVERSE
FALSE
IF TRUE
DATA= Psx.R1
MOVE THE SERVO - 1 UPWARD
FALSE
IF
TRUE
DATA= Psx.L1 MOVE THE SERVO - 1 DOWNWARD
FALSE
IF
TRUE
DATA= Psx.R2 MOVE THE SERVO - 2 CLOCKWISE
FALSE
FALSE
IF
TRUE
DATA= Psx.L2 MOVE THE SERVO - 2 ANTI CLOCKWISE
FALSE
END
The above Fig 4.1 depicts the methodology in which the system is programmed. In the
Arduino platform the signal sent from play station can be read on Arduino using built in
function Psx.read() by including Psx.h header file during including the supporting files for
execution. The receiver flag of the Arduino controller is monitored to detect any instruction
is applied to the controller.
Once the receiver flag becomes high it indicates a control signal is sent to the robot. The next
task is to decode the instruction been requested to perform. The signal been applied is read
and stored in the variable called “DATA” further the algorithm searches for the opcode that
executes when it is matched with the code stored in “DATA”.
Example: As we know that when UP button of the play station is pressed the code been read
on Arduino by function is DATA = Psx.read(); , due to which the value or data stored in
variable DATA is Psx.Up now the programme is constructed such that what the controller
should perform when data is read as Psx.Up.
DEPT. OF ELECTRICAL AND ELECTRONICS, K.L.E.I.T, HUBBALLI. Page 25
PICK AND PLACE ROBOT USING ARDUINO
In this case all the four motors are instructed to move in the forward direction by the
controller. Hence chassis moves in forward direction.
Similarly if data been read and stored in the variable is Psx.Down then all the dc motors re
instructed to move in the reverse direction. Hence the chassis moves in reverse direction.
CONCLUSION
The proposed concept of pick and place robot using Arduino is implemented via RF play
station. It is found that, the robot so implemented has the ability to locate itself to the
location where the object to be lifted is available with the help of chassis and four dc motors.
Further depending upon controlling action provided to servo motor it lifts the object and
locates the same at required destination.
The following figure depicts the image of the pick and place robot implemented using the
Arduino.
FUTURE SCOPE
The robot so programmed for pick and place operation can be made versatile and more
efficient by providing the feedback and making it to work on own than any human
interventions. It can be made possible by image processing tool interfaced with this Arduino.
The features that can be added on to improve its efficiency, make it operate on its own
thought without any human intervention are line follower, wall hugger, obstacle avoider,
metal detector, bomb diffuser etc.
APPENDIX
1) DATASHEETS
1.1) ROBO-ARDUINO
1.2) DC MOTORS
2) PROJECT CODE
void setup() {
// sets the pins as outputs:
pinMode(motorPin11, OUTPUT);
pinMode(motorPin12, OUTPUT);
pinMode(motorPin1P, OUTPUT);
pinMode(motorPin21, OUTPUT);
pinMode(motorPin22, OUTPUT);
pinMode(motorPin2P, OUTPUT);
pinMode(motorPin31, OUTPUT);
pinMode(motorPin32, OUTPUT);
pinMode(motorPin3P, OUTPUT);
pinMode(motorPin41, OUTPUT);
pinMode(motorPin42, OUTPUT);
pinMode(motorPin4P, OUTPUT);
pinMode(motorPin51, OUTPUT);
pinMode(motorPin52, OUTPUT);
pinMode(motorPin61, OUTPUT);
pinMode(motorPin62, OUTPUT);
void loop() {
//if some date is sent, reads it and saves in state
if(Serial.available() > 0){
state = Serial.read();
flag=0;
}
if(flag == 0){
Serial.println("Motor: straight");
flag=1;
}
}
// if the state is '2' the motor will turn backward
else if (state == '2') {
digitalWrite(motorPin11, LOW);
digitalWrite(motorPin12, HIGH);
analogWrite(motorPin1P, 128);
digitalWrite(motorPin21, LOW);
digitalWrite(motorPin22, HIGH);
analogWrite(motorPin2P, 128);
digitalWrite(motorPin31, LOW);
digitalWrite(motorPin32, HIGH);
analogWrite(motorPin3P, 128);
digitalWrite(motorPin41, LOW);
digitalWrite(motorPin42, HIGH);
analogWrite(motorPin4P, 128);
if(flag == 0){
Serial.println("Motor: backward");
flag=1;
}
}
// if the state is '3' the motor will turn left
else if (state == '3') {
digitalWrite(motorPin11, HIGH);
digitalWrite(motorPin12, LOW);
analogWrite(motorPin1P, 255);
digitalWrite(motorPin21, HIGH);
digitalWrite(motorPin22, LOW);
analogWrite(motorPin2P, 255);
digitalWrite(motorPin31, LOW);
digitalWrite(motorPin32, HIGH);
analogWrite(motorPin3P, 255);
digitalWrite(motorPin41, LOW);
digitalWrite(motorPin42, HIGH);
analogWrite(motorPin4P, 255);
if(flag == 0){
Serial.println("Motor: left");
flag=1;
}
}
// if the state is '4' the motor will turn right
else if (state =='4') {
digitalWrite(motorPin11, LOW);
digitalWrite(motorPin12, HIGH);
analogWrite(motorPin1P, 255);
digitalWrite(motorPin21, LOW);
digitalWrite(motorPin22, HIGH);
analogWrite(motorPin2P, 255);
digitalWrite(motorPin31, HIGH);
digitalWrite(motorPin32, LOW);
analogWrite(motorPin3P, 255);
digitalWrite(motorPin41, HIGH);
digitalWrite(motorPin42, LOW);
analogWrite(motorPin4P, 255);
if(flag ==0){
Serial.println("Motor: Right");
flag=1;
}
}
3) PROJECT COST
NOTE: The above said cost is excluding basic components required for project such as
wires, soldering gun, lead, soldering wax etc.