Diferencia entre revisiones de «OpenMR: Modular Robots plug-in for Openrave»

De WikiRobotics
Saltar a: navegación, buscar
(Installation and setup)
(Repository)
 
(No se muestran 47 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
[[Imagen:Minicube-I-open-rave-2.jpg|thumb|300px|Simulating the locomotion of the Minicube-I modular robot]]
+
[[Imagen:Minicube-I-open-rave-2.jpg|thumb|300px|Simulating the locomotion of the Minicube-I modular robot (''click to enlarge'')]]
 
== Introduction ==
 
== Introduction ==
'''OpenMR''' is an OpenRave Modular Robots plug-in for simulating the locomotion of modular robots.
+
'''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 ==
 +
 
 +
[[Imagen:Hierarchical-controllers.png|thumb|300px|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'''
 +
 
 +
{| {{tablabonita}}
 +
|  '''''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 ==
 
== Installation and setup ==
* Install OpenRave: [http://openrave.programmingvision.com/index.php/Installation:OpenRAVE Instructions]
+
* [[OpenMR: Installation|Install OpenMR]]
* Checkout the OpenMR sources:
 
svn co http://svn.iearobotics.com/openmr/trunk  openmr
 
* Change to the openmr/plugin folder:
 
'''cd openmr/plugin'''
 
* Execute cmake:
 
'''cmake .'''
 
If you get the following error message:
 
"CMake Error at CMakeLists.txt:7 (message):
 
  could not find openrave, check for openrave-config in path<br>
 
-- Configuring incomplete, errors occurred!"
 
  
make sure you have the openrave and openrave-config files in the PATH. For example, in my system i should configure the path like this:
+
== Examples ==
export PATH=$PATH:/home/juan/desarrollo/openrave/localinstall/bin
+
* [[OpenMR: Running the Examples|Running the Examples]]
 +
* [[OpenMR: Servocontroller examples]]
  
* Compile the plugin:
+
== Videos ==
  '''make'''
+
{| {{tablabonita}}
 +
| <youtube>z8dKBB1eiUM|300|250</youtube>
 +
Locomotion of the Minicube-I modular robot<br>
 +
[http://www.youtube.com/watch?v=z8dKBB1eiUM Link to the video in Youtube]
 +
| <youtube>la7x5ONP1nU|300|250</youtube>
 +
Minicube-I Robot: locomotion and simulation with OpenRave<br>
 +
[http://www.youtube.com/watch?v=la7x5ONP1nU Direct Link to the video in Youtube]
  
* Install the plugin:
+
|}
'''make install'''
 
  
Now, the '''libopenmr.so''' will be installed in the openrave plugins directory. The plugin is ready for use
+
{| {{tablabonita}}
 +
| <youtube>sttjP7hNh9w|300|250</youtube> <br>
 +
Simulating the Cube3 modular robot<br>
 +
[http://www.youtube.com/watch?v=sttjP7hNh9w Link to the video in Youtube]
 +
|}
  
=== CPP examples ===
+
== Mailing list ==
=== Python examples ===
+
* [http://sourceforge.net/mailarchive/forum.php?forum_name=openrave-users Openrave-user mailing list]
  
 
== Repository ==
 
== Repository ==
  
  svn co http://svn.iearobotics.com/openmr/trunk  openmr
+
* Github: [https://github.com/Obijuan/openmr https://github.com/Obijuan/openmr]
 +
* Old repo (no longer maintained): [http://svn.iearobotics.com/openmr/trunk  http://svn.iearobotics.com/openmr/trunk]
  
 
== License ==
 
== License ==
Línea 39: Línea 79:
 
|}
 
|}
  
== Author ==
+
== Authors ==
[[Juan Gonzalez:Main|Juan Gonzalez-Gomez]]
+
* [[Juan Gonzalez:Main|Juan Gonzalez-Gomez]]
 +
* Avinash Ranganath
 +
* David Estevez
  
 
== Links ==
 
== Links ==
 +
 +
[[Archivo:Openrave logo.png|150px|right|link=http://openrave.programmingvision.com/index.php/Main_Page]]
 +
 +
 
* [http://openrave.programmingvision.com/index.php/Main_Page Openrave]
 
* [http://openrave.programmingvision.com/index.php/Main_Page Openrave]
 
* [[Módulos Y1|Y1 modules]]
 
* [[Módulos Y1|Y1 modules]]
Línea 48: Línea 94:
  
 
== News ==
 
== News ==
 +
* '''2013/06/14''':
 +
** '''David Estevez''' has updated openmr for working with he latest openrave
 +
** Sources migrated to github: [https://github.com/Obijuan/openmr https://github.com/Obijuan/openmr]
 +
* '''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
 
* '''2010/03/08''': This page is started
 +
 +
[[Categoría:OpenRAVE]]
 +
[[Categoría:OpenMR]]

Revisión actual del 03:23 14 jun 2013

Simulating the locomotion of the Minicube-I modular robot (click to enlarge)

Introduction

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

Examples

Videos

300|250</youtube>

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

300|250</youtube>

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

300|250</youtube>

Simulating the Cube3 modular robot
Link to the video in Youtube

Mailing list

Repository

License

150px This code is under the GPLv3 license

Authors

Links

right


News

  • 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