Overzicht van de HelloWorld-implementatie

Programmeren in ROS gebeurt voornamelijk met C++ en Python. De meeste programma's kunnen in beide talen worden geïmplementeerd. Elke tutorial demonstreert voorbeelden in zowel C++ als Python, zodat gebruikers de implementatie kunnen kiezen die het beste bij hen past.

Het algemene implementatieproces in ROS is voor verschillende talen vergelijkbaar. Aan de hand van het HelloWorld-programma zijn de stappen:

  1. Een werkruimte aanmaken.
  2. Een pakket aanmaken.
  3. Bronbestanden bewerken.
  4. Configuratiebestanden bewerken.
  5. Compileren en uitvoeren.

Het belangrijkste verschil tussen C++ en Python zit in stappen 3 en 4. De volgende secties beschrijven de gemeenschappelijke stappen voor beide implementaties, met specifieke secties voor C++ en Python.

HelloWorld (C++-versie)

  1. Werkruimte aanmaken en initialiseren

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

    Bijvoorbeeld:

    bash
    mkdir -p seeed_ws/src
    cd seeed_ws
    catkin_make
  2. ROS-pakket aanmaken en afhankelijkheden toevoegen

    bash
    cd src
    catkin_create_pkg <package_name> roscpp rospy std_msgs

    Bijvoorbeeld:

    bash
    cd src
    catkin_create_pkg hello_world roscpp rospy std_msgs
  3. Bronbestand bewerken

    Ga naar de src-map van uw pakket en maak een nieuw C++-bronbestand aan (bijv. hello.cpp):

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

    bijvoorbeeld:

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

    kopieer de volgende code naar 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. CMakeLists.txt bewerken

    Voeg het volgende toe aan het einde van de CMakeLists.txt van uw pakket:

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

    bijvoorbeeld:

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

    J3010

    J3010

    Let op: het hier genoemde CMakeLists.txt-bestand bevindt zich in de map van het aangemaakte pakket, niet in de map van de werkruimte.

  5. De werkruimte compileren

    bash
    cd <workspace_name>
    catkin_make

    bijvoorbeeld:

    bash
      cd ~/seeed_ws
      catkin_make
  6. Het programma uitvoeren

    Open een terminal en start ROS core:

    bash
    roscore

    Open een andere terminal, source de werkruimte en voer de node uit:

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

    bijvoorbeeld:

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

    J3010

U zou de uitvoer moeten zien: Hello World!

HelloWorld (Python-versie)

  1. Werkruimte aanmaken en initialiseren

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

    Bijvoorbeeld:

    bash
    mkdir -p seeed_ws/src
    cd seeed_ws
    catkin_make
  2. ROS-pakket aanmaken en afhankelijkheden toevoegen

    bash
    cd src
    catkin_create_pkg <package_name> roscpp rospy std_msgs

    Bijvoorbeeld:

    bash
    cd src
    catkin_create_pkg hello_world roscpp rospy std_msgs
  3. scripts-map toevoegen en Python-bestand aanmaken

    Ga naar de map van uw pakket, maak een scripts-map aan en een nieuw Python-bestand (bijv. hello.py):

    bijvoorbeeld:

    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. Uitvoeringsrechten toevoegen

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

    Voeg het volgende toe aan het einde van de CMakeLists.txt van uw pakket:

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

    J3010

  6. De werkruimte compileren

    bash
    cd <workspace_name>
    catkin_make

    bijvoorbeeld:

    bash
    cd ~/seeed_ws
    catkin_make
  7. Het programma uitvoeren Open een terminal en start ROS core:

    bash
    roscore

    Open een andere terminal, source de werkruimte en voer de node uit:

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

    Bijvoorbeeld:

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

    U zou de uitvoer moeten zien: Hello World!

Opmerking

Om het sourcen van het setup-bestand van de werkruimte gemakkelijker te maken, voegt u het toe aan uw .bashrc:

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

Dit zorgt ervoor dat de werkruimte automatisch wordt gesourced telkens wanneer een nieuwe terminal wordt geopend.