Skip to content

bender_stage

Matías Pavez edited this page May 8, 2017 · 1 revision

#bender_stage

Package Summary

[TOC]

Overview

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)

Usage

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

ROS API:

Suscripciones

  • /bender/nav/cmd_vel (geometry_msgs/Twist) para comandos de velocidad a la base.

Publicaciones:

  • /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

Installation

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 :)

Forma 1 (Preferida):

<CTRL+T>
roscd bender_stage/install
bash install.sh

Forma 2

1.- Quitar stage

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>
Caso 1: instaló ROS de la forma default

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
Caso 2: instaló alguna versión reducida de ROS

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.

2.- Instalar stage custom

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