0% found this document useful (0 votes)
47 views

Design and Implementation of FPGA-Based Robotic Arm Manipulator

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
47 views

Design and Implementation of FPGA-Based Robotic Arm Manipulator

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/306065610

Design and Implementation of FPGA-Based Robotic Arm Manipulator

Conference Paper · July 2016

CITATION READS

1 5,044

4 authors, including:

Ahmed S. Bahgat Mahmoud Hamed


Polytechnique Montréal Benha University
5 PUBLICATIONS   6 CITATIONS    28 PUBLICATIONS   101 CITATIONS   

SEE PROFILE SEE PROFILE

Ahmed Youssef
Military Technical College
27 PUBLICATIONS   66 CITATIONS   

SEE PROFILE

Some of the authors of this publication are also working on these related projects:

thermal power plants View project

Plant genetic resources networks View project

All content following this page was uploaded by Ahmed S. Bahgat on 12 August 2016.

The user has requested enhancement of the downloaded file.


Design and Implementation of FPGA-Based Robotic
Arm Manipulator
Mohammed Ibrahim Mohammed Ali
Military Technical College, Cairo, Egypt
Supervisors: Ahmed S. Bahgat 1, Engineering physics department
Mahmoud Safwat Hamed 2, Electronic engineering department
Ahmed Medhat Youssef 3, Aircraft electric systems department
Military Technical College, Egypt, 1 [email protected], 2 [email protected], 3 [email protected]

Abstract– Robotic arm manipulators have a wide variety of LYNX-6 is a good alternative for such robot manipulators,
applications. It is the core of manufacturing process in all factories because it is inexpensive, flexible and similar to industrial,
nowadays. In this paper, the design, implementation and control of robot arms. Lynx 6 robot arm has five directions of motion
modified design of a six degrees of freedom (DOF) LYNX-6 robotic (DOF) plus a gripper movement (5+1). It is also similar to
arm FPGA-based controller is introduced. In LYNX-6 arm, the
human arm from the number of joints point of view. These
lengths of the arms are modified and we used FR4 material to
achieve the lightweight requirements of the arm structure. LYNX-6 joints provide shoulder rotation, shoulder back and forth
arm has 5 DOF plus a grip movement (5+1). It is also similar to motion, elbow motion, wrist up and down motion, wrist rotation
human arm from the number of joints point of view. Servomotors are and gripper motion. It has three arms that are connected
controlled by pulse-width modulated (PWM) signals that control the together using servomotors mechanism and these three parts are
position of the servo actuator. To position the robotic arm in 3D connected to a base that is rotating using base servomotor as
space, the angle of each joint must be set. A MATLAB GUI is shown in figure 1.
designed to pick the desired (X, Y, Z) coordinates from the user,
check the robot domain , perform the inverse kinematics algorithm
and send the angles data serially through wireless module to FPGA
controller to generate the necessary pulse-width modulated signals
for the motors. The controller architecture is implemented on a
Xilinx spartan3 FPGA evaluation board using VHDL. FPGA with
its large number of I/O pins and parallel processing capabilities is
suitable for interfacing and controlling the six motors at the same
time. The proposed FPGA-based controller offered flexible,
standalone, and compact design with high system reliability [1, 2].
Keywords—VHDL,LYNX-6,PWM,Arm manipulator

I. INTRODUCTION
Humans are fortunate that the human body is overall, a
nearly perfect intelligent machine which can lift heavy loads, it
can move itself around, and it has built-in protective
Figure 1 Side and top view of Lynx 6
mechanisms to feed itself when hungry. Robots are often
modeled after humans if not in the form then at least in function.
To position the robotic arm in 3-D space, the angle of each
For decades, scientists and experimenters have tried to joint must be set. If the physical dimensions of the robotic arm
duplicate the human body, to create machines with intelligence, and the angles of all joints are known, the position of any point
strength, mobility, and auto-sensory mechanisms. Like the in the robotic arm assembly can be calculated by starting from
human body, the body of the robot holds all its vital parts. The
the base and calculating the position of each joint successively,
body is the substructure that prevents its electronic and electro
until the x, y, z coordinates of the point of interest are
mechanical parts from spilling out. Robot bodies go by many determined. This is called forward kinematics. The opposite
names, including frame and chassis, but the idea is the same [3]. calculation, calculating the required angle for each joint that
There are many industrial applications uses those robotic results in the point of interest being located at a specific x, y, z
arms; for examples: pick and place application, welding, spray coordinates, is called inverse kinematics. MATLAB GUI
painting, polishing, material handling, water jet cutting and
program is designed to pick the desired (X, Y, Z) coordinates
many more. Generally, all applications above use almost the
from the user, check the robot domain, perform the inverse
same design robot arm but the different is the software kinematics algorithm and send the angles data serially through
programming depending on the applications. a wireless module to an FPGA board to control the servomotors.
A servomotor is a small DC motor with the following
1st IUGRC International Undergraduate Research Conference,
Military Technical College, Cairo, Egypt, July 25-28,
2016.
1
components added: some gear reduction, a position sensor on
the motor shaft, and an electronic circuit that controls the
II. ROBOT KINEMATICS:
motor's operation. The gear reduction provided in a servo is
large. Servomotors are typically used for angular positioning, The transformation between the joint space and the
such as in radio controled airplanes. They have a movement Cartesian space of the robot is very important [7-12]. Robots
range of 0 up to 180 degrees, but some extend up to 210 are operated with their servo motors in the joint space, whereas
degrees. Typically, a potentiometer measures the position of the tasks are defined and objects are manipulated in the Cartesian
output shaft at all times so the controller can accurately place space. The kinematics solution of any robot manipulator
and maintain its position. consists of two-sub problems forward and inverse kinematics.
In practice, servos are used in radio-controlled airplanes to Forward kinematics will determine where the robot’s
position control surfaces like the elevators and rudders. They manipulator hand will be if all joints are known whereas inverse
are also used in radio-controlled cars, puppets, and of course, kinematics will calculate what each joint variable must be if the
robots. Servos are extremely useful in robotics. The motors are desired position and orientation of end-effector is determined.
small and have built in control circuitry, and are extremely Hence, Forward kinematics is defined as transformation from
powerful for their size. The servomotors are controlled using joint space to Cartesian space whereas Inverse kinematics is
pulse width modulated signal. Pulse width modulation (PWM) defined as transformation from Cartesian space to joint space.
is a technique to provide logic '1' or '0' for a specified period. It For our Lynx-6 Robotic Arm the angles definition is as shown
is a square wave, which, when sufficiently fast, creates an in figure 3
effective average voltage on the line. The ratio of high pulse
length to period of the signal is called the duty cycle. By varying
the duty cycle, you can vary the average voltage as shown in
figure 2.

Figure 3 Modeling of Lynx-6 Robotic Arm angles

A. FORWARD KINEMATICS:
In this section we are concerning with translation between
the angles of the robotic arm and the corresponding position
Figure 2 Relation between pulse width and angle relative to these values. The following equations represent the
forward calculations.
Field Programmable Gate Arrays (FPGAs) are used to = cos + sin(90 − + )
provide the required PWM signal to control the servomotors. + sin(180 − + − ) (1)
FPGA is a regular structure of logic cells (or modules) and
interconnect, which is under your complete control. This means = sin + cos(90 − + )
that you can design, program, and make changes to your circuit + cos(180 − + − ) (2)
whenever you wish. FPGAs are digital ICs that contain
programmable logic blocks along with configurable = cos (3)
interconnects between these blocks. Design engineers can = sin (4)
configure such devices to perform tremendous variety of tasks.
FPGA with its large number of I/O pins and parallel processing B. INVERSE KINEMATICS:
capabilities is suitable for interfacing and controlling the six
In this section we are concerning with translation between the
motors at the same time. The proposed FPGA-based controller
position and the corresponding angles of the robotic arm
offered flexible, standalone, and compact design with high
relative to these values [12]. Inverse Kinematics analysis
system reliability. The main controller is designed based on
determines the joint angles for desired position and orientation
Spartan-3 kit.The Spartan™-3 family of Field-Programmable
in Cartesian space. The following equations represent the
Gate Arrays is specifically designed to meet the needs of high
inverse calculations.
volume, and cost-effective consumer electronic applications.

1st IUGRC International Undergraduate Research Conference,


Military Technical College, Cairo, Egypt, July 25-28,
2016.
2
tan 5 sin sin 13
sin sin
6 cos 14
Where
cos 7
2 - 0.5
90 8 - 0.5
- 0.5
Where - m … masses of arms and load.
- - l … lengths of arms.
- g … gravity acceleration.
-
This torque equation is considered as a static position but it
will differ in case of dynamics as it differs from up or down as
- tan
the weight component may be in the direction of motion or
against the motion. For the arm to move from a rest position,
- cos acceleration is required. To solve for this added torque, it is
known that the sum of torques acting at a pivot point is equal to
the moment of inertia (I) multiplied by the angular acceleration.
- cos To calculate the extra torque required to move (i.e. create an
angular acceleration) you would calculate the moment of inertia
- cos of the part from the end to the pivot. In the case of a robotic
arm, the moment of inertia must take into consideration. For
each joint, the moment of inertia is calculated by adding the
We have now four equations with five unknowns, so assuming products of each individual mass (mi) by the square of its
that the third link is to be horizontal or by taking the angle of respective length from the pivot (li). All the previous discussion
this link from the user. Then, concludes to use a higher torque motor than the calculated static
torque values.
9
IV. ROBOTIC ARM CONTROL SYSTEM
cos 10
The block diagram of the robotic arm system that describe
sin 11 the whole design of the robot arm control system as shown in
figure 5.
III. TORQUE CALCULATION
Torque is defined as a turning or twisting force. The force acts
at a length from a pivot point as shown in figure 4. In a vertical
plane, the force acting on an object is the acceleration due to
gravity multiplied by its mass.

a θ4

b m1 mL
θ3
m2

m3
θ2
c

Figure 4 Forces acting on robot arm

The torque equations are as follows:


sin 12
Figure 5 Block diagram of the Robotic arm control system

1st IUGRC International Undergraduate Research Conference,


Military Technical College, Cairo, Egypt, July 25-28,
2016.
3
The ( X,Y,Z ) data and gripper angle is input to a Using the FPGA architecture make the design of the control
MATLAB GUI interface as shown in figure 6 ,the domain circuit is very easy as it has millions of gates that are used in the
shown in figure 7 is checked for the desired position, the design of the control circuit. The servomotors need PWM
inverse kinematic is calculated and through the wireless signals to operate hence, VHDL programming is used for
module the data is transmitted to the Spartan-3 kit to control implementing the required circuitry to generate PWM signals
the servomotors according to the received data. JZ862 wireless for the motors [4, 11]. It consists of counter with certain
module is used as the wireless data transmission in short frequency and is reset every 20 ms and using the comparator to
distance. With the characteristics of small size, weight, low check the counter data with the required PWM coming from
power consumption, good stability and reliability, it can hold circuit that hold data for 20 ms. The FPGA schematic of
provide bidirectional data transmission, test and control for PWM module is shown in figures 8 and 9.
users using serial data communication.

Figure 8: Schematic diagram of the PWM Module.

Figure 6: MATLAB GUI interface

The robot domain is calculated based on the forward


kinematics equations and based on the lengths of arms of the
robot and the range of angles of the servo motors and based also
on the constrains of the mechanical design.

Figure 9: Top level of PWM module.

V. CONCLUSION
Robotic arms show a variety of applications all over the world
nowadays. The manipulation and control of the robotic arms
required a lot of mathematical calculation as well as control
circuits. In this paper, a robotic arm controller is designed and
implemented using the Spartan-3 kit FPGA architecture. The
robotic arm design is based on the Lynx-6 arm manipulator with
some modification in the material and lengths of the arms.
Calculation of the angles of the motors is carried out using
MATLAB software with a GUI interface. The angles are sent
Figure 7: R-Z Robot domain to the FPGA using serial communication. The designed robotic
arm system using the Spartan-3 FPGA offers flexible,
standalone, and compact design with high system reliability.
1st IUGRC International Undergraduate Research Conference,
Military Technical College, Cairo, Egypt, July 25-28,
2016.
4
REFERENCES

[1] Iovine J, “PIC Robotics: A Beginner’s Guide to Robotics Projects


Using the PICmicro”, Mc-Graw Hill, 2004.
[2] Iovine J, “Robots, Androids, and Animatrons: 12 Incredible
Projects You Can Build”, Mc-Graw Hill, 2001.
[3] Lunt K., “Build Your Own Robot”, A. K. Peters Ltd., 2000.
[4] Boylestad, R., and L. Nashelsky “Electronic Devices and Circuit
Theory”, Englewood Cliffs, N.J.: Prentice Hall. (1992).
[5] P. Myke “Programming Robot Controller.” Mcgraw-Hill. (2003).
[6] Fu, K.S., Gonzalez R.C., Lee, C.S.G (1987). “Robotic: Control,
Sensing, Vision and Intelligence”. Singapore: McGraw-Hill Book
Company.
[7] Saeed B.Niku “Introduction to Robotics Analysis, Systems,
Application.” Pearson Education, (2001).
[8] Dan W. Patterson “Artificial Neural Network Theory and
Applications.” Printice Hall, Inc. (1996).
[9] David Cook “Robot Building for Beginners.” New York Apress,
(2002).
[10] David Cook. “Intermediate Robot Building.” New York. Apress.
(2002)
[11] “FPGA Implementation of Multilevel Space Vector PWM
Algorithms” Prawin Angel Michael, Dr.N. Devarajan, Member,
IEEE
[12] “Software Development for the Kinematic Analysis of a Lynx 6
Robot Arm.” Baki Koyuncu, and Mehmet Güzel.

1st IUGRC International Undergraduate Research Conference,


Military Technical College, Cairo, Egypt, July 25-28,
2016.
5

View publication stats

You might also like