Design and Implementation of FPGA-Based Robotic Arm Manipulator
Design and Implementation of FPGA-Based Robotic Arm Manipulator
net/publication/306065610
CITATION READS
1 5,044
4 authors, including:
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:
All content following this page was uploaded by Ahmed S. Bahgat on 12 August 2016.
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.
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.
a θ4
b m1 mL
θ3
m2
m3
θ2
c
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