Überblick über die HelloWorld-Implementierung

Die ROS-Programmierung verwendet hauptsächlich C++ und Python. Die meisten Programme lassen sich in beiden Sprachen umsetzen. Jedes Tutorial zeigt Beispiele sowohl in C++ als auch in Python, sodass Anwender die für sie passende Implementierung wählen können.

Der allgemeine Implementierungsprozess in ROS ist über verschiedene Sprachen hinweg ähnlich. Am Beispiel des HelloWorld-Programms sind die Schritte:

  1. Einen Workspace erstellen.
  2. Ein Paket erstellen.
  3. Quelldateien bearbeiten.
  4. Konfigurationsdateien bearbeiten.
  5. Kompilieren und ausführen.

Der Hauptunterschied zwischen C++ und Python liegt in den Schritten 3 und 4. Die folgenden Abschnitte beschreiben die gemeinsamen Schritte beider Implementierungen mit jeweils eigenen Abschnitten für C++ und Python.

HelloWorld (C++-Version)

  1. Workspace erstellen und initialisieren

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

    Zum Beispiel:

    bash
    mkdir -p seeed_ws/src
    cd seeed_ws
    catkin_make
  2. ROS-Paket erstellen und Abhängigkeiten hinzufügen

    bash
    cd src
    catkin_create_pkg <package_name> roscpp rospy std_msgs

    Zum Beispiel:

    bash
    cd src
    catkin_create_pkg hello_world roscpp rospy std_msgs
  3. Quelldatei bearbeiten

    Wechseln Sie in das src-Verzeichnis Ihres Pakets und erstellen Sie eine neue C++-Quelldatei (z. B. hello.cpp):

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

    zum Beispiel:

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

    Kopieren Sie folgenden Code in 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 bearbeiten

    Fügen Sie am Ende der CMakeLists.txt Ihres Pakets Folgendes hinzu:

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

    zum Beispiel:

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

    J3010

    J3010

    Hinweis: Die hier genannte CMakeLists.txt-Datei befindet sich im Verzeichnis des erstellten Pakets, nicht im Workspace-Verzeichnis.

  5. Workspace kompilieren

    bash
    cd <workspace_name>
    catkin_make

    zum Beispiel:

    bash
      cd ~/seeed_ws
      catkin_make
  6. Programm ausführen

    Öffnen Sie ein Terminal und starten Sie ROS core:

    bash
    roscore

    Öffnen Sie ein weiteres Terminal, sourcen Sie den Workspace und führen Sie den Knoten aus:

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

    zum Beispiel:

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

    J3010

Sie sollten die Ausgabe Hello World! sehen.

HelloWorld (Python-Version)

  1. Workspace erstellen und initialisieren

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

    Zum Beispiel:

    bash
    mkdir -p seeed_ws/src
    cd seeed_ws
    catkin_make
  2. ROS-Paket erstellen und Abhängigkeiten hinzufügen

    bash
    cd src
    catkin_create_pkg <package_name> roscpp rospy std_msgs

    Zum Beispiel:

    bash
    cd src
    catkin_create_pkg hello_world roscpp rospy std_msgs
  3. scripts-Verzeichnis hinzufügen und Python-Datei erstellen

    Wechseln Sie in das Verzeichnis Ihres Pakets, erstellen Sie ein scripts-Verzeichnis und eine neue Python-Datei (z. B. hello.py):

    zum Beispiel:

    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. Ausführungsrechte vergeben

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

    Fügen Sie am Ende der CMakeLists.txt Ihres Pakets Folgendes hinzu:

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

    J3010

  6. Workspace kompilieren

    bash
    cd <workspace_name>
    catkin_make

    zum Beispiel:

    bash
    cd ~/seeed_ws
    catkin_make
  7. Programm ausführen Öffnen Sie ein Terminal und starten Sie ROS core:

    bash
    roscore

    Öffnen Sie ein weiteres Terminal, sourcen Sie den Workspace und führen Sie den Knoten aus:

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

    Zum Beispiel:

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

    Sie sollten die Ausgabe Hello World! sehen.

Hinweis

Damit das Sourcen der Workspace-Setup-Datei bequemer wird, fügen Sie es Ihrer .bashrc hinzu:

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

Dies stellt sicher, dass der Workspace automatisch gesourcet wird, sobald ein neues Terminal geöffnet wird.