Off-Line Robot Programming Framework
Off-Line Robot Programming Framework
Abstract— The industrial robot programming is a work for specialist using teaching techniques, have to be able to program a motion
in robotics. Today, this work is very hard because there are many sequences those results in a specific task. The main steps to program
robot manufacturers with different languages and different programming
an articulated arm are described by (Fuller, 1999): First is defined
environments. Although, off-line programming is an way that can reduce
drastically the machines stop time to maintenance. the problem. After that, outlines the steps of an solution. Next
With the use of object oriented design patterns, it is possible minimize express the steps in the computer robot language, then enter the
the time spent in robot programming. In this work is proposed a steps as instructions into the robot controller, and finally check out
off-line programming environment. This tool is based in one abstract the resulting solution. Specifically enter the steps as instructions into
model to program robots, encapsulate in java classes. This way has the
main advantage of best source code utilization. Grouping the business the robot controller is described in the picture 1.
classes in modules by functionalities, we can reduce complexity between The off-line programming method was created to diminish the
low matching. Recognized patterns like Facade and Template Method integration cell time. But actually, the off-line programming has not
will construct the base to develop this programming framework. The brought significative gains to the manufacture cell integration, also
programming robot languages tested in this work was Rapid, Karel
and Melfa Basic IV, respectively languages used by ABB, Fanuc and
to reduce the robot programmer worked hours. The assembly and
Mitsubishi constructors. program manufacture cell tools were projected without the necessary
abstraction, to generalize the robot programming problem. The
Index Terms— Framework, off-line programming, robot code genera-
tor. available tools presents in the robot kits, can program and interact
only with it platform, files and libraries. The demand grows by an
unified tool that interact between different manufacturers solutions,
I. INTRODUCTION turning easy robot programming to the companies.
Quality and efficiency are characteristics that influence world-wide
economy. After the Total Management Quality(TMQ)(Patterson,
1995) and other quality patterns appearance, product cost reduction is
the main topic discussed by the employs. The employers technologic
level adopted defines the competitive difference between businesses,
and increase concurrence. So, tools development that makes easy
robot programming and may reduce the manufacture cell integration
process costs can be an interesting solution. Actually many employs
are working in the robotic segment and the robot programmer have
to flexibly programming over many different robots interfaces in
many different robot languages. The teach pendant(TP), a joystick
plugged in the robot controller, is one of these used interfaces for
robot programming. This joysticks has layout, weight, buttons and
command sequences completely different between manufacturers.
This interaction become too difficult for professionals that do not
have an affinity with robotics. Knowledge about how to welding,
paint or manipulate industrial tools are also very important to
automate the task. Beyond the robot common knowledge, the
programmer need to know the automatized process bringing real
profits on product quality, equipment durability, and decrease
manufacture time. Using a text editor or some specialized robot
programming tool, an welder may program a robotized welding task Fig. 1. (Fuller, 1999) Point-to-Point Robot Programming Process.
optimizing significantly the process. But commonly, it programs
are made manually by TP, spending a lot of time and requiring Actually, the personal computer(PC) is able to manipulate strings
available equipment to do it. During this process, the programmer and solve matrix operations. We propose to use this intrinsic PCs
Example:
;Interface Applet
the abstract and child classes. This practice allied to dynamic
class Applet
binding are the bases to a framework building. A little introduction
{
of frameworks will presented in the next section. An TM example
Charger charge = new Charger();
is showed below.
;The method ProgramGeneratorButton() delegates
through an object instance called "charge" the Example:
responsibility, robot program file generation.
;Abstract Class
method ProgramGeneratorButton()
abstract class TemplateFile
{
{
this.charge.FileCharger(); abstract method ProgramHeader ();
;call FileCharger() through instanced object abstract method ProgBodyVarsDeclaration();
charge. abstract method CloseProgram();
} method FileCreator()
} {
;create a robot program and return a report
class Charger message.
}
{
}
;The Charger class is remodelled like Command
pattern receiving requisitions and distributing
;Concrete Class
competencies. class KarelFiles extends TemplateFile
int prot; {
List prog; method PointsCoordVarsReturn()
Factory f = new Factory(); {
;Method FileCharger() calls the responsible robot ;while exists variable names in list, write
program file creator object setting the generic (varName+":POS(0,0,0,0,0,0’’);");
program and the desired protocol. }
method FileCharger() method ProgramHeader()
{
{
write("PROGRAM "+ this.nome);
RapidFile createfile = f.getFileInstanceRapid();
write("-- ! LANGUAGE KAREL 2");
createfile.FileCreator(this.prog,this.prot); write("-- ! MEMORY 8192");
} write("-- !ROBOT ARC MATE 120iB");
... write("-- TEACHPOINT DECLARATIONS");
} }
method ProgBodyVarsDeclaration();
{
;Var declaration
G. TEMPLATE METHOD-TM write("VAR");
This pattern helps to define an skeleton algorithm. This skeleton ;insert coordinates and quadrants seetings using
will be used to specialize subclasses that inherit the object abstract PointsCoordVarsReturn();
common model. ;Main program
write("BEGIN");
It allows an father class refinement from child classes realizing it
;insert motion command lines;
reality. This technique consists in create a template to be specialized }
by child classes. It classes will materialize its behavior over charging method CloseProgram()
father class methods through polymorphism, showed in picture {
5. The TM direct consequence is increase code reuse. Although ;insert the end instruction into robot program;
reflects in couple caused by the implemented inheritance between }
B. BUSINESS LAYER
It was drew up by service, protocol, and optimize packages.
At service package is generated the intermediate code using input
interface instructions. It package hold the most important system
classes because there is generalized points, axis, coordinates, and
robot program. In protocol package was the classes responsible
to convert the intermediate code to specific robot code chosen at
interface layer. Optimize package is a set of classes that regulates
interaction between different business classes. In other word, this
package brings benefits to application centralizing data input and
object creation through Charger and Factory classes respectively.
C. PERSISTENCE LAYER
It main function is taken care of robot code generated store.
The persist package automatize the natives manufacture languages
Fig. 6. Intermediate generic language. structure and extension knowledge through Java classes. Each class
responsible to an specific robot language template. This Project
Components reuse is an OO language intrinsic feature and can be adopts OO techniques using J2EE applied to robot programming.
reached through many ways. Good practices to increase reuse are The proposed software intends to enable professionals that were being
applying the OODP techniques described in section 2. The chosen substituted by robots work, to program it. Using an class formalized
language was Java 2 Enterprize Edition(J2EE) to bring this powerful knowledge, this software have to facilitate program an robot motion
V. EXPERIMENTAL RESULTS
The experience proposed to demonstrate the software function-
alities was, write the acronym UCSAL in a white board using
two different robots. The robots were programmed using the code
generator described in this research and showed in the picture 8.
To explain the experience and the software utility, was idealized the
motion sequence to write the acronym UCSAL in the white board
using a pen griped by the manipulator. To make the character ”U” Fig. 9. Communication proposed to future works.
is required 1 circular motion, to ”C” another circular motion, to ”S”
two circular motions, to ”A” tree linear motions and finally to ”L”
two linear motions. Beyond the motion type, for each displacement, Because the development focus was made an portable software,
is essential set up point names, velocities, and precision. Is also capable to write robot programs to different manufacturers languages.
necessary set up points out of the white board between the characters Hence actually, RoBott is able to generate particular files to different
writing, to define the attack angle of the pencil. Like the coordinates platforms through different interfaces running in different operating
capture was not also implemented, it is been made by teaching, using systems. The next step is use piece neutral project files like: step-nc,
the joystick linked to the robot controller to set the xyz coordinates. iges, dxf, and sat files. Capturing the intrinsic piece coordinates
through his neutral projects and calculating the extrinsic coordinates
will allows the piece manipulation. The position coordinates input,
simulation, and the PC to robot communication will be discussed in
a better chance.
REFERENCES
Fuller, J. L. (1999). Robotics: introduction, programming, and projects.
Prentice-Hall Inc., London, 2nd edition.
Helm, R. (1995). Design Patterns: Elements of Reusable Object-Oriented
Software. Addison-Wesley, ISBN 0-201-63361-2, 1st edition.
Fig. 8. Application interface. Murray, R. M. (1994). A Mathemetival Introduction to Robotic Manipu-
lation. CRC Press, Florida, 1st edition.
Patterson, J. G. (1995). ISO 9000: Worldwide Quality Standard. Crisp
The experiment was successful. Creating an intermediate program
Publications, Inc., California, 2nd edition.
using RoBott and seeting the coordinates by teaching. It was able Wrn, H. (1998). Automatic off-line programming and motion planning
write the acronym UCSAL using ABB and Mitsubishi golems. The for industrial robots. In ISR98, 29th International Symposium on
file transfer of robot programs, at present moment is done by floppy Robotics 1998. ISR Press.
disk.