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.
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().
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.
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