Académique Documents
Professionnel Documents
Culture Documents
on Systems Theory & Scientific Computation, Elounda, Greece, August 21-23, 2006 (pp167-173)
Abstract This paper presents a software architecture required to build a user-friendly interface for a robot
manipulator. For this purpose, during research a prototype 5-DOF robotic arm was built. The end effector of
this robotic arm is a two-fingered gripper. The interface consists of two components generic to most industrial
robot systems present today, first is the teach-pendant and second one is the computer based robot
programming language. The main focus of the project is to develop a Language that provides robot-specific
commands along with the framework common to all high level languages. A user interface has been
developed that provides powerful tools for efficient control of the robot manipulator. The aspiration of this
work is to present a system which is powerful, cost effective and at the same time intelligible to an average
user.
Key-Words: - robotic arm, robot programming language, teach pendant, user interface, AVR microcontroller,
robot kinematics
programming of the robot manipulator [10]. The lengths and workspace for all the joints are given in
advantage of teach-pendant over computer is that it table 1.
is a small portable box which can be used in places
where setting up a computer might not be feasible. Table 1: Link lengths and joint workspaces
Our robotic arm is equipped with a teach pendant. It
provides manual control for teaching and a set of i Li (cm) i o
1 10 -90 to +90
robot commands for the programming of the robot
2 40 -10 to +90
manipulator. 3 25 -120 to +120
The host controller of the system is the Atmel 4 15 -120 to +120
AVR ATmega8535 [11] controller which directly 5 Continuous
controls every motion of the robotic arm. The
electrically erasable, programmable, read-only All the joints in the structure are revolute
memory (EEPROM) of the microcontrollers (teach because they are easy to implement and the structure
pendants microcontroller and the ATmega8535) is is not bulky [13]. Three of joints form a planar
used to save all the dynamic data such as the manipulator, fourth is the waist for the planar arm
programs written in the teach pendant and points that and fifth is the rotation of the gripper. The global
are taught to the robotic arm. This made the robot workspace is the set of points (x, y, z, 3, 4) that
more cost and power effective and increased the can be reached by the end effector for all specified
autonomy of the system. orientations 3 and 4 of the last link and the gripper
The robot for our system is a 5-DOF robotic arm respectively.
whose end effector is two finger hybrid gripper. 24V servomotors have been used to drive each
This robotic arm is a prototype and low powered of the five joints. A gearbox is added to each motor
version of an industrial robotic arm. The goal of the to reduce the speed and increase the torque. Limit
project is to implement a programming system and switches are also mounted on each link to prevent
prove it using this model. any motion that goes out of the limits. Limit
Fig.1 shows the overview of the system. It switches also provide the hard home position of the
contains four components robotic arm, host robotic arm.
microcontroller, teach pendant and the PC. These
components are discussed in detail in the next
sections.
Quadrature encoders have been used for the 4.1 Teach Pendant Architecture
feedback, which have two channels output. One Teach pendant consists of a 2 line by 16 character
channel is used to measure angle of rotation while liquid crystal display (LCD) and a 20 key keypad in
the other is used to measure the direction of rotation. which most of the keys carry multiple functions. The
First channel is connected to the external interrupt of microcontroller used in teach-pendant is Atmel AVR
the controller while the second channel is connected AT90S8515 microcontroller and it communicates
to the IO port. Limit switches are also directly with the host via RS232 protocol.
connected to the ATmega8535 controllers IO port.
We have used single pwm channel for each 4.2 Modes of Operation
motor. Hence to move a motor in both directions a Teach pendant allows the user to operate in five
multiplexer circuit is added between the modes:
microcontroller and the power amplifier circuit. The
component interconnections from the host to the 4.2.1 Teach Mode
robotic arm as described above are shown in fig.3. Teach mode provides the manual control of the
manipulator, which is used to teach points. Twelve
3.2 Data Storage keys are provided in the keypad for motion of all
When a point is taught to the robotic arm the motors in both the directions. During the teach mode
encoder counts for all the motors except the gripper save and delete keys are used to save and delete
motor are saved in the EEPROM of the points respectively.
Atmega8535 microcontroller. These encoder counts To teach a point, first the robotic arm is
determine the position of each motor relative to the physically moved to the desired point with the help
home position. of the keys, then the position of each motor is stored
in the host microcontroller in the form of encoder
3.3 Communication counts, when the save key is pressed.
Data transmission between ATmega8535 and teach
pendant or computer takes place through RS232 4.2.2 Program Mode
serial communication protocol. Program mode allows the user to write programs
which will be saved in the EEPROM data memory
of the teach pendants microcontroller which is
Atmel AVR AT90S8515. All the commands in the
instruction set of the teach pendant have been given
a unique key in the keypad which is pressed to enter
the command.
.
4.2.3 Run Mode
In this mode the programs that are written in the
program mode are executed. LCD displays the
instruction that is currently executing and the line
number of the instruction in the program. The
program is run online so the robotic arm performs
the tasks as written in the code.
Fig.3 - Interconnection between host and the
robotic arm 4.2.4 Step Mode
Step mode is quite similar to run mode except that
after each instruction it waits for the user to press a
4 Teach Pendant Module key in order to execute the next instruction so that
The teach pendant is a small portable hand held the user can see the effect of each instruction in the
device present in all industrial robot systems. The program.
function of the teach pendant is teaching points
through manual control and programming of the 4.2.5 Edit Mode
robot manipulator that includes taught points and In this mode programs that have already been
language commands [10]. written can be edited. Insert, delete and replace
keys are used to edit the programs.
Proceedings of the 6th WSEAS Int. Conf. on Systems Theory & Scientific Computation, Elounda, Greece, August 21-23, 2006 (pp167-173)
1. Main program
2. Multiple Variable Declarations
3. Dynamic Variable Declarations at any
point in the program
4. Loops
5. Nested loops Fig.4 - View of Graphical User Interface
6. The If Else Statement
7. Nested If, Else
5.2 Synchronization
8. Arithmetic statements
Since the computer program runs ahead of the real-
time destination of the robot, the computer and the
This robot programming language provides
host must be synchronized [4]. To synchronize the
sufficient tools to the robot programmer for
systems, the computer program waits for the host to
efficient control of the robotic arm. The program is
verify that the destination point has been reached,
fed to an interpreter, which converts the source
before moving ahead. So after execution of every
code in to an intermediate language, which can be
robot command ATmega8535 controller sends a
executed online. The robot control functions of our
verification number to tell the teach pendant or the
programming language are shown in table below.
computer that the destination has been reached.
Table 2: Robot Control Functions
5.3 Gripper Control
A robotic arm must be able to interact with the
Functions Description
objects in the surroundings to become useful [4]. For
Home Go to the Home position pick and place jobs gripper is used. The language
Go() Move to the point in x-y-z space command for the control of gripper is gripper ().
Motor() Move the specified motor in the
direction specified gripper (GRIPPER_OPEN)
Gripper() Open or Close the Gripper gripper (GRIPPER_CLOSE)
Point() Go to point taught through the
manual control 5.4 Robot Kinematics
The programming language has following two types
of robot kinematics functions.
5.1 Graphical User Interface
The graphical user interface is designed in the C# as 5.4.1 Forward kinematics
shown in fig.4. The GUI features two portions, first Forward kinematics involves computing the position
is the IDE and second portion contains a set of of the end-effector when inputs are the joint angles
buttons for the manual control of the robotic arm and geometric link parameters [4, 14]. Following
which is used to teach points. Help and sample equations are used to find the position of the end-
programs are added in the IDE to facilitate the user. effector when joint angles are known.
User can develop programs in the IDE without
connecting to the robotic arm i.e. from any remote
Proceedings of the 6th WSEAS Int. Conf. on Systems Theory & Scientific Computation, Elounda, Greece, August 21-23, 2006 (pp167-173)
point(POINT_NAME)
Fig. 5 - Kinematics of Robotic Arm
pendant and the points saved in the Atmega8535 Braunschweig, Germany, May 2002, pp. 245-
controller this eliminated the need for a battery 259.
backup and made the robotic arm more power and [3] G. Biggs and B. MacDonald, A Survey of Robot
cost effective. Programming Systems, Proceedings of the
The arm was successfully programmed to Australasian Conference on Robotics and
reach and carry loads up to 3kg with a high degree Automation, Brisbane, Australia, 2003.
of repeatability. Handshaking was implemented on [4] P. I. Corke and R. J. Kirkham, The ARCL Robot
the serial interfaces between Atmega8535 Programming System, Proceedings of
microcontroller, the host computer and the teach International Conference of Australian Robot
pendant that made the communication secure and Association, Brisbane, July 1993, pp. 484-493.
extremely reliable at all times. [5] B. E. Shimano, VAL: A Versatile Robot
Programming and Control System, COMPSAC
79, 1979.
7 Conclusions and Future Work [6] R. H. Taylor, P. D. Summers, and J. M. Meyer,
The interface developed is powerful tool for AML: A Manufacturing Language, International
controlling the robotic arm. Software has been Journal Robotics Research, Vol. 1, No. 3, 1982,
designed in such a way to make it more user- pp 3-18.
friendly and understandable. The language has very [7] V. Hayward and R. P. Paul, Robot Manipulator
easy to understand concise, clear and self Control under UNIX - RCCL: a Robot Control C
explanatory syntax. Industrial robot systems are Library, International Journal of Robotics
vital for the advancement of the industries, the Research, Vol.6, No.4, 1986, pp 94111.
techniques and the ideas mentioned in the paper can [8] C. Blume and W. Jakob, PasRo-PASCAL for
help to further increase the quality of these robot Robot, Springer-Verlag, 1985.
systems. [9] Robert Lafore, Turbo C Programming for the
Modern robot systems provide graphical PC, revised edition, Waite Group Inc., 1999.
simulation and virtual environment [15,16] for [10] RHINO ROBOTS INC. Introduction to
programming of robots. Our system can be Robotics Mark 1V controller and XR-3 or XR-4
enhanced to include these facilities. Vision is one of Robot Arm, 1995.
the most important feature of the industrial robot [11] www.Atmel.com last accessed on April 2006
systems present today. For this purpose a pair of [12] J. Iqbal, N. Hassan, A. Waqar, S. Bano and R.
cameras can be attached to the robotic arm, which Ilyas, Fabrication and Control of 4-DOF,
will allow robot to automatically identify and grasp Autonomous Robotic Arm Using Low Cost AVR
the objects. Controller, Proceedings of the International
Imitation based learning capability can be DARH conference, Yverdon-les-Bains,
added to the robotic arm, which will allow path Switzerland, 2005.
tracking by a different technique. The instruction [13] M. Adeel, J. Iqbal, M. Ali, R. Asif, S. Mumtaz,
set for the language and the teach pendant can be Design, Control and Implementation of a Light
enhanced to include vision, forces, torques, Weight 5-DOF Robotic Arm using a Low-Cost
imitation etc. The communication from the host can Microcontroller via Radio LAN, Proceedings of
be made wireless this will allow programming and the International ACIAR conference, Bangkok,
teaching from a remote location and would create a Thailand, 2005.
lot of other applications for this robotic arm. [14] John. J. Craig, Introduction to Robotics,
Mechanics and Control, 2nd Edition, Addison-
Wesley, 1999.
[15] Murphy R.R. and Rogers E., Introduction to the
References:
Special Issue on Human Robot Interaction, IEEE
[1] I. Pembeci and G. Hager, A Comparative
Trans. Syst. Man, Cybern, Vol. 34, No. 2, May
Review of Robot Programming Languages,
2004, pp. 101-102.
Technical Report CIRL, Johns Hopkins
[16] J. Aleotti, S. Caselli, and M. Reggiani,
University, august 14, 2001
Evaluation of virtual fixtures for a robot
[2] F. M. Wahl and U. Thomas, Robot Programming
programming by demonstration interface, IEEE
From simple Moves to Complex Robot Tasks,
Trans. Syst., Man, Cybern. A, Syst., Humans,
Proceedings of the First International
Vol. 35, No. 4, Jul. 2005, pp. 536545.
Colloquium 'Collaborative Research Centre 562
- Robotic Systems for Modeling and Assembly',