Vue d'ensemble de l'implémentation HelloWorld
La programmation ROS utilise principalement C++ et Python. La plupart des programmes peuvent être implémentés dans les deux langages. Chaque tutoriel présente des exemples en C++ et en Python, permettant aux utilisateurs de choisir l'implémentation qui leur convient le mieux.
Le processus d'implémentation général dans ROS est similaire d'un langage à l'autre. En prenant le programme HelloWorld comme exemple, les étapes sont :
- Créer un espace de travail.
- Créer un paquet.
- Modifier les fichiers source.
- Modifier les fichiers de configuration.
- Compiler et exécuter.
La principale différence entre C++ et Python se situe aux étapes 3 et 4. Les sections suivantes détaillent les étapes communes aux deux implémentations, avec des sections spécifiques pour C++ et Python.
HelloWorld (version C++)
-
Créer et initialiser l'espace de travail
bashmkdir -p <workspace_name>/src cd <workspace_name> catkin_makePar exemple :
bashmkdir -p seeed_ws/src cd seeed_ws catkin_make -
Créer un paquet ROS et ajouter les dépendances
bashcd src catkin_create_pkg <package_name> roscpp rospy std_msgsPar exemple :
bashcd src catkin_create_pkg hello_world roscpp rospy std_msgs -
Modifier le fichier source
Allez dans le répertoire
srcde votre paquet et créez un nouveau fichier source C++ (par exemplehello.cpp) :bashcd ~/<workspace_name>/src/<package_name>/src touch hello.cpppar exemple :
bashcd ~/seeed_ws/src/hello_world/src touch hello.cppcopiez le code suivant dans
hello.cpp:cpp#include "ros/ros.h" int main(int argc, char *argv[]) { ros::init(argc, argv, "hello"); ros::NodeHandle n; ROS_INFO("Hello World!"); return 0; } -
Modifier
CMakeLists.txtAjoutez ce qui suit à la fin du
CMakeLists.txtde votre paquet :cmakeadd_executable(<node_name> src/hello.cpp) target_link_libraries(<node_name> ${catkin_LIBRARIES})par exemple :
cmakeadd_executable(hello src/hello.cpp) target_link_libraries(hello ${catkin_LIBRARIES})Remarque : le fichier
CMakeLists.txtmentionné ici se trouve dans le répertoire du paquet créé, et non dans le répertoire de l'espace de travail. -
Compiler l'espace de travail
bashcd <workspace_name> catkin_makepar exemple :
bashcd ~/seeed_ws catkin_make -
Exécuter le programme
Ouvrez un terminal et démarrez ROS core :
bashroscoreOuvrez un autre terminal, sourcez l'espace de travail et exécutez le nœud :
bashcd <workspace_name> source devel/setup.bash rosrun <package_name> hellopar exemple :
bashcd ~/seeed_ws source devel/setup.bash rosrun hello_world hello
Vous devriez voir la sortie : Hello World!
HelloWorld (version Python)
-
Créer et initialiser l'espace de travail
bashmkdir -p <workspace_name>/src cd <workspace_name> catkin_makePar exemple :
bashmkdir -p seeed_ws/src cd seeed_ws catkin_make -
Créer un paquet ROS et ajouter les dépendances
bashcd src catkin_create_pkg <package_name> roscpp rospy std_msgsPar exemple :
bashcd src catkin_create_pkg hello_world roscpp rospy std_msgs -
Ajouter le répertoire
scriptset créer le fichier PythonAllez dans le répertoire de votre paquet, créez un répertoire
scriptset un nouveau fichier Python (par exemplehello.py) :par exemple :
bashmkdir ~/seeed_ws/src/hello_world/scripts cd ~/seeed_ws/src/hello_world/scripts touch hello.pypython#!/usr/bin/env python import rospy if __name__ == "__main__": rospy.init_node("hello") rospy.loginfo("Hello World!") -
Ajouter les permissions d'exécution
bashsudo chmod +x hello.py -
Modifier
CMakeLists.txtAjoutez ce qui suit à la fin du
CMakeLists.txtde votre paquet :cmakecatkin_install_python(PROGRAMS scripts/hello.py DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} ) -
Compiler l'espace de travail
bashcd <workspace_name> catkin_makepar exemple :
bashcd ~/seeed_ws catkin_make -
Exécuter le programme Ouvrez un terminal et démarrez ROS core :
bashroscoreOuvrez un autre terminal, sourcez l'espace de travail et exécutez le nœud :
bashcd <workspace_name> source devel/setup.bash rosrun <package_name> hello.pyPar exemple :
bashcd ~/seeed_ws source devel/setup.bash rosrun hello_world hello.pyVous devriez voir la sortie :
Hello World!
Note
Pour rendre le sourcing du fichier de setup de l'espace de travail plus pratique, ajoutez-le à votre .bashrc :
echo "source ~/<workspace_name>/devel/setup.bash" >> ~/.bashrcCela garantit que l'espace de travail est sourcé automatiquement chaque fois qu'un nouveau terminal est ouvert.