7.1.3 Architecture de ROS
Système de fichiers ROS
La structure du système de fichiers ROS sur le disque dur est organisée comme suit :
WorkSpace --- Espace de travail personnalisé
|--- build: Espace de compilation pour stocker le cache, la configuration et autres fichiers intermédiaires de CMake et catkin.
|--- devel: Espace de développement pour stocker les fichiers objets compilés, y compris les en-têtes, bibliothèques dynamiques et statiques, exécutables, etc.
|--- src: Code source
|-- package: Paquet ROS (unité de base de ROS) contenant plusieurs nœuds, bibliothèques et fichiers de configuration. Les noms de paquets doivent être en minuscules, composés de lettres, chiffres et tirets bas.
|-- CMakeLists.txt: Configuration des règles de compilation, y compris les fichiers source, les dépendances et les fichiers cibles.
|-- package.xml: Informations sur le paquet telles que le nom, la version, l'auteur et les dépendances.
|-- scripts: Répertoire pour les fichiers Python.
|-- src: Répertoire pour les fichiers source C++.
|-- include: Fichiers d'en-tête.
|-- msg: Fichiers de format de communication de messages.
|-- srv: Fichiers de format de communication de services.
|-- action: Fichiers de format d'actions.
|-- launch: Fichiers launch pour exécuter plusieurs nœuds en une seule fois.
|-- config: Fichiers de configuration.
|-- CMakeLists.txt: Configuration de base pour la compilation.Certains de ces répertoires et fichiers ont déjà été abordés, comme la création de paquets, l'écriture de fichiers C++ et Python dans les répertoires src et scripts, et la création de fichiers launch dans le répertoire launch. Les fichiers package.xml et CMakeLists.txt ont également été configurés. Les autres répertoires seront présentés dans des tutoriels ultérieurs.
package.xml
Le fichier package.xml définit les propriétés du paquet, telles que le nom, la version, l'auteur, le mainteneur et les dépendances. Le format est le suivant :
<?xml version="1.0"?>
<package format="2">
<name>hello_world</name>
<version>0.0.0</version>
<description>The hello_world package</description>
<maintainer email="xuzuo@todo.todo">xuzuo</maintainer>
<license>TODO</license>
<buildtool_depend>catkin</buildtool_depend>
<build_depend>roscpp</build_depend>
<build_depend>rospy</build_depend>
<build_depend>std_msgs</build_depend>
<build_export_depend>roscpp</build_export_depend>
<build_export_depend>rospy</build_export_depend>
<build_export_depend>std_msgs</build_export_depend>
<exec_depend>roscpp</exec_depend>
<exec_depend>rospy</exec_depend>
<exec_depend>std_msgs</exec_depend>
<export>
</export>
</package>CMakeLists.txt
Le fichier CMakeLists.txt est l'entrée du système de build CMake et est utilisé pour construire le paquet. Il inclut la configuration pour la compilation des fichiers C++ et Python, ainsi que la définition des dépendances.
cmake_minimum_required(VERSION 3.0.2)
project(demo01_hello_vscode)
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
)
catkin_package(
)
include_directories(
${catkin_INCLUDE_DIRS}
)
add_executable(hellow src/hello.cpp)
add_dependencies(hellow ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
target_link_libraries(hellow
${catkin_LIBRARIES}
)
catkin_install_python(PROGRAMS
scripts/hello.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)Commandes du système de fichiers ROS
Commandes courantes pour interagir avec le système de fichiers ROS :
- Créer un paquet :
catkin_create_pkg <package_name> <dependency_1> <dependency_2> ... - Installer un paquet :
sudo apt install <package_name> - Supprimer un paquet :
sudo apt purge <package_name> - Lister les paquets :
rospack list - Trouver un paquet :
rospack find <package_name> - Aller au paquet :
roscd <package_name> - Lister les fichiers d'un paquet :
rosls <package_name> - Rechercher un paquet :
apt search <package_name> - Éditer un fichier de paquet :
rosed <package_name> <file_name>
Exécution des commandes ROS
- Démarrer ROS Core :
roscore - Exécuter un nœud ROS :
rosrun <package_name> <executable_file_name> - Lancer un fichier ROS :
roslaunch <package_name> <launch_file_name>
Graphe de calcul ROS
Le graphe de calcul dans ROS représente la structure d'exécution d'un système ROS, montrant le flux de données entre les différents nœuds. Il peut être visualisé à l'aide de rqt_graph :
rosrun rqt_graph rqt_graphS'il n'est pas installé :
sudo apt install ros-<distro>-rqt
sudo apt install ros-<distro>-rqt-common-pluginsRemplacez <distro> par votre version de ROS (par exemple kinetic, melodic, noetic).
Démonstration du graphe de calcul
Ensuite, nous allons démontrer le graphe de calcul à l'aide de la simulation de tortue intégrée à ROS.
-
Exécuter l'exemple : Suivez les instructions précédentes pour lancer la simulation de la tortue.
-
Visualiser le graphe de calcul : Ouvrez un nouveau terminal et tapez :
bashrqt_graphou
bashrosrun rqt_graph rqt_graph
Vous verrez un graphe de topologie réseau qui affiche les relations entre les différents nœuds, semblable à l'image ci-dessous.
