Um ein ROS-Paket in deinem C++-File einzubinden und zu benutzen, musst du einige Schritte in der `CMakeLists.txt` deines ROS-Pakets durchführen. Hier sind die Schritte und was in jedem Schritt passiert: 1. **CMake-Version und Projektname festlegen**: ```cmake cmake_minimum_required(VERSION 3.0.2) project(dein_projektname) ``` - Hier legst du die minimale CMake-Version fest, die benötigt wird, und definierst den Namen deines Projekts. 2. **ROS-Paket finden**: ```cmake find_package(catkin REQUIRED COMPONENTS roscpp std_msgs) ``` - Mit `find_package` suchst du nach den benötigten ROS-Paketen. In diesem Beispiel wird `roscpp` (für C++-Entwicklung) und `std_msgs` (für Standard-Nachrichtentypen) benötigt. 3. **catkin-Paket initialisieren**: ```cmake catkin_package() ``` - Dieser Befehl initialisiert dein Paket als ein catkin-Paket und ermöglicht es, Abhängigkeiten und andere Einstellungen zu definieren. 4. **Include-Verzeichnisse hinzufügen**: ```cmake include_directories(${catkin_INCLUDE_DIRS}) ``` - Hier fügst du die Include-Verzeichnisse hinzu, die von catkin bereitgestellt werden, damit dein C++-Code die Header-Dateien der ROS-Pakete finden kann. 5. **Quellcode kompilieren**: ```cmake add_executable(dein_executable src/dein_quellcode.cpp) ``` - Mit `add_executable` erstellst du ein ausführbares Ziel aus deinem C++-Quellcode. Hier wird `dein_executable` der Name des zu erstellenden Programms und `src/dein_quellcode.cpp` der Pfad zu deiner C++-Datei angegeben. 6. **Linken der Bibliotheken**: ```cmake target_link_libraries(dein_executable ${catkin_LIBRARIES}) ``` - Dieser Schritt verknüpft dein ausführbares Ziel mit den benötigten ROS-Bibliotheken, die durch `catkin_LIBRARIES` bereitgestellt werden. 7. **Installation (optional)**: ```cmake install(TARGETS dein_executable RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} ) ``` - Hier kannst du angeben, wo das ausführbare Ziel installiert werden soll, wenn das Paket installiert wird. Durch diese Schritte wird sichergestellt, dass dein C++-Code korrekt mit den ROS-Bibliotheken verknüpft ist und die notwendigen Abhängigkeiten berücksichtigt werden.