Académique Documents
Professionnel Documents
Culture Documents
CONTROLLER NI PCI-7342_
by
Moataz Ghader
ABSTRACT
The project consists of a control system for a six-joint robot arm using a motion
controller that can control up to two axes only. The description below shows some
information about the robot arm and the techniques and the ways used to extend the
control to all the joints.
I- THE ROBOT ARM
“Pro-Arm RS 2200” is a 6-joint, 5 degrees of freedom robot arm. It is designed to
simulate industrial robot operations for laboratory or classroom training and education
research. It is a joint-coordinate type robot. It is so named because its movements
resemble that of human joints. It has six axes, and each axis imitates the movement of
one of the human’s mobility.
Motor No. Joint Degree Step Max movement stepping from zero position
* If M4 and M5 Input is (900, -900), the wrist will move downward 90º.
If the input is (-900, -900), the wrist will turn clockwise 180º.
When M4 > M5 or M4 < M5, movement of bending and turning will act
simultaneously.
θ is the angle that the body joint makes with the x-axis. In the control software, user
inputs the position on the plane in Cartesian coordinates form. It is then changed to
angular form through the arctangent function, and input to the body joint.
Coordinate Frames for shoulder, elbow and gripper joints
(Vertical Plane Joints)
A world coordinate frame is implemented at the base of the robot arm, and three local
coordinate frames were hanged on the two joints, shoulder and elbow, and on the gripper.
The focus lies on the shoulder and elbow joints, and we already know that they rotate
about the axes normal to the plane they make and passing by their origins. These axes are
parallel and considered the Z-axes according to the D-H algorithm for assigning
coordinate frames. In calculation, we only consider the two coordinate axes, X and Y of
each joint for the purpose of simplifying the matrices and equations. This idea is clarified
more in figure 3.
As shown in the figure, user can choose any of the five buttons to change parameters
according to the category concerned. When configuration is finished, the OK button is
pressed and the Change Parameters front panel closes.
Changing parameters of each category is discussed below.
Change Object Parameters
User can set more than one obstacle, and the software calculates the path so that all
obstacles are avoided in condition that all of them are entered in the “obstacle
parameters”.
As seen in figure 11, obstacles are entered in an array where each element consists of
data concerning their position and dimensions.
Description of Software
A job of the robot arm consists of 9 steps listed above. Each step concerns a part of the
robot. Specifically, steps 1, 5 and 9 concern the body joint; steps 2, 4, 6, and 8 concern
shoulder and elbow joints; finally, steps 3 and 7 concern gripper joint.
The basic idea of the server program is using an incremental counter, called a status
counter, as an indicator of the job phase. It is incremented every time one of the four
events occur: Start Job is true, move complete 1 is true, move complete 2 is true, or move
complete 3 occurs, where move complete events represent the end of motion for body,
shoulder & elbow, and gripper respectively.
This counter controls a case structure: cases 1, 5 and 9 activate body motion; cases 2, 4,
6, and 8 activate shoulder & elbow motion; cases 3 and 7 activate gripper motion.
Since each of the controller’s axes runs more than one motor, absolute position mode is
impossible to use. Instead, relative position mode is chosen; and the axis is reset to 0
position at each time it is called to move. We then used variables that memorize the last
stop of each joint. Thus, the last stop value is subtracted from the target position and the
result is loaded to the axis.
Figure 13 shows the flow chart describing briefly the behavior of the robot arm job.
Begin
No
Start Job = true?
Yes
Yes
Inc ≥ 10
No
Reset Axis1 & Axis2 positions Reset Axis1 position
Read shoulder & elbow target positions 2, 4, 6, 8 1, 5, 9 Read body target position
Read Body velocity & acceleration Inc =? Read Body velocity & acceleration
3, 7
Loaded target position2: = Reset Axis2 position Loaded target position1: =
Shoulder target position – last stop 2 Read gripper target position, Body target position – last stop 1
Loaded target position3: = Velocity & acceleration
Elbow target position – last stop 3
Start Motion
Start Motion Loaded target position4: =
Gripper target position – last stop4
No
No Start Motion Move complete1: =
True?
Move complete2: =
True?
No Yes
Yes
Move complete3: = Last stop1: =
Last stop2: = True? Last stop1 + current position1
Last stop2 + current position2
Last stop3: = Yes
Last stop3 + current position3
Last stop4: =
Last stop4 + current position4