Product & Services

Robot Control System Software (with OpenHRP)

This provides a controller that can be used with the CORBA servers of OpenHRP. It consists of a controller to which functions are added using a plugin interface and plugin software which enables the humanoid robot HRP-2 to walk. Users may also develop their own functions which can then be incorporated into the controller as a plugin. It also includes the I/O access library to access the lower level functions of the robot and a VRML simulator model of the HRP-2 and various utilities. @


The controller includes an online walk pattern generator and a stabilizer which stabilizes the robot while it walks based on sensory information. Monolithic development of this type of software will be difficult. Adding new functions to a monolithic controller will require full knowledge of the underlying controller. To prevent this, our controller consists of various plugins for different tasks and a plugin manager. Plugins are developed as shared object libraries and we use the underlying capabilities within the operating system to dynamically load and link it to the running controller.

Plugin Name
@Function
Kalman Filter Estimates robot posture using the accelerometers and gyros
Sequential Playback Plays back stored patterns with automatic interpolation
Walk Stabilizer Uses sensory information to stablize the robot while it walks
Pattern Generator Generates patterns online
Dynamics Forward Dynamics/Inverse Kinematics utility functions
Logger Logs command and sensory information to files
ZMPSensor
Calculates the position of the ZMP using force sensor output

Running plugins can use each other's functions so it is possible for a developer to use the functions that the plugins in the above list provide.

Adapters provide a common interface to the controller. This in turn enables the user to use the same binary for both the simulation and the real robot. This binary level compatibility frees the programmer from introducing unexpected bugs that can be caused when different interfaces exist for the real controller and the simulation. This binary compatibility was made possible by the Real Time Operating System, ART-Linux on which real time tasks can run in user space.

User Interface (Auditor)
Experiments using robots such as Humanoids which consist of multiple links which have a wide range of motion can be dangerous. Especially if there is a bug in the control software in which case any motion will be completely unexpected. There could also be cases where the robot was not set up properly, which is another reason for unexpected behaviour from the robot. To make the system as safe and as simple as possible we made an interface to the controller which would simplify the setup of the robot and force a simple simulation to ensure that the all possible confirmation was made before running the software on the real robot. We called this interface the Auditor. It's task is as follows:

- Force the user to run a simulation before running it on the real robot
- Ensure all initialization steps have been followed
- Allow a user to use the robot without having to sift through a thick manual all the time
- Combine various components that need to run during operation into one interface


Below is a flow chart of a sample experiment using the Auditor