ROS/Tutoriales/NavegandoPorElSistemaDeArchivos

1. Navegando por el sistema de archivos de ROS

Descripción: este tutorial introduce los conceptos sobre el sistema de archivos de ROS, y cubre el uso de roscd, rosls, y las herramientas de la línea de comandos de rospack.

2. Visión general de los conceptos del sistema de archivos

  1. Packages: son paquetes, es el nivel más bajo de organización del software en ROS. Pueden contener cualquier cosa: herramientas, ejecutables…
  2. Manifest: un manifiesto es una descripción de un paquete. El papel más importante es definir las dependencias entre paquetes.
  3. Stacks: son pilas, una colección de paquetes que forman una librería de alto nivel.
  4. Stack Manifest: son manifiestos como los anteriores pero para pilas.

Cuando observes el sistema de archivos, es fácil diferencias entre paquetes y pilas:

  • Un paquete es un directorio con un archivo manifest.xml.
  • Una pila es un directorio que contiene un archivo stack.xml

filesystem

3. Herramientas del sistema de archivos

Para ROS hay una gran cantidad de código esparcido através de varios paquetes y pilas. Navegando con la línea comandos utilizando comandos como ls o cd resulta tedioso en ROS. Por este motivo ROS dispone de su propias herramientas para ayudarte.

3.1 Usando rospack y rosstack

rospack y rosstack forman parte del juego rospack. Esto te permite obtener información sobre paquetes y pilas. En este tutorial unicamente vamos a ver el uso de la opción find, que devuelve la ruta de un paquete o de una pila.

Uso:

$ rospack find [package_name]
$ rosstack find [stack_name]

Ejemplo:

$ rospack find roscpp

Lo que devolverá:

TU_RUTA_DE_INSTALACION/ros/core/roscpp

3.2.- Usando roscd

roscd es parte del juego rosbash. Este comado permite cambiar de directorio (cd) directamente de un paquete o una pila.

Uso:

$ roscd [locationname[/subdir]]

Ejemplo:

$ roscd roscpp

Para verificar que hemos cambiado al directorio del paquete roscpp, usamos el comando de Unix pwd que nos indica el directorio de trabajo:

$ pwd

Devuelve:

TU_RUTA_DE_INSTALACION/ros/core/roscpp

Puedes comprobar que la ruta TU_RUTA_DE_INSTALACION/ros/core/roscpp es la misma que nos mostró el comando rospack find en el ejemplo anterior.

3.2.1.- Subdirectorios

roscd también permite cambiar de un subdirectorio a una pila o a un paquete.

Intenta:

$ roscd roscpp/include
$ pwd

Lo que devolverá:

YOUR_INSTALL_PATH/ros/core/roscpp/include

3.3.- Casos especiales para roscd

Hay pequeños casos especiales que te queremos contar para continuar que no afecta a los paquetes o a las pilas.

3.3.1.- roscd sin argumentos

roscd sin argumentos te devolverá el valor de la variable $ROS_ROOT. Prueba:

Verás:

Esta ruta es la misma definida en $ROS_ROOT.Prueba:

Verás:

3.3.2.- roscd log

roscd log acudirás al directorio donde están almacenados los archivos de log donde ROS los almacena.Posiblemente no tengas ningún archivo de log todavía.

Prueba:

$ roscd log

3.4.- Usando rosls

rosls forma parte del juego de comandos de rosbash. Permite hacer ls directamente sobre paquetes, pilas o lugares comunes dentro de las rutas de los paquetes de ros.

Formato:

$ rosls [locationname[/subdir]]

Ejemplo:

$ rosls roscpp_tutorials

Te devolverá:

add_two_ints_client         listener_unreliable
  add_two_ints_server         listener_with_tracked_object
  add_two_ints_server_class   listener_with_userdata
  anonymous_listener          Makefile
  babbler                     manifest.xml
  CMakeLists.txt              node_handle_namespaces
  custom_callback_processing  notify_connect
  listener                    srv
  listener_async_spin         talker
  listener_multiple           time_api
  listener_single_message     timers
  listener_threaded_spin

3.5.-  Autocompletado con el tabulador

[…]

4.- Conclusiones

[…]

Original en Inglés: http://www.ros.org/wiki/ROS/Tutorials/NavigatingTheFilesystem

Imagen: http://www.ros.org

A %d blogueros les gusta esto: