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
