OpenMR: Modular Robots plug-in for Openrave

De WikiRobotics
Saltar a: navegación, buscar
Simulating the locomotion of the Minicube-I modular robot (click to enlarge)


OpenMR is an OpenRave Modular Robots plug-in for simulating the locomotion of modular robots. It consist of controllers, robot models and examples.

Hierarchy of Controllers

Hierarchy of controllers in OpenMR (click to enlarge)

The controllers are hierarchical. At the lowest level there are the controllers that interact directly with the joints, seting their current torque, position or velocity. Typicall level 0 controllers are: P, PD, PID...

Level 1 controllers set the sequence of reference signals for the level 0 controller in order for the robot to move. Examples of this kind of controllers are gait control tables, sinusoidal generators, central patter generators, neural controllers and so on.

Level 0 controller

Currently there is only one level 0 controller in charge of setting the joint's reference positions.

Servo controller

This controller implements standard servos, which are controlled by setting its reference position. Internally It has a P controller

  • API
setpos s1 [s2] Set the reference position of all the robot joints, in degrees, in the range [-90,90]. If the robot have N joints, there have to be N arguments.
getpos Return the current position of ALL the robot's servos (in degrees, in the range [-90,90])
setpos1 servo pos Set the reference position of one joint. The argument servo is the servo number, starting from 0. The argument pos is the reference position (in degrees) [-90,90]
getpos1 servo Return the current servo position (in degrees, in the range [-90,90]. The argument servo is the servo number, starting from 0.
record_on file Start recording the servo position in the specified file. It will generate an octave file
record_off Stop recording. The octave file will be generated

Level 1 Controllers

  • Neuralcontroller
  • Generic controller
  • Harmonic controller
  • Sinusoidal controller
  • Others...

Installation and setup




Locomotion of the Minicube-I modular robot
Link to the video in Youtube


Minicube-I Robot: locomotion and simulation with OpenRave
Direct Link to the video in Youtube


Simulating the Cube3 modular robot
Link to the video in Youtube

Mailing list



This code is under the GPLv3 license



Openrave logo.png


  • 2013/06/14:
  • 2011/05/13:
    • OpenMR adapted to OpenRave 0.3.2
    • Servo Controller:
      • Added the RegisterCommand() for all the commands (Suggested by Rosen)
      • Added the new getpos command, for reading the servo position of ALL the joints
  • 2011/04/25: OpenMR adapted to OpenRave 0.3.1
  • 2011/02/11: OpenMr adapted to OpenRave 0.2.19 (r1999)
  • 2010/11/19: OpenMr adapted to OpenRave 0.2.15 (r1846).
  • 2010/03/08: This page is started