Projekt mini ROS

Projekt mini ROS

ros

Cel

Chcemy upewnić się, że

  • jesteś zaznajomiony z Linux, ROS1 i git
  • posiadasz podstawowe umiejętności programowania
  • wiesz, jak dokumentować kod i przestrzegać przewodników stylu

Zadania przygotowawcze

  • Ukończ samouczki Beginner Level 1-17 na http://wiki.ros.org/ROS/Tutorials
  • Postępuj zgodnie z krokami instalacji wymaganymi do uruchomienia symulatora Husky w ROS Noetic
$ 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

Uruchomienie symulacji

Uruchom główny plik startowy dla robota Husky:

roslaunch husky_gazebo husky_empty_world.launch

Szacunkowa pozycja robota jest dostarczana przez wyjście rozszerzonego filtra Kalmana: jest publikowana na /odometry/filtered.

$ rostopic echo /odometry/filtered

Prędkość robota można ustawić, publikując wiadomość Twist na /twist_marker_server/cmd_vel:

  • Wpisz rostopic pub /twist_marker_server/cmd_vel geometry_msgs/Twist
  • Naciśnij Tab dwa razy
  • Ustaw szybkość na 10 Hz

Możesz ustawić prędkość do przodu, na przykład:

$ 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

Zadanie

Napisz węzeł C++, który sprawia, że robot jazdy do pozycji x = 10.0 i y = 1.0 w ramce odom.

Twój węzeł musi

  • zasubskrybować /odometry/filtered
  • publikować na /twist_marker_server/cmd_vel

Prawidłowa pozycja jest osiągana, gdy robot znajduje się w odległości 0,5 m od celu, na przykład

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

Nie pisz nic zbyt skomplikowanego: prosimy, aby było to proste.

I prosimy o przestrzeganie przewodników stylów opisanych na http://wiki.ros.org/StyleGuide, http://wiki.ros.org/CppStyleGuide i http://wiki.ros.org/PyStyleGuide.

Dodaj README.md

Dodaj plik README.md, który opisuje:

  • jak zainstalować wymagane zależności
  • co robi twój węzeł
  • jak go używać

Prześlij do gitlab.com

  • Utwórz prywatne repozytorium
  • Wyślij swój kod (powinieneś mieć więcej niż jeden commit dla tego mini-projektu)
  • Dodaj maug (Maurice Gohlke) i ddimarco (Daniel Di Marco) jako współpracowników

Wyślij nam link do repozytorium e-mailem na maurice.gohlke@farming-revolution.com.

Farming Revolution
Copyright © farming revolution GmbH - 2026