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.
Before executing the example code listed below, the Ch Robot must first be installed on the controlling computer.
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.
VideoClick 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.
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.