Plug-and-Play Open-Architecyure Object-Oriented Real-Time Mechatronic
System Integration and its Applications in an Automatic Manufacturing Workcell
A Brief Discreption of the Project
We have developed a plug-and-play
open architecture object-oriented based on
the Ch language environment for integration
of mechatronic systems for network-based agile
manufacturing. The Ch language environment is not
only computer
platform independent, mechatronic device independent, and mechatronic system
independent, but also object-oriented.
For experimental verification
of this language environment in real-time applications,
the original controllers of
two popular industrial robot manipulators Puma 560
and IBM 7575
have been completely retrofitted and integrated with a conveyer
system to form a robot workcell.
This robot workcell, bypassing their original controllers,
can be programmed to run under
the Ch language environment.
Hardware Configuration of the Robot Workcell
The robot workcell consists of two robots Puma 560
and IBM 7575,
and a conveyer system.
The retrofitted robot controller consists of
servo controller, I/O and A/D
interface boards from Delta Tau Data Systems,
machine vision system from Datacube and Panasonic,
force/torque sensing system from JR3.
The robot workcell is coordinated in the Ch
language environment
under a real-time operating system LynxOS
from Lynx Real-Time Systems running in a VMEbus
based single board computer MVME167 from Motorola.
There are several computer workstations,
X-terminals, and PCs in the lab to
drive robot manipulators through the network.
Ch is used as login shell for
operation of the robot workcell with
multiple robot manipulators and conveyer system. The system configuration is
shown here. Click
here you can find the retrofitting
interface between PMAC servo board and Puma 560, IBM 7575, and
conveyer belt system.
Software Architecture
The configuration of the software structure for
open architecture integration of mechatronic systems
under the programming paradigm of the Ch language environment
is shown in here.
Mechatronic device dependent information are hidden
in device drivers. Mechatronic dependent information
such as DH and inertia parameters for a robotic system
are stored in header files and system-dependent modules.
Like head file in C for hiding
characteristics of floating-point numbers
of different computers,
the difference of mechatronic systems such as robots with
different number of joints is treated by
modifying header files, such as
robot.h with different
DH and inertia parameters.
We have developed an object-oriented robot class, which includes
most of commonly used functions for
robot programming as public member functions in Ch.
The class CRobot is listed in here.
Robot dependent information such as DH parameters,
encoder offset, calibration data, servo control parameters
are stored in header file robot.h.
The private member functions of CRobot implement the lower-level
communication
between the PMAC and computer such as device driver command and
system-dependent tasks such as inverse kinematic calculation. The private
data m_robot is used to identify the robot object and m_simul
is used to specify whether the system is run in real-time or simulation mode.
These private data are defined by passing a value to the argument of
the class constructor
function CRobot().
Experimental Results
The class CRobot
described in the previous section has been
used for simulation and real-time control of robot workcell.
The program listed in here
is written in.
It uses public member functions in the class CRobot to simulate the motion
of PUMA 560 robot.
In this demo program,
class robot1 is instantiated with a default option for simulation.
It simulates the trajectory motion of the end-effector of PUMA 560 robot
from the Cartesian
coordinates (300,300,-600) to (0,450,300) in straight line.
Here
shows the trajectory of the end-effector and
the motion of each joint relative to the time.
The next example in Here
uses the same class CRobot described
previously. Three objects robot1, robot2
and conveyer are instantiated with option "realtime" as
the second argument for the constructor for real time manipulation of the
robot workcell.
The program calls public member functions in
the class CRobot to coordinate
the motion of the assembly operations
of the robot workcell shown in Here.
with
robot manipulators Puma 560 and IBM 7575, and a conveyer system.
When the robot workcell is started,
the two robots are moved to their ready position
after initialization.
While the robot Puma 560 in the workcell
moves to position P1 to pick up a part,
the robot IBM 7575 stacks a part in position I1.
At the same time, the conveyer belt moves a distance
of 250 mm that sets
the parts apart.
When the Puma 560 moves from position P1 to position P2 to place
a part, the IBM 7575 moves from position I1
to I2 to pick up a part.
This demo Program will repeat the above operations for five times.
For the clarity of presentation, the testing of
the return values from functions for safety are omitted.
For more information on the robot poject or any other activites in the IEL please contact