Overview of OpenHRP

OpenHRP (Open Architecture Humanoid Robotics Platform) is an integrated simulation platform for mainly a robot and consists of main dynamics algorithm developed by Nakamura Lab, Graduate School of Information Science and Technology Department of Mechano-Informatics in the University of Tokyo, a graphical user interface developed by General Robotix,Inc and others by Advanced Industrial Science and Technology (AIST).

Using OpenHRP, users can inspect an original robot model and control program by dynamics simulation. In addition, OpenHRP provides various model calculation libraries that users can use in software development of a robot.

OpenHRP is designed as the distributed object system, consists of the server program group which offers various functions and the client program for managing the server. By this constitution, it has improved the conservativeness and portability in large-scale simulation system developing.

OpenHRP corresponds to the OpenRTM of the distributed middleware for the robots. Currently, it is possible to develop the controller as RT-Component of OpenRTM. The various sensors which are a simulation target will get possible to access as an RT component in the future.

This Version 3 ( so-called OpenHRP3) which has been developed this time is considerably improved for the previous distribution of OpenHRP version2. Also, the source file is provided by OpenHRP3 distribution. Therefore it became to open in the implementation.

Feature of the function of the simulation

The dynamics calculation engine of OpenHRP3 has two editions, one of the development of the University of Tokyo, and another of the development of Advanced Industrial Science and Technology (AIST). Each has the following features:

  • The university of Tokyo edition
    • This edition applies an original algorithm for a forward dynamics algorithm. In the algorithm, computational complexity is in proportion to the number of the joints, and simulation of closed link mechanism is possible, too. In algorithm of similar performance, it is one of the fastest one all over the world, so it can execute high-speed simulation as to a complicated model.
    • This edition uses rigid body contact model which is more stable numerically and formulates a condition about reaction force including frictional force as linear complementarily problem (LCP). And we developed original LCP solver which can get a solution in robust and high speed for a numerical value error. It can calculate contact force between arbitrary polygon by using an interference analysis module with.
  • National Institute of Advanced Industrial Science and Technology(AIST) edition
    • This edition applies Featherstone's algorithm and performs a forward dynamics calculation in computational complexity to be proportional to the number of the joints.
    • For a calculation of contact force, this edition applies algorithm that calculates a solution of a restraint condition in convergent calculation. So it can make rigid body contact stable in numerical computation.
    • The design of the dynamics calculation program is conscious of that users use it as a library from the outside. We provide a good library of the convenience that users can apply in a controller and development of a pattern generator.

Program Constitution

OpenHRP consists of the following programs as basic server/client. For more details on each program, please refer to the "User's Manual".

Controller
The controller is a server implementing a control program of robots. This is used by relating to each robot in a simulation. It is possible for user to simulate own control program by developing this Controller.
DynamicsSimulator
The DynamicsSimulator is a server calculating the dynamics. This sever performs the main calculation for the simulation such as the forward dynamics calculations, the calculation of contact force and integration etc.
CollisionDetector
The CollisionDetector is a server for detecting collision. It detects a collision point between the geometric models expressed as a triangle mesh. It is used for a contact simulation from the DynamicsSimulator.
ModelLoader
The ModelLoader is a server for reading a model file described a model of a robotic mechanism and its shape. It parses the model file written in the text and provides as an easily-handled data structure on the program. It is used over the whole system.
ViewSimulator
The ViewSimulator is a server for simulating the image taken form the camera of the robot. It is used by a controller which mainly uses a camera image.
GrxUI
The GrxUI is a standard GUI front-end for OpenHRP. Each server and the process of simulation are managed and the result is displayed as graphics. The users operate the simulation mainly with this GUI.