Spanish/Doc/QuickStart

From The Player Project

Jump to: navigation, search

/** @page start Quick start

La manera más común de utilizar Player es ejecutando el programa @ref util_player en el robot, entonces acceder a los dispositivos del robot con el programa cliente. A continuación detallaré dos ejemplos de configuración: una para un robot físico (real) y otra para un robot simulado. - @ref realrobot - @ref simulatedrobot - @ref clientexamples - @ref writingclient

@section realrobot Robot físico

Necesitas escribir un fichero de configuración de Player, nomalmente con la extensión.cfg, que inicializa los drivers necesarios para controlar tu robot y le indica al driver cómo acceder al hardware relevante. El trabajo del fichero de configuración es mapear los dispositivos físicos con los dispositivos del servidor Player.

Varios ficheros de configuración de ejemplo están instalados (por defecto) en /usr/local/share/player/config. Es más sencillo empezar con uno de estas plantillas.

Por ejemplo, si tienes un robot móvil Pioneer con un sensor de distancia laser Sick LMS200, su fichero .cfg podría ser como el siguiente (si se dispone de un hardware distinto, puede ver la página @ref supported_hardware para ver que driver debe utilizar en su caso):

@code driver (

 name "p2os"
 provides ["odometry:::position2d:0"]
 port "/dev/ttyS0"

) driver (

 name "sicklms200"
 provides ["laser:0"]
 port "/dev/ttyS1"

) @endcode

Este fichero inicializa el driver @ref driver_p2os. Este fichero inicializa el acceso a los motores del robot. Este driver se comunicará con el robot a través del puesto serie "/dev/ttyS0" y mapeará sus motores y encoders con el dispositivo player "position2d:0". Este fichero también inicializa el driver @ref driver_sicklms200 para accerder al laser Sick usando el puerto serie "/dev/ttyS1" y lo presenta como el dispositivo Player "laser:0".

Asumiendo que se ha nombrado este fichero @b pioneer.cfg, se puede ejecutar Player así (haga esto en el ordenador que esta conectado al robot y al laser; para el caso del robot Pioneer este ordenador probablemente esté instalado dentro del robot): @code $ player pioneer.cfg

  • Part of the Player/Stage/Gazebo Project
  • [1].
  • Copyright (C) 2000 - 2005 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.

Listening on ports: 6665 @endcode Ahora Player está esperando para dar servicio a las conexiones cliente en el puerto 6665. Puede saltar a la sección @ref clientexamples.


@section simulatedrobot Robot simulado (en Stage)

Para usar Player con Stage se necesitan dos ficheros de configuracion: un fichero .world de stage y un fichero .cfg de Player. El fichero .world define el mundo simulado, indicando a Stage que tipo de sensores y actuadores tienen que ser simulados, que imagen de fondo cargar, etc. El fichero .cfg entonces mapea estos dispositivos emulados en dispositivos de Player.

Stage viene con un buen número de ficheros .world y .cfg. Estos están instalados por defecto en /usr/local/share/stage/worlds. Pruebe uno muy simple en primera instancia: @code $ player /usr/local/share/stage/worlds/simple.cfg

  • Part of the Player/Stage/Gazebo Project
  • [2].
  • Copyright (C) 2000 - 2005 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.

trying to load /usr/local/lib/libstageplugin... success invoking player_driver_init()...

Stage driver plugin init
** Stage plugin v2.0.0 **
* Part of the Player/Stage Project [3]
* Copyright 2000-2005 Richard Vaughan, Andrew Howard, Brian Gerkey
* and contributors.
* Released under the GNU GPL.

success

 Stage driver creating 1 device
   mapping 6665.31.0 => Simulated world [./simple.world][Include

pioneer.inc][Include map.inc][Include sick.inc]name velocityvector state 0 default 0 name positionlines state 0 default 0 name positiontext state 0 default 0 name ranger_data state 1 default 1 name ranger_cfg state 0 default 0 name laserdata state 1 default 1 name lasercfg state 0 default 0

 Stage driver creating 2 devices
   mapping 6665.4.0 => "robot1"
   mapping 6665.6.0 => "robot1.laser:0"

Listening on ports: 6665

@endcode Debería aparecer una ventana de Stage con un único robot rojo. Ahora Player esta esperando las conexiones de los clientes. Vea @ref clientexamples.

@section clientexamples Controlando el robot

Para visualizar los datos de los sensores del robot, prueba la herramienta gráfica @ref util_playerv. Simplemente como si fuera cualquier otro programa cliente la puedes ejecutar en la misma máquina donde estás ejecutando el servidor Player o en alguna otra máquina a la que esté conectado por red.

Asumiremos que el nombre del ordenador que está ejecutando Player (para el ordenador físico, es el ordenador unido a ese robot; para el robot simulado es el ordenador donde está siendo ejecutada la simulación) es @b marvin, y que quieres ejecutar @ref util_playerv en tu ordenador de sobremesa. Entonces se tiene que hacer algo como esto: @code $ playerv -h marvin --position2d --laser @endcode Se debería obtener una ventana que muestra un robot (es la caja en el medio) con datos de laser ( la línea múltiple de color azul).

Para conducir al robot por el escenario, se debe elegir la opción del menu Devices->position2d:0->Command. Un pequeño indicador aparecerá en el robot; pulse el ratón sobre él y muévalo a la derecha y a la izquierda para movel el robot delante y detrás (mueva el ratón hacia arriba y hacia abajo para girar el robot a la izquierda y a la derecha).

El robot se puede teleoperar, también puede tener control autónomo. Elimine la selección de la opción Devices->position2d:0->Command en el menu para que @ref util_playerv pare de enviar ordenes al robot. Entonces intente usar el programa @b laserobstacleavoid ( Si no está instalado; está compilado en el lugar donde construyó Player, en examples/libplayerc++):: @code $ laserobstacleavoid @endcode El robot debería empezar a deambular por el escenario, usando el laser para evitar los obstaculos. Los datos del laser cambian en @ref util_playerv. Ctrl-C cortará randomwalk, que parará el robot. Otro Ctrl+C quitará player.

@section writingclient Escribiendo su propio programa de control

Para hacer cualquier cosa intersante con un robot, se necesita escribir un programa de control cliente propio. Hacerlo es bastante sencillo, especialmente si se utilizan las @ref clientlibs ya creadas. Estas bibliotecas manejan todos los detalles de sockets y de empaquetamiento de datos y presentan un API que permiten fácilmente acceder al dato de los sensores y enviar comandos de actuación. Para crear un programa con estas bibliotecas hay que leer la documentación de la biblioteca que eliga, y empezar con el programa de ejemplo como plantilla.

  • /
Personal tools