Self: Robotica/PlayerStageRoMAA/PlayerDriverRoMAA1

Driver de Player para robot RoMAA

Objetivos

Desarrollar el driver para el servidor Player del robot !RoMAA de modo de poder controlarlo de forma remota, a través de un programa cliente (TCP) enviando comandos de velocidad a los motores y obteniendo los valores de la odometría, esto se logra implementando en el driver la interfaz de player position2d que es la que se utiliza para el control de robots móviles.

Player driver

Player incluye varias interfaces predefinidas para los algoritmos y dispositivos en robótica. El objetivo de un driver es crear el enlace entre los dispositivos/algoritmos y la interfaz predefinida que mejor lo representa. Existen dos tipos de drivers en Player el driver normal de Player y el driver plugin, este último tiene la ventaja de no necesitar recompilar Player para compilar el driver. En el caso de driver plugin este se enlaza con el servidor en tiempo de ejecución.

RoMAA Plugin Player driver

El código fuente para compilar el driver y archivo de configuración del RoMAA se encuentra en el SVN en ciiiRepositorios/romaa_player_driver/trunk/

el driver versión 1.00 corresponde a la revision 5.

Ejecutar Player con el driver

Para controlar el robot RoMAA se debe ejecutar el servidor Player en la PC de abordo indicando el archivo de configuración que instancia el driver del RoMAA.

player romaa.cfg

Ver programa cliente ejemplo.

Compilar el driver

Los fuentes del driver se construyen mediante la herramienta cmake, haciendo

Si al ejecutar Player instanciando el driver de RoMAA se obtiene el siguiente error:

ciii@ciii-p227:~/romaa_player_driver$ player romaa.cfg 
Registering driver
Player v.2.1.2

* Part of the Player/Stage/Gazebo Project [http://playerstage.sourceforge.net].
* Copyright (C) 2000 - 2006 Brian Gerkey, Richard Vaughan, Andrew Howard,
* Nate Koenig, and contributors. Released under the GNU General Public License.
* Player comes with ABSOLUTELY NO WARRANTY.  This is free software, and you
* are welcome to redistribute it under certain conditions; see COPYING
* for details.

error   : failed to load plugin libromaadriver, tried paths:
error   :       /home/lmartini/romaa_player_driver/./libromaadriver
error   :       /usr/local/lib/libromaadriver
error   :       libromaadriver
error   : failed to load plugin: libromaadriver
error   : failed to parse config file romaa.cfg driver blocks

se corrige haciendo que el driver del !RoMAA se enlace con las librerias libplayercore y libserial, agregando en la línea EXTERNAL_LIBS de cmake playercore;serial

Una forma de comprobar que la librería se enlazó correctamente es haciendo

ldd -r libromaadriver.so

y ver que no aparezcan simbolos no definidos, por ejemplo

undefined symbol: _ZN6Driver11StartThreadEv  (./libromaadriver.so)

Programación de Drivers de Player

None: Robotica/PlayerStageRoMAA/PlayerDriverRoMAA1 (última edición 2011-04-20 22:05:12 efectuada por GonzaloPerezPaina)