PT Engleza (Trebuie Tradus Tot)
PT Engleza (Trebuie Tradus Tot)
Journal of Robotics
Volume 2010, Article ID 984823, 10 pages
doi:10.1155/2010/984823
Research Article
A Geometric Approach for Robotic Arm Kinematics with
Hardware Design, Electrical Design, and Implementation
Copyright © 2010 K. E. Clothier and Y. Shang. This is an open access article distributed under the Creative Commons Attribution
License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly
cited.
This paper presents a geometric approach to solve the unknown joint angles required for the autonomous positioning of a robotic
arm. A plethora of complex mathematical processes is reduced using basic trigonometric in the modeling of the robotic arm.
This modeling and analysis approach is tested using a five-degree-of-freedom arm with a gripper style end effector mounted to an
iRobot Create mobile platform. The geometric method is easily modifiable for similar robotic system architectures and provides
the capability of local autonomy to a system which is very difficult to manually control.
IR receiver
Handle
Cargo bay
Mounting connector
points
Cargo bay
Tailgate
Figure 3: AL5C arm from Lynxmotion, Inc. [8].
Figure 1: iRobot Create from iRobot, Inc. [5].
150 mm
arc cos L21 + L2 − L22
70 mm Wrist θ1 = + φ1 ,
2L1 L
(3)
160 mm
40 mm arc cos L21 − L2 + L22 π
θ2 = − .
Wrist rotate 2L1 L2 2
100 mm Shoulder
The angle θ3 for the parallel and perpendicular cases is
Gripper θ3 par = θ1 + θ2 and θ3 perp = θ1 + θ2 + π/2. The last of the
angles to be considered is the rotation of the base, θ0 . To find
this angle, the system is represented as a plane parallel to the
Base
175 mm ground where the arm base is the origin containing x and y
coordinates (0, 0). The solution to θ0 is given as
ybase
θ0 = arc tan ,
xbase
ybase
Figure 4: Arm free body diagram with the end effector. θ0 = arc tan +π, when the tangent value is negative.
xbase
(4)
θ3 θ3
L2 L2
Robotic arm
without gripper L3
θ2 θ2 L3
L1 L1
H-ho
θ1 θ1
D
H
ho
iRobot create
D
(a) (b)
Figure 5: Arm joint angles (a) and arm joint geometric representation (b).
Translated point
Translated point Original point (D-L3 , H-ho )
(D-L3 , H-ho ) (D, H-ho )
θ3
L2 L2
θ2 θ3
L3 L1
θ2
L1 H-ho L3
θ1
θ1 D H-ho
D
Original point
(D, H-ho )
ho H ho H
D D
(a) (b)
Figure 6: The link L3 is parallel to ground (a) and perpendicular to ground (b).
P to the coordinates xbase and ybase with respect to the arm base
L2 as the origin are
θ2
Xbase = XLET − Xdiff ,
Ybase = Ydiff + YLET ,
L1 HA (6)
L Xbase = Xdiff − XRET ,
Ybase = Ydiff + YRET .
φ1
θ1
DA Inserting these results into (4) results in the arm distance D
and the base angle θ0 used throughout the autopositioning
Figure 7: Simplified system geometry. solution process.
5. Mechanical Design
With these coordinates found, the position of the object
with respect to the base can be solved, and the resulting After theoretical modeling and analysis, the next step of this
coordinates can be used to position the arm. The values of research is to integrate each of these components such that
the Cartesian coordinates (xbase , ybase ) in Figure 9 are found they work together in an efficient manner in order to achieve
by adding the coordinates found in the various equations to the project goals. This process involves with the mechanical
the known distances between the base and the sensors. The design and the electrical design. The AL5C Robotic Arm
value of xdiff is the distance from either sensor to the arm base from Lynxmotion Inc. [8] comes standard with four degrees
along the x axis, and the value of ydiff is the distance from of freedom not counting the end effector. The supplied
either sensor to the arm base along the y axis. The solutions gripper uses a type of servo-controlled linear actuation to
Journal of Robotics 5
DR
y LET DL y RET
φL
φR
Used
mounting
points
(a) (b)
Figure 10: Custom frame design (a) and the robotic arm mounting
y
(b).
x
Drive wheels the use to any other unused I/O lines available on that
Create iRobot
internal create
particular ePort. Although this layout can be used effectively
Internal
battery sensors for many situations, an additional circuit has been created
to redistribute the I/O lines in a more typical arrangement.
This circuit also quells the confusion created by the ePorts
Command module
Servo motors resembling a computer’s serial port but not being set up to
communication in such a manner. This circuit, named the
Command Module Re-Pin Out circuit (CMRP) in this paper,
Command module SSC-32
controller
allows for more complete and easy access to every available
break out
I/O pin on the CM. A schematic of this circuit is shown
in Figure 12. Four male DB9 connectors were attached to
External servo power each of the four ePorts. The scattered I/O pins were then
LCD External regrouped by code and aligned in sequential order on CMRP
sensors
circuit board. Each pin was also stacked with a voltage and
Legend ground pin to allow sensors to be easily connected. A bank of
Power headers carrying the regulated five volts was also produced
Data as an access point for that voltage supply. Because of the
Command easy access to the internal battery voltage supply, the linear
Figure 11: The robotic electrical systems overview. regulator circuit used to power the SSC-32 servo controller
was placed on this circuit board as well. There are two
switched LEDs present on the board. A red LED signifies five
volts of power is present on the board while a green LED
battery fully charged, the robot should remain powered for
indicates the correct operation of the eight-volt regulator.
up to 3.5 hours under the previous conditions [5].
The secondary controller used in this project is the
All of the external sensors are expected to need a
SSC-32 servo controller, which is controlled through serial
5 V DC supply. This voltage level is actually generated within
commands received in string format. While these commands
the iRobot Create and is available on a few pins of the
will be sent from the CM during normal operation, it is
cargo bay connector and subsequently on select pins of the
also useful to control this device from a computer to quickly
command module. The only caution in using this source
test the capabilities of the arm. In order to efficiently switch
is not exceeding the current limitations of the internal
between CM and PC control, a triple-pole, double-throw
regulator, although this is not an expected problem. The
switch has been used to specify the connections for transmit
power required for the servo motors and controller is not as
and receive lines as well as the communication baud rate. An
easily obtained, and some design will be necessary.
extension to the serial port for easier access has also been
The voltage requirement for the SSC-32 servo controller added to the robot.
is a stable DC voltage between six and nine volts [8]. It
is also highly recommended to separate logic and servo In order to preserve battery life, a power jack was added
supply voltage to keep the microcontroller from resetting or such that a regulated wall pack can be used to power the
becoming damaged during power spikes. This means that servos while the robot is stationary as opposed to the six-volt
two additional power sources are needed—a low current battery pack. A single-pole, double-throw switch can then be
supply within the specified range for the controller and a used to select between battery and wall outlet power. When
high current six volt supply for the servo motors. Ideally, only only one power supply is present, this switch also acts as
one battery pack should be used for all of the various voltage an on/off switch for that supply. These various power and
supplies to reduce maintenance, charging components, and control connections are illustrated in Figure 13.
overall complexity; however, this requires that a higher
voltage source is regulated to a much lower one. This can 6.3. Additional Hardware. Three sensors external to the
be incredibly inefficient for large current draws over great iRobot Create are used. Two of these sensors are Sharp
voltage differences. For this reason, a separate six-volt battery GP2D12 Range Finders while the third is a Sharp GP2D120
pack is used to power the servo motors, while an eight-volt Range Finder. These devices are used to determine distance
supply is created for the controller by regulating the iRobot to objects by measuring the reflection angles of an infrared
Create main battery voltage. beam emitted from the sensors. The GP2D12 is able to detect
objects between 10 and 80 cm away; the GP2D120 is for
6.2. Controllers and Communication. The primary robot closer range object and can detect objects between 4 and
controller will be the iRobot Command Model which is 30 cm away. These sensors are commonly referred to as “ETs”
built around the Atmega168 microcontroller and has four because of their similarity to the head of the alien in the 1982
ePorts for additional hardware. Each of these ports contains movie of the same name.
I/O lines, a regulated five-volt pin, ground, Create battery The two GP2D12 sensors are mounted to the top of two
voltage pin, and a low side driver. One major drawback servo-motors attached to either side of the custom frame at
to this configuration is that an attached device which may the front of the robot. These servo mounted sensors serve
only require the use of one I/O line will subsequently block as front scanners for use in object scanning, detection, and
Journal of Robotics 7
PC3 / ADC3
N/C
N/C
N/C
N/C
GND
GND
GND
PC5 / ADC5
PC1 / ADC1
PC2 / ADC2
VCC
VCC
VCC
N/C
ADC6
ADC7
LD0
LD0
LD0
PB 3
PB1
PB2
N/C
Vpwr
Vpwr
Vpwr
Left ePort Center ePort Right ePort
PC4 / ADC4
PC0 / ADC0
Cargo ePort
PB0
Vpwr
N/C
GND
VCC
LD1
LD2
iRobot create command module
1 2 3 4 5 6 7 8 9
Female DB 9 connectors
Left ePort Center ePort Right ePort Cargo ePort
Male DB 9 connectors
x x x x x x x R1 R2
0.125 W 0.125 W
1kΩ 1kΩ
LED1 LED2
green red
SW1
+ 5V
VCC LD [2:0]
1 7808 3
2 C2
C1 2
1.0 µF 10 nF
tracking. The GP2D120 sensor has been attached to the of this loop is the actual object detection routine and is a loop
inside of the gripper on the robotic arm and is used for itself which is entered and exited by pressing the user button.
more accurate alignment of the gripper with objects while The loop can also be exited if the iRobot Create detects a
it is attempting to manipulate them. The front mounting of cliff edge or is powered off. A logical flow chart of the main
the GP2D12 ETs is shown in Figure 14(a) while the gripper program used to operate the iRobot Create in this simple
mounted GP2D120 ET is shown in Figure 14(b). Much like autonomous behavior is given as Figure 15.
the importance of sensors is to the robot’s autonomous As seen, a main program counter is used to establish the
abilities, an LCD screen is an invaluable tool during program speed of the LED flashing and how often the user button
testing and trouble shooting. The screen used in this project is checked. The timing of the button checks is very critical.
is the Element Direct, Inc. with four character eDisplay Checking them too often will result in confusion, and the
designed for use with the Command Module. program will exit a mode it has just started because it still
recognizes the button as being pressed. To counter this effect,
7. Implementation many delays are used throughout the program to aid in the
timing of everything. Once the user button is pressed, the
The program to implement the geometric approach for the scanning routine begins by commanding the iRobot Create
arm kinematics is divided into two sections. The first is to drive forward while the front scanning servos move to
simple flashing of LEDs to alert the user that the program is their specified angles. After every scanning movement, the
ready to be run. This flashing will continue to occur until the attached ET sensors will return the distance to the nearest
Command Module user button has been pressed or the robot object within their range. If nothing is seen, the angle of
battery life expires. An attempt to add a sleep state timer was both servos is increased or decreased, depending upon the
made to conserve battery life, but as this was not a primary current scanning direction and object tracking status, and
focus of the project it was not completed. The second portion the servos move to this new angle while the robot continues
8 Journal of Robotics
Transmit/receive
Serial line
Source jumpers
Jack
on CMRP
Plug
Port for external
power from
regulated wall pack
Sharp GP2D120
Sharp GP2D12 range finders range finder
(a) GP2D12 front ETs (b) GP2D120 gripper ET
Figure 14
to drive forward. In real time, these front scanners appear to the object again, it will compare the current servo position
be quickly looking back and forth as the robot slowly drives with the previous one. If these positions are identical for
forward. two scanning iterations, the object is deemed stable and the
Once an object within the specified viewing distance is arm will attempt to pick it up. Notice there is no safety
detected by either sensor, the object will begin to be tracked mechanism here in case the object is too large. This is an
by the sensor which saw it, and the iRobot Create will advanced line of reasoning which was not considered as all
stop moving forward. The other front sensor will continue objects within the test area will be controlled.
scanning as normal unless it detects an object as well. During If the edge positions are not identical, the scanner will
this object tracking period, a counter will begin, and the continue its attempt to track the object until the scanning
scanner servo will change direction when it reaches the edge, timer expires. At this point, the iRobot Create will be
ignoring its normal scanning area restrictions. The program instructed to rotate away from the scanner which detected
will remember the positions of the servo when it detects the object—clockwise for the left scanner and counter
either object edge. When the scanner detects the edge of clockwise for the right scanner. After it has rotated, the robot
Journal of Robotics 9
Main counter + = 1
No
Object detected by ET sensors
No Yes
Main counter = 50?
Stop create movement and begin
Yes scanner count
Main counter = 0 No
No
Object stable? Scanner count expired?
Yes Yes
LEDs on? Determine object center and Rotate create base
Yes No retrieve object
Turn off LEDs Turn on LEDs
Change scan angle by 50◦
No
User button pressed? No
Reached scanning zone edge?
Yes Yes
Yes No
Exit mode?
Starting position (1) Raising arm (2) Trying to grasp object (3)
8. Conclusion
A geometric approach to solve for the unknown joint angles
required for the autonomous positioning of a robotic arm
has been developed. This analysis is dependent upon the
known lengths of each arm joint to joint link as well as
the desired terminal position of the arm in the three-
dimensional space of the arm’s workable area with respect to
arm base. The analysis has been developed around a few basic
assumptions regarding the functionality of the arm, and has
been created using a strictly trigonometric approach with
regards to a geometric representation of the arm. For testing
purposes, an iRobot Create mobile robot platform has been
retrofitted with a robotic arm from Lynxmotion possessing
five degrees of freedom in addition to an end effector. The
geometric method is easily modifiable for similar robotic sys-
tem architectures and provides the capability of local auton-
omy to a system which is very difficult to manually control.
References
[1] C. C. Kemp, A. Edsinger, and E. Torres-Jara, “Challenges for
robot manipulation in human environments [Grand challenges
of robotics],” IEEE Robotics and Automation Magazine, vol. 14,
no. 1, pp. 20–29, 2007.
[2] C. S. G. Lee, “Robot arm kinematics, dynamics, and control,”
Computer, vol. 15, no. 12, pp. 62–80, 1982.
[3] Y. Liu, T. Mei, X. Wang, and B. Liang, “Multisensory gripper
and local autonomy of extravehicular mobile robot,” in Pro-
ceedings of the IEEE International Conference on Robotics and
Automation, vol. 3, pp. 2969–2973, New Orleans, LA, USA,
April 2004.
[4] T. D. Thanh, J. Kotlarski, B. Heimann, and T. Ortmaier, “On the
inverse dynamics problem of general parallel robots,” in Pro-
ceedings of the IEEE International Conference on Mechatronics
(ICM ’09), pp. 1–6, Málaga, Spain, April 2009.
[5] iRobot, “iRobot Create Owner’s Guide,” iRobot, Inc., 2006,
http : / /www.irobot .com /hrd right rail/create rr/create fam /
createFam rr manuals.html.
[6] Z. Xu, T. Deyle, and C. C. Kemp, “1000 trials: an empirically
validated end effector that robustly grasps objects from the
floor,” in Proceedings of the IEEE International Conference on
Robotics and Automation (ICRA ’09), pp. 2160–2167, Kobe,
Japan, May 2009.
[7] iRobot, “iRobot Command Module Owner’s Manual,”
iRobot, Inc., 2007,http://www.irobot.com/hrd right rail/create
fam/createFam rr manuals.html.
[8] J. Frye, “SSC-32 Manual,” Lynxmotion, Inc. December 2009,
http://www.lynxmotion.com/images/html/build136.htm.
[9] J. Denavit and R. S. Hartenberg, “A kinematic notation for
lower pair mechanisms base on matrices,” ASME Journal of
Applied Mechanics, vol. 23, pp. 215–221, 1955.