Keywords

SpartanIII FPGA chip, servo motor, Inverse Kinematics, PWM signal, Xilinx VHDL. 
INTRODUCTION

Robotic arm provides similar functions like a human arm depending upon the degree of freedom it can offer. Motion control system plays a major role in the control of different types of industrial automation devices such as robotic arm manipulator [1]. A multiple axis motion control system needs many functions in order to perform the complex tasks required for industrial robots very quickly and accurately. Arm controller is the challenging field in industrial applications. Robotic control is an exciting, complex and high challenge research work in recent year [2]. We are going to design the robotic arm controller using SpartanIII FPGA chip. Instead of DSP controller FPGA chip is widely used because of its simplicity, flexibility, low power consumption and high density. FPGA generate the motion control signals i.e. PWM motion control signal for controlling the robotic arm. In this paper use servo motor for drive the robotic arm. We are going to use the SpartanIII FPGA to control the servo motor. As a motor requires high voltage to operate so a PWM signal will not be able to drive it. Hence a driver circuitry is used to drive the motor [3]. This position information is send back to the FPGA controller so it knows how much farther the motor needs to be turned. In this paper robot consists of an arm with four degree of freedom (DOF). Entire system bounded by hardware and software design. 
This paper represents several functions in order to accurately perform the complex tasks required for industrial robots. These include inverse kinematics, control signal generation and speed control. Conventional numerical approaches for these functions have complicated floating point computations. Complicated multiplication, addition, and trigonometric functions are needed to perform to calculate inverse kinematics. For the complex computation of inverse kinematics, IP core (intellectual property core) provided by Xilinx company is very useful which provides trigonometric functions and all floating point operations. 
RELATED WORK

In paper [1], a multiple axis motion control chip was developed to control a multipleaxis motion system such as a robotic arm manipulator. This chip was designed using VHDL and implemented on an FPGA, thus allowing for a highly sampled, accurate, flexible, compact, lowpower, and lowcost motion control system. In this paper it is given that velocity profile generation module, Interpolation calculation module and Inverse kinematics calculation module. Proposed multipleaxis motion control chip consists of an external interface, an interpolation calculator, an inverse kinematics calculator, a clock generator, a velocity profile generator, a pulse integrator, a feedback counter, a PID controller, and a data converter. The experimental results of this multipleaxis motion control system demonstrate that the proposed multipleaxis motion control chip has the performance that is required to efficiently perform the given task. 
FPGAbased motion control IC allows a fully digital motion control for a fiveaxis articulated robot arm, such as inverse kinematic computation, pointtopoint motion controller, position and velocity controller, PWM generation circuits are all integrated and realized in a single FPGA chip. the link coordinate system of a fiveaxis articulated robot using DenavitHartenberg convention. The kinematic parameters of Mitsubishi RVM1 micro robot arm used in paper [2]. 
SYSTEM DESCRIPTION

A. FPGA controller 
We are usingSpartanIII FPGA Chip as controller in our project. It is the main part of the system, through it all the motion of robotic system has to be control. A programmed FPGA will contain the VHDL code, which will correlate the inputs to the robotic arm movement. The FPGA system is flexible because it can be easily reconfigured and reused for many different applications of robotics. We are going to use the FPGAs to control the motor with driver circuit. FPGA controller is used to generate direction and the number of pulses required to rotate a robotic arm at given angle. The proposed control scheme has been realized using XILINX FPGA. 
B. Signal generator 
In our project we use PWM signal pulses for controlling purpose of the motor at require angle. Pulse width modulation also known as pulse duration modulation, where samples of the message signal are used to vary the duration of the individual pulses in carrier. But in our case message signal will be the position required for the motor shaft. The term duty cycle describes the proportion of on time to the period of time. Each motor have different PWM signal as per the motor requirement. PWM signal control the system movements and angles of the robotic arm. 
C. Servo motor 
Servo motors are very useful in the world of robotics because of its high torque and precise movements [4]. Servo motors work in a closed loop. The closed loop of a servo motor greatly increases the precision of the control system. In a servo motor the angles to which the shaft can turn to is limited only by the number of different PWM pulse widths that the FPGA system can supply. 
A servo motor is an automatic device that provides motion control with the help of errorcorrection. The term ‘servo’ is used for the systems. It means a closed loop feedback mechanism means servo motor used for the position control. It combines AC/ DC motor and position sensor such as digital encoder. 
In servo motor the potentiometer is used for position monitoring. Potentiometer is connected to gear of the servo motor, and is monitored by control circuitry. Control circuit monitors the potentiometer and determines the current motor angle and then it will compare with the required angle and will generate appropriate control signal to achieve the desired angular position. Generally servo motors provide angular motion between 0° and 1800°. 
INVERSE KINEMATICS CALCULATION

A. Inverse Kinematics 
The transformation of the position and orientation of a manipulator endeffector from Cartesian coordinates to joint coordinates is known as the inverse kinematics problem [5]. Robotic arm control actions are described in the form of end effector Cartesian coordinates, but here use motor, motion of the arm has to be done in angular form. So conversion of Cartesian coordinates into joint angles is needed, and it can be done by inverse kinematics. To solve the inverse kinematics problem number of methods and there combinations used. Each method has its own advantages and disadvantages, so, as per the requirement combine them together. Main methods of inverse kinematics problem solution are Algebraic methods and Iterative methods. In this paper use Algebraic method to calculate the angles of joints corresponding to a given coordinates of the tip of the robotic arm. 
B. Angle equations 
The inverse kinematics of the articulated robot manipulator will transform the coordinates of robot manipulator from Cartesian space R³ (x,y,z) to the joint space R4 (θ1, θ2, θ3, θ4). 

FLOATING POINT

Floating point representation has several advantages over fix point representation. Floating point number supports wide range of values because of that we get accurate and precise result. 
Floating point represent with various numbers of bits. Floatingpoint representation  the most common solution  basically represents real number in scientific notation. Floating point number is expressed in the scientific notation, with a fraction, and exponent of a certain radix [6]. Set the sign bit, 1 for negative, 0 for positive, according to the sign of original number. 
A. Single precision floating point 
Single precision floating point numbers are represented by 32 bits per number. Floating point numbers supports wide range of values. 
Exponent range is: [128 , 127] 
Approximate range is: 10^{38} to 10^{38} 
B. Example of single precision floating point 
Let us try and represent the decimal number (9.5)10 in IEEE floatingpoint format. Steps: 
• Binary representation of the operand: 1001.1 
• Normalized representation of the operand: 1.0011× 2³ 
• Sign bit = 0 
• Biased exponent: 127+3 = 13010 = 100000102 
• Mantissa = 00110000000000000000000 
• IEEE representation of the operands: 
• A = 0 10000010 00110000000000000000000 
INTELLECTUAL PROPERTY (IP) CORE

For the complex computation of Inverse Kinematics and Interpolation, IP core provided by Xilinx Company is very useful which provides trigonometric functions and all floating point operations. These are the functions already created by Xilinx to provide their users ease of programming, coding of which cannot be edited. IP core is a reusable unit of logic and can be used as building blocks in chip or logic design. 
There are some mathematical operations which are required to perform complex mathematical equations, for example, trigonometric functions and square root of the number etc. There are mathematical functions and logical functions available as IP cores. 
SIMULATION RESULTS

Trigonometric function and multiplication, addition, subtraction etc. are use in angle simulation result. Here use Xilinx IP core and VHDL programming language for simulation. 
Figure 4 shows the simulation result of conversion from fix point to floating point. Here real number is 25. 
Figure 5 shows the floating point multiplication here the number which multiplies are 12 and 3, and get the multiplication result 36 in floating point format. 
Figure 6 and 7 represent the trigonometric function in floating point format. 
Figure 8 shows the atan2 function which is useful for angle equation simulation. 
Figure 9 shows the simulation result of robotic arm angle equations in single precision floating point format. Here single precision floating point format use for the angle calculation because using this format we get accurate and precise angle equation. 
CONCLUSION

With the help of simulation for all the angles, it is concluded that for the input width of 32 bits of coordinates, precision of 32 bits is achieved. Speed control of the robotic arm can be achieved by changing the frequency of PWM signal for every motor on every joint. 
Figures at a glance






Figure 1 
Figure 2 
Figure 3 
Figure 4 
Figure 5 




Figure 6 
Figure 7 
Figure 8 
Figure 9 


References

 Jung Uk Cho, Quy Ngoc Le, and Jae WookJeon “An FPGABased MultipleAxis Motion Control Chip” IEEE Trans. Ind. Electron., Vol. 56, NO.3, March 2009.
 YingShieh Kung, GuaShiehShu, “Development of a FPGAbased Motion Control IC for Robot Arm”, pg.no. 1397 to1402, IEEE 2005.
 Mrs. UrmilaMeshram (Thulkar), Mr. pankajBande, Mr. P.A. Dwaramwar, and Mrs. R. R. Harkare, “Robot Arm Controller Using FPGA”, IEEEimpact2009.
 VivekRamakrishnan, NalamwarSanchitGopal, Rahul Ashok and S. Moorthi, “FPGA based DC Servo motor Control for Remote Replication ofMovements of a Surgical Arm”, IEEE 2011, pg.no.671675.
 AddankiPurna Ramesh, Rajesh Pattimi, “High Speed Double Precision Floating Point Multiplier”, International Journal of Advanced Research inComputer and Communication Engineering, Vol.1,Issue 9, November 2012.
 P. Gayatri, P. Krishna Kumari, V. Vamsi Krishna, “Design of Floating Point Multiplier Using Vhdl”, International Journal of Engineering Research and Development, Vol. 10, Issue 3, March 2014.
