The Articulated Robot Controller (ARC) is a software application designed to be a teaching tool for instructors of the Industrial Technology Department at Southeastern Louisiana University. ARC provides control of the Industrial Technology Department’s array of articulated robots.

Phase 1 (September 2004 - December 2004)
Entails construction of the Mainframe application and interface to control the Saturn 5 robot.

Development Crew: Phillip Jackson, William Wayne, Jeff Bentivegna and Todd Scheurich.
 
 




Back to Main Page Current Page
 
Main Application
The main application window is known as the Mainframe, this same Mainframe is the programming interface for all the robots ARC is used to control. This gives the user a solid and familiar interface no matter which robot they are programming.
                                                                                 Figure 1 - Mainframe

The robot's native high-level programming language is called Machine Control Language (MCL). For ARC we created "Actions" which are MCL robot instructions and MCL programming structures in descriptive language. Actions are stored and organized in the Library. To make a program, actions are queued up in the Action List. The Action's parameters are specified in the Action Parameters Panel along the bottom. This panel also displays usage and parameter information about actions in the Library or Action List. The actions in the Action List are translated into MCL code for compilation.

 



Development Diagrams
The Mainframe is used for all robots, but in order to interface with each robot, a different set of modules must be created in order to communicate and control each robot. Because the same Mainframe is used, communication between each swappable robot module and the unchanging Mainframe must be standardized so the Mainframe need not know which robot or robot module it is interfacing with. This way a new robot module can be created and plugged in, without any modification to the Mainframe.


                                                                                  Figure 2 - Diagrams

In order to do this efficiently, Class Structure and Module Communication diagrams were used to coordinate dependant module development. The diagrams were able to quickly convey the interaction and restriction of modules; thereby, allowing developers to make independent design decisions regarding their portion of the project without risking design destruction or module overlap. The design of the Saturn 5 component of ARC will serve as a blueprint to build the other Mainframe-to-robot interface components.

 



Terminal / Controller Interface
Each robot has a hardware controller supplied by the robot manufacturer, which serves as the hardware interface to the robot. The robot-specific portion of ARC, the robot modules, is the liaison between the Mainframe and the robot's hardware controller. Though all the robot modules look the same from the Mainframe side, each robot module created is unique, with its own communication challenges to overcome. In order to overcome these, the control configuration of that robot must be analyzed. The control configuration of the Saturn 5 robot is shown below.


                                                                 Figure 3 - Saturn 5 Control Config                        Figure 4 - Saturn 5 Robot

The Saturn 5 communication module talks to the robot's hardware controller through the serial port. There is chatter in both directions, as the hardware controller responds back to the ARC terminal with summary information regarding actions performed and the robot's current state.

 



Robot Modules: Saturn 5
The robot-specific modules include the Virtual Pendant (keypad, bottom left), the 3D Simulation (top left), and the Robot Communication module (back-end). The Virtual Pendant and the Simulation are displayed in the far left column of the application and can be hidden or made visible as desired.


                                            Figure 5 - Mainframe with Pendant & Simulation

The Virtual Pendant is designed to be identical to the actual Saturn 5 Pendant in form and function; including the menu display and interaction. This allows seamless transition from the Virtual Pendant to the real one.

The 3D Simulation is rendered in OpenGL and shows robot movement in response to Virtual Pendant commands. The presence of the simulation allows students to gain experience and confidence in controlling the robot without risking damage to the robot itself, or machines around it. In a classroom of many students, it allows all students to simultaneously mimic instruction from a professor without having to, for example, take turns physically using the actual robot pendant. It facilitates interactive instruction en masse, and allows student-to-robot familiarization at an unprecedented level, without financial risk.

The Communication module must handle all traffic to and from the Virtual Pendant and the Simulation, as well as the 4 major standardized functions required by the Mainframe:
       Connect
: initialize connection to the hardware controller.
       Disconnect : disconnect from the hardware controller.
       Compile : program compilation.
       Run : program execution.

If ARC is connected to the robot's hardware controller, then Virtual Pendant will control the physical robot and function as the physical pendant would. If not connected, then it no longer has interaction with the hardware controller, and therefore the physical robot, but will still control the simulation.


 



Direct MCL Programming
The Articulated Robot Controller is primarily a teaching tool, and has the goal of educating its users in direct MCL programming. Though ARC was created to replace the manufacturer's application which was a simple text editor for direct MCL robot programming; providing direct MCL programming is not the flaw of the manufacturers application. Its flaw is that its learning curve is so steep it intimidates even those familiar with computer programming.


                              Figure 6 - OEM Software

For those experienced in MCL programming, a simple text editor is a powerful method of robot programming, but for those unfamiliar with MCL, the above screen is utterly useless. ARC's Action List and Library lower knowledge one must possess before beginning to program the robot, but once experienced, using the Action List quickly becomes cumbersome. In order to guide users from the Action List to MCL source code, ARC's Source Editor is used.


                                                                                           Figure 7 - Full Mainframe

The Source Editor shows the MCL source code generated from the Action List and can be made visible or hidden as desired. The Source Editor is displayed in the column directly to the left of the Action List and functions in two modes: Managed and Unmanaged.

    Managed Mode : The first step in the transition. The Action list is used as usual and the MCL code in the Source Editor is visible but is not editable, making the Source Editor actually a source viewer. This way users can see the structure of the MCL code along side the Action List actions they are familiar with. They can modify the actions in the Action List and see the changes in the MCL code.

    Unmanaged Mode : This is the mode that will be used by experienced programmers to program the robot. When the Source Editor is in Unmanaged mode the Action List is disabled and users type MCL source code directly into the Source Editor. Even though the user is entering MCL code directly, as they would in the manufacture's application, ARC is still superior because of the Library and Action Parameters Panel. Whether the Library and Action Parameters Panel are informing a novice user of an action’s usage, or reminding an expert of the MCL commands available to the robot, they are always present, visible and useful.

 



Summary
The Library allows the user to quickly assess the robot’s capabilities and more intelligently select a set of actions to complete the desired task. The Action List allows the user to see the desired actions in clear, plain language and decreases the possibility of confusion due to computer programming lingo or structure that is foreign to them. This allows the user to maintain their focus on the larger goal of completing the desired task, without getting lost in the details.

The Virtual Pendant allows direct control of the robot and the 3D Simulation allows user to practice robot control and gain confidence before actually interacting with the robot.

Finally, the Source Editor allows the user to code MCL source directly and once familiar with the interface, the user can migrate effortlessly to programming a different robot.

The Mainframe is functional, as is the Saturn 5 robot module, and development of the Articulated Robot Controller will continue in the spring semester of 2005. This will include polishing of the interface and the addition of modules for each of the robots in the Industrial Technology Laboratory.

 




February 2005 - May 2005

 

 
 
©2004 Phillip Jackson Rampant CodeCraft Blog
Title-banner 'gear' by Erik, Portions of Figure 3 by Everaldo