Application: Robot Cell

A flexible mechatronic system requires an open architecture integration environment that is mechatronic device and computer platform independent. An interactive environment allows the users to step through programs and acquire immediate feedback from the system and is most suitable for the development of mechatronic systems used in a multitude of operations. Ch, an embeddable C/C++ interpreter, was developed for mechatronic-independent task-level programming. It is an open architecture integration language environment for the integration of mechatronic systems in agile manufacturing, interactive motion control, rapid prototyping, web-based remote motion control, and as a learning tool for motion control. An experimental mechatronic system with a robotic workcell and a Delta Tau's programmable multi-axis controller board has been developed to demonstrate the capabilities and the ease in integrating mechatronic devices in Ch, which is freely available for downloading from SoftIntegration. Mobile agents utilizing Mobile-C have been used to control the robot cell.

Required Packages for Executing Example Code:

Before executing the example code listed below, the Ch Robot must first be installed on the controlling computer.

Exmple 1: Assembly Automation

When the robot cell is started, the two robots and the conveyor system are moved to their ready position after initialization and are calibrated. Then, the IBM 7575 robot is used to pickup parts from a designated location and place the parts on the conveyor system. Once a part has been placed, the conveyor system will rotate. As the conveyor is rotating into its preset position, the IBM 7575 will then move back to the designated pickup location while the Puma 560 moves to pickup a part from the conveyor. After the Puma 560 has picked up a part, it moves to a drop off location and positions the piece. This is accomplished by calculating the initial and final positions of motion for the two robots. The assembly cycle simulates the assembly procedure of a part. Once a part has gone through its initial stages of manufacturing, it is placed on a conveyor system and brought to either the next stage in fabrication or packaging. The motion of the robots are synchronized to ensure that a robot is fully stopped before proceeding with the next control command.


Click on the links below to download a video of the robot cell in action.

5x Normal Speed

Large  720×480
WMV Format (6.32 MB)
MOV Format (38.6 MB)

Small  360×240
WMV Format (2.04 MB)
MOV Format (5.55 MB)

Agent Code

Click on the link below to view the agent code that is run in the agency.
Agent Code
Download the Code

Running the code requires the installation of the Ch Robot package availiable here.

Example 2: Mobile Agent Deployment

The mobile agent codes simulate operations of an automation assembly. The automation procedures are the same as given in Example 1 above. However, the automation procudures are repeated indefinitely.

In order to demonstrate the real-time deployment capabilities of using a mobile agent system, a second mobile agent, MA-2, is sent while the first mobile agent is still executing on the automation work cell. The second mobile agent is sent over to terminate the first mobile agent and perform a new automation task, Task-2. For simplicity and illustrative purpose, Task-2 is the same as Task-1. In order to ensure a safe migration from Task-1 to Task-2, the task termination method is accomplished through the use of a status check at the end of each assembly loop in Task-1. When the Mobile-C agency of the robotic cell receives the second mobile agent, it changes the status of the first agent to neutral. At the end of each assembly loop, the first mobile agent checks its status. If its status has been changed to neutral, it will quit the loop and stop Task-1 in a safe and controlled manner. Limitations on robotic resource use is enforced using a semaphore. The first mobile agent will initate a semaphore for the automation cell and take control of the cell. After the second mobile agent changes the status of the first mobile agent, it then waits on the semaphore until the resource is free. The first mobile agent releases or frees the resource when it completes.

Agent and Code
Mobile Agent 1: View
Mobile Code in Agent 1: View Download

Mobile Agent 2: View
Mobile Code in Agent 2: View Download