-
Notifications
You must be signed in to change notification settings - Fork 2
bender_stage
#bender_stage
[TOC]
El package bender_stage tiene provee una versión custom ver simulador stage en su versión ros fuerte, adaptada a las necesidades del robot bender.
Actualmente, sólo se simula la base Pioneer3AT y 1 sensor laser sobre la misma. En conjunto con el package stage_ros, se provee la interfaz para la lectura de comandos de navegación (tópico: /bender/nav/cmd_vel
) y publicación de lecturas del laser (tópico: /bender/sensors/laser_front/scan
)
El package sólo provee un launchfile bender.launch
, encargado de correr el simulador.
Por lo general, bender.launch
es utilizado desde el launchfile hardware.launch
del package bender_nav
, donde se setean las variables necesarias para un buen funcionamiento y las transformadas del sistema. Para poder trabajar con el simulador con todas las funcionalidades del package de navegación, se utiliza:
$ roslaunch bender_nav complete_nav.launch simulation:=true
-
/bender/nav/cmd_vel (geometry_msgs/Twist)
para comandos de velocidad a la base.
-
/bender/sensors/laser_front/scan (sensor_msgs/LaserScan)
: lecturas del sensor laser. -
/bender/nav/odom (nav_msgs/Odometry)
: ground truth de la pose. - Provee las transformadas:
/bender/odom → /bender/base_footprint
-
/bender/base_footprint → /bender/base_link
para mas info sobre stage, ver la wiki
La installación de stage que está por default en ROS no es útil, por lo que es necesario eliminarla y hacer la instalación desde el código fuente. El problema, es que eliminar stage implica desinstalar ROS o al menos, la mayoría de sus packages.
A continuación se detallan 2 formas de instalar stage: En primer lugar, Se provee un script (testeado parcialmente) que realiza todos los cambios necesarios, pero que en caso de no funcionar o si desea 'irse a la segura', se aconseja utilizar el segundo método.
tl;dr: ... Use la forma 1, si no funciona use la forma 2 o pregunte :)
<CTRL+T>
roscd bender_stage/install
bash install.sh
El primer paso es desinstalar/mover/esconder cualquier versión previa de stage, de forma que ROS no tenga conflictos con la nueva versión.
nota: Es posible que muchos de los packages instalados con la distro fuerte sean automáticamente removidos, por lo que deberá instalarlos manualmente cuando que los necesite:
$ sudo apt-get install ros-fuerte-<my_package>
Lo común es que ud. ni siquiera sepa que existe stage, pero lo instaló sin querer, al instalar ROS con $ sudo apt-get install ros-fuerte-desktop-full
.
En éste caso, se debe eliminar stage:
$ sudo apt-get remove ros-fuerte-desktop-full
Chequee si esa versión incluye el package stage
:
$ rospack find stage
- si es que no existe, está OK. Pase al punto 2.
a).- si stage está instalado como parte de ros (p.ejemplo en: /opt/ros/fuerte/stacks/.../stage
), entonces debe quitarlo (lo que desinstalará parcialmente su versión de ros)
$ sudo apt-get remove ros-fuerte-stage
b) si stage está instalado en el workspace y no es el que se usa para bender, remuévalo.
a) Descargar stage desde su repositorio (svn):
$ roscd
$ svn co https://code.ros.org/svn/ros-pkg/stacks/stage/trunk stage
b) Aplicar patch
$ roscd bender_stage
$ cp -f install/files/stageros.cpp $BENDER_WORKSPACE/stage/src/stageros.cpp
$ rosmake stage
c) Marcar stage como instalado:
$ # marcar carpeta con archivo que indica una instalación válida
$ roscd stage
$ echo "este archivo existe para denotar una instalación correcta de stage" >> $BENDER_WORKSPACE/stage/BENDER_INSTALLATION_OK