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