ROS Mini-Projekt

ROS Mini-Projekt

ros

Ziel

Wir möchten sicherstellen, dass du

  • mit Linux, ROS1 und git vertraut bist
  • grundlegende Programmierkenntnisse besitzt
  • weißt, wie man Code dokumentiert und Style-Guides befolgt

Vorbereitende Aufgaben

  • Absolviere die Beginner Level Tutorials 1 bis 17 auf http://wiki.ros.org/ROS/Tutorials
  • Befolge die Installationsschritte, die erforderlich sind, um den Husky-Simulator unter ROS Noetic zu starten
$ sudo apt install ros-noetic-gazebo-ros-* ros-noetic-lms1xx
$ cd ~/catkin_ws/src
$ git clone https://github.com/husky/husky.git
$ cd ..
$ rosdep install --from-path src --ignore-src
$ catkin build
$ source devel/setup.bash

Simulation starten

Starte die Haupt-Launch-Datei für den Husky-Roboter mit:

roslaunch husky_gazebo husky_empty_world.launch

Die geschätzte Position des Roboters wird durch die Ausgabe des Extended Kalman Filters bereitgestellt: Sie wird auf /odometry/filtered veröffentlicht.

$ rostopic echo /odometry/filtered

Die Robotergeschwindigkeit kann durch das Veröffentlichen einer Twist-Nachricht auf /twist_marker_server/cmd_vel eingestellt werden:

  • Eingabe von rostopic pub /twist_marker_server/cmd_vel geometry_msgs/Twist
  • zweimaliges Drücken von Tab
  • Einstellen einer Rate von 10 Hz

Du kannst eine Vorwärtsgeschwindigkeit setzen, z. B.:

$ rostopic pub /twist_marker_server/cmd_vel geometry_msgs/Twist "linear:
  x: 0.2
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.0" -r 10

Aufgabe

Schreibe einen C++-Node, der den Roboter zur Position x = 10.0 und y = 1.0 im odom-Frame fahren lässt.

Dein Node muss

  • /odometry/filtered abonnieren
  • auf /twist_marker_server/cmd_vel veröffentlichen

Die korrekte Position ist erreicht, wenn der Roboter sich innerhalb von 0,5 m vom Zielort befindet, z. B.

$ rosrun tf tf_echo odom base_link
- Translation: [10.254, 1.324, 0.000]
- Rotation: ...

Schreibe nichts zu Kompliziertes: bitte halte es einfach.

Und befolge bitte die Code-Styles, die unter http://wiki.ros.org/StyleGuide, http://wiki.ros.org/CppStyleGuide und http://wiki.ros.org/PyStyleGuide beschrieben sind.

README.md hinzufügen

Füge eine README.md-Datei hinzu, die beschreibt:

  • wie die erforderlichen Abhängigkeiten installiert werden
  • was dein Node tut
  • wie man ihn verwendet

Auf gitlab.com hochladen

  • Erstelle ein privates Repository
  • Pushe deinen Code (du solltest mehr als einen Commit für dieses Mini-Projekt haben)
  • Füge maug (Maurice Gohlke) und ddimarco (Daniel Di Marco) als Mitarbeiter hinzu

Sende uns den Link zum Repository per E-Mail an maurice.gohlke@farming-revolution.com.

Farming Revolution
Copyright © farming revolution GmbH - 2026