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

Click on a picture for a larger version.

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 Constructure

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 the CH language. 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

Dr. Harry H. Cheng
Director, Integration Engineering Laboratory
Professor, Department of Mechanical and Aeronautical Engineering
University of California
Davis, CA 95616
Phone: (530) 752-5020
Fax: (530) 752-4158
Email: hhcheng(at)ucdavis.edu


Modified by Xudong Hu, 03/20/2000
Created by Xudong Hu, 03/20/2000