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 :

  1. Créer un espace de travail.
  2. Créer un paquet.
  3. Modifier les fichiers source.
  4. Modifier les fichiers de configuration.
  5. 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++)

  1. Créer et initialiser l'espace de travail

    bash
    mkdir -p <workspace_name>/src
    cd <workspace_name>
    catkin_make

    Par exemple :

    bash
    mkdir -p seeed_ws/src
    cd seeed_ws
    catkin_make
  2. Créer un paquet ROS et ajouter les dépendances

    bash
    cd src
    catkin_create_pkg <package_name> roscpp rospy std_msgs

    Par exemple :

    bash
    cd src
    catkin_create_pkg hello_world roscpp rospy std_msgs
  3. Modifier le fichier source

    Allez dans le répertoire src de votre paquet et créez un nouveau fichier source C++ (par exemple hello.cpp) :

    bash
    cd ~/<workspace_name>/src/<package_name>/src
    touch hello.cpp

    par exemple :

    bash
    cd ~/seeed_ws/src/hello_world/src
    touch hello.cpp

    copiez 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;
    }

    J3010

  4. Modifier CMakeLists.txt

    Ajoutez ce qui suit à la fin du CMakeLists.txt de votre paquet :

    cmake
    add_executable(<node_name> src/hello.cpp)
    target_link_libraries(<node_name> ${catkin_LIBRARIES})

    par exemple :

    cmake
    add_executable(hello src/hello.cpp)
    target_link_libraries(hello ${catkin_LIBRARIES})

    J3010

    J3010

    Remarque : le fichier CMakeLists.txt mentionné ici se trouve dans le répertoire du paquet créé, et non dans le répertoire de l'espace de travail.

  5. Compiler l'espace de travail

    bash
    cd <workspace_name>
    catkin_make

    par exemple :

    bash
      cd ~/seeed_ws
      catkin_make
  6. Exécuter le programme

    Ouvrez un terminal et démarrez ROS core :

    bash
    roscore

    Ouvrez un autre terminal, sourcez l'espace de travail et exécutez le nœud :

    bash
    cd <workspace_name>
    source devel/setup.bash
    rosrun <package_name> hello

    par exemple :

    bash
    cd ~/seeed_ws
    source devel/setup.bash
    rosrun hello_world hello

    J3010

Vous devriez voir la sortie : Hello World!

HelloWorld (version Python)

  1. Créer et initialiser l'espace de travail

    bash
    mkdir -p <workspace_name>/src
    cd <workspace_name>
    catkin_make

    Par exemple :

    bash
    mkdir -p seeed_ws/src
    cd seeed_ws
    catkin_make
  2. Créer un paquet ROS et ajouter les dépendances

    bash
    cd src
    catkin_create_pkg <package_name> roscpp rospy std_msgs

    Par exemple :

    bash
    cd src
    catkin_create_pkg hello_world roscpp rospy std_msgs
  3. Ajouter le répertoire scripts et créer le fichier Python

    Allez dans le répertoire de votre paquet, créez un répertoire scripts et un nouveau fichier Python (par exemple hello.py) :

    par exemple :

    bash
    mkdir ~/seeed_ws/src/hello_world/scripts
    cd ~/seeed_ws/src/hello_world/scripts
    touch hello.py
    python
    #!/usr/bin/env python
    
    import rospy
    
    if __name__ == "__main__":
        rospy.init_node("hello")
        rospy.loginfo("Hello World!")
  4. Ajouter les permissions d'exécution

    bash
    sudo chmod +x hello.py
  5. Modifier CMakeLists.txt

    Ajoutez ce qui suit à la fin du CMakeLists.txt de votre paquet :

    cmake
    catkin_install_python(PROGRAMS scripts/hello.py
      DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
    )

    J3010

  6. Compiler l'espace de travail

    bash
    cd <workspace_name>
    catkin_make

    par exemple :

    bash
    cd ~/seeed_ws
    catkin_make
  7. Exécuter le programme Ouvrez un terminal et démarrez ROS core :

    bash
    roscore

    Ouvrez un autre terminal, sourcez l'espace de travail et exécutez le nœud :

    bash
    cd <workspace_name>
    source devel/setup.bash
    rosrun <package_name> hello.py

    Par exemple :

    bash
    cd ~/seeed_ws
    source devel/setup.bash
    rosrun hello_world hello.py

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

bash
echo "source ~/<workspace_name>/devel/setup.bash" >> ~/.bashrc

Cela garantit que l'espace de travail est sourcé automatiquement chaque fois qu'un nouveau terminal est ouvert.