2. Navegar el sistema de archivos de ROS - OscarR12/ROS-CHEAT-SHEET GitHub Wiki

Requisitos previos

$ sudo apt-get install ros-distro-ros-tutorials

Primeramente se instala un paquete en ros-tutorials, con el código mostrado arriba, y en mi caso en lugar de (distro) se coloca noetic.

Importante: Descripción general rápida de los conceptos del sistema de archivos

  • Paquetes: Los paquetes son la unidad de organización de software del código ROS. Cada paquete puede contener bibliotecas, ejecutables, scripts u otros artefactos.
  • Manifiestos (package.xml): Un manifiesto es una descripción de un paquete . Sirve para definir dependencias entre paquetes y para capturar metainformación sobre el paquete como versión, mantenedor, licencia, etc.

Herramientas del sistema de archivos

Rospack: $ rospack find [package_name]

[rospack] permite obtener información sobre paquetes. En este tutorial se cubre la opción buscar, que devuelve la ruta al paquete.

Por ejemplo: $ rospack find roscpp

Que devuelve: YOUR_INSTALL_PATH/share/roscpp

En mi caso: /opt/ros/noetic/share/roscpp

Roscd: $ roscd [/subdir]

[roscd] es parte de la suite [rosbash]. Este permite cambiar el directorio ([cd]) directamente a un paquete o una pila.

Por ejemplo: $ roscd roscpp

E imprimimos el directorio con: $ pwd

Este devuelve: YOUR_INSTALL_PATH/share/roscpp

En mi caso: /opt/ros/noetic/share/roscpp

Es lo mismo que el anterior, sin embargo en este caso, ya me encontraba dentro de la carpeta o directorio.

Tenga en cuenta que, al igual que otras herramientas ROS, solo encontrará paquetes ROS que estén dentro de los directorios enumerados en su [ROS_PACKAGE_PATH]. Para ver qué hay en su [ROS_PACKAGE_PATH], escriba: $ echo $ROS_PACKAGE_PATH

[roscd] también puede moverse a un subdirectorio de un paquete o pila.

Por ejemplo: $ roscd roscpp/cmake $ pwd Este devuelve: YOUR_INSTALL_PATH/share/roscpp/cmake

En mi caso: /opt/ros/noetic/share/roscpp/cmake

Usando roscd log

llevará a la carpeta donde ROS almacena los archivos de registro. Tenga en cuenta que si aún no ha ejecutado ningún programa ROS, se producirá un error que indica que aún no existe.

Al intentarlo me sale: No active roscore, ya que no he abierto ninguno

Rosls: $ rosls [/subdir]

[rosls] es parte de la suite [rosbash]. Este permite [ls] directamente en un paquete por nombre en lugar de por ruta absoluta.

Por ejemplo: $ rosls roscpp_tutorials Este devolvera: cmake launch package.xml srv

En mi caso: Devolvio exactamente lo esperado.

Completado de linea de comando [TAB key]

Puede resultar tedioso escribir el nombre de un paquete completo. En el ejemplo anterior, roscpp_tutorials es un nombre bastante largo. Afortunadamente, algunas herramientas ROS son compatibles con [Completado de línea de comando].

Por ejemplo: $ roscd roscpp_tut<<< now push the TAB key >>> Devuelve: $ roscd roscpp_tutorials/

En mi caso: Devolvio lo esperado, es decir, se autocompleto.

Si desea ver una lista de todos los paquetes instalados actualmente, también puede usar la opción de completar con tabulación para eso:

Se usa: $ rosls <<< now push the TAB key twice >>> Devuelve: La lista mencionada.

En mi caso: Dicha lista es la siguiente:

image

Observaciones

Existe un patrón con el nombre de las herramientas ROS:

  • rospack = ros + pack(age)
  • roscd = ros + cd
  • rosls = ros + ls

Este patrón de nomenclatura se aplica a muchas de las herramientas ROS.