You are on page 1of 7

Aerospace and Mechanical Engineering department

CONTROL OF A FANUC ROBOTIC ARM USING MATLAB


MANUAL

by
Ashwin Kumar Venkatesan
Keyvan Noury
Tiezheng Zhao
Fady Tourdas

under the guidance of


Prof. Henryk Flashner
Prof. Bingen Yang

Aerospace and Mechanical Engineering department


Parts of the Robot

1) FANUC LR Mate 200iC 6 axis robotic arm


The robot has 6 movable joints with a payload attached to the end. Its features include a
tabletop size, slimmer arm profile, lighter weight, and higher dexterity. The joints also have
hashes to indicate the zero positions which help with the calibration of the robot. The robot is
setup inside a glass casing. The casing boundaries are also written in to the robot controller as
the DCS position boundaries which guarantees that the robot does not hit the glass casing.

2) R30iA Robot Controller


The Robot is controlled using an original equipment manufacturer controller called the FANUC
R30iA controller. Its features include faster sustained speed and superior position accuracies. It
also has the I/O ports that are used to connect grippers and other payloads. It also houses the
camera circuits which are required to access the data from the SONY camera provided with the
robot. The controller is also provided with a data card slot in which the special SD cards
manufactured can be inserted and used as external memory.

Aerospace and Mechanical Engineering department


3) Teaching Pendant
The teaching pendant is the primary user interface to the robot. It is used to move the joints of
the robot manually, to program specific trajectories, to control the gripper, and various other
actions. It also is an interface that can be used for input and output of the robot controller
parameters. The user can access the system variables and position variables. It is provided with
a USB port that can be used to connect to a USB drive for external storage. It can also be used to
setup an FTP server and client in order to communicate with the PC.

4) Gripper
The gripper is a pneumatic controlled gripper that is attached as a payload to the end of the
robotic arm. It is controlled using a solenoid valve whose signals are attached to robots digital
I/O ports. In order to close the gripper, the digital I/O port corresponding to the gripper must be
set to on and in order to open the gripper, the port must to be set to off.

5) Air Compressor
An air compressor is used to actuate the gripper.

Aerospace and Mechanical Engineering department


TEACHING PEANDANT
The teaching pendant is the primary user interface to the robot. This section deals with the important
buttons on the TP.
1) Emergency stop
First button that the user has to make note of is the emergency stop button in the top right of the TP.
This is a hard stop button for the robot and must be cleared to move the robot.
2) Deadman Switch
In order to make sure that no button is pressed without the users knowledge, a deadman switch is
present in the back of the TP. Thus this switch must be pressed on in order to enable the TP. It is behind
the control panel and is not shown in the figure.
3) TP on/off button
It is used to turn the teaching pendent on and off.
4) Reset
The reset button is used in combination with shift to clear any errors on the robot.
5) Jog
The jog buttons (J1- J6) are used to move the robot. These buttons must be used in combination with
Shift to move. The motion is only in terms of joint angles.
6) Menu
Menu button provides the different options and links to different functionalities in the teaching
pendant.
7) Teach Buttons
The teach buttons are used to teach the robots using programs. The select button brings up the list of
programs, the edit button edits the current program, and the data button shows the different data and
position registers and their values.

Aerospace and Mechanical Engineering department

1
3

4
5

Aerospace and Mechanical Engineering department


Teaching Pendent Programming
The robot can be taught trajectories and positions using the teaching pendant. The programs are files of
(.ls) extension that give commands to the robot in the machine level language. The robot can be better
controlled using the teaching pendant than using PCDK but requires the knowledge of the teaching
pendant editor language. The disadvantages of the teaching pendant editor is that there are very few
options for control structures like if, nested if statements, for and while loops and it is very tedious to
program trajectories with many points. The advantages are that the user can specify exactly what speed
and what kind of motion the user wants.
In order to understand the TP Editor programming let us consider the basic options.
1) Registers:
There are three kinds of registers. Position registers which are used to store the positions in the
form of XYZWPR co-ordinates, Numeric Registers which are used to store numeric values and
Vision Registers to store vision variables.
2) Motion Types:
There are three basic motion types. Linear motion moves the robot linearly in XYZWPR. Joint
motion type moves the robot along the joint angles. Circular motion type moves the robot in a
curve which is defined by three points.
3) Acceleration modes:
The acceleration modes can be changed using the Continuous (CNT) motion. Continuous motion
is similar to linear motion but the acceleration and deceleration rates are defined. The rates are
in terms of percentages as to how continuous you want the motion to be. 0% to 100%. The
figure given below describes the difference between the different percentages.
4) Speed:
Using this option the robot average speed is defined in mm/sec, or m/s, or inch/sec.
Using these options the trajectories of the robot can be defined. The points of the trajectories are stored
in the position registers. The trajectory is broken down to a basic motion between two points. An
example of the description of motion to a point is: move to position in position register (1) linearly with
a speed of 5cm/sec. An example of circular motion is: move to position (2) and position (3) in a circular
fashion such that position two is the midpoint of the curve with a speed of 5 cm/s.
In order to access the programs on the teaching pendant editor press button (SELECT) on the teaching
pendant and then you can edit the programs by choosing the program you want and pressing the button
[ENTER]. The position, numeric, vision registers can be viewed using the button [DATA].

Aerospace and Mechanical Engineering department


PC Programming
The robot can be controlled by a PC on the network using PCDK libraries. The PCDK libraries are written
in Visual Basic language. The robot is connected to the program using the IP address of the robot. In
order to do so, first the robotic controller must be set to Auto mode and the teaching pendant must be
switched off.
Here is a simple algorithm from moving the robot to a point P whose XYZWPR co-ordinates are known
1)
2)
3)
4)
5)
6)

Connect to the robot.


Create an object of the subclass of position co-ordinates in the form XYZWPR.
Convert the XYZWPR co-ordinates of P into double format.
Save the converted co-ordinates of P into the object. (This saves the position locally on the PC)
Update the object. (This writes the saved PC position onto the robot)
Move the robot.

Here is a simple algorithm to move the robot in a smooth curve described by the three points PQR
whose co-ordinates are known
Create a program on TP (circular.ls)
1) Describe a circular motion that starts from position register (10) and moves finally to position
register (12) passing through position register (11).
Create a program on PC
1)
2)
3)
4)
5)
6)
7)
8)
9)

Connect to the robot


Access the class of position registers
Create variables (p,q,r) corresponding to position registers(10,11,12)
Convert the XYZWPR co-ordinates of PQR into double format.
Input the co-ordinates of P into the variable p
Input the co-ordinates of Q into the variable q
Input the co-ordinates of R into the variable r
Update the position registers
Run the program circular.ls which is present on the teaching pendant

MATLAB Integration
MATLAB is used primarily for calculating the co-ordinates of the trajectories that the user wants the
robot to traverse. These co-ordinates are then published onto the MATLAB Active Server. Visual Basic
then accesses this Active Server to get the co-ordinates. Then the motion is planned by using a
combination of algorithms like the ones shown above.

You might also like