Tartalom
  1. 1. feladat
    1. Clone és build
    2. Futtatás
  2. 2. feladat
    1. Clone és build
    2. Futtatás
  3. 3. feladat
    1. Clone és build
    2. Futtatás
    3. Navigáció
  4. Sources

1. feladat

Ebben a feladatban az elméleti órán bemutatott polinom alapú lokális tervező megvalósítását fogjuk bemutatni. Ehhez elsőként frissítsük az arj_packages repository-t!

Clone és build

cd ~/ros2_ws/src/arj_packages/
git pull

Ezek után buildeljük az arj_local_planner nevű package-t!

cd ~/ros2_ws
colcon build --packages-select arj_local_planner

Futtatás

Ezek után futtassuk a planner-t a launch fájl segítségével, source-olás után.

source ~/ros2_ws/install/setup.bash
ros2 launch arj_local_planner run_all.launch.py

Nézzük meg, milyen topicok jöttek létre (új terminálban)!

ros2 topic list

Létrejött a /goal_pose topic illetve a /planner/trajectory topic. A goal_pose az a célpozíció, amelyre a tervező tervez, a planner/trajectory pedig a waypoint list, maga a tervezett trajektória. Indítsünk egy rviz-t!

ros2 run rviz2 rviz2

Válasszuk ki a map frame-t, illetve adjuk hozzá a /planner/trajectory topicot. Ezek után a fenti sávból a 2D Goal Pose opciót használva vegyünk fel egy goal pose-t a griden úgy, hogy az a pozitív koordináták irányában helyezkedjen el! Ekkor a tervező automatikusan ráilleszt egy polinomot a célpozícióra.

Ezt az egyszerű tervezőt használhatjuk pl. mozgó célpontra (másik jármű, sáv közepe, globális trajektória egy pontja…stb) illetve statikus célpontra (pl. parkolóhely).

2. feladat

A második feladat a ROS 2 Navigation stack-jének beüzemelése szimulátorban, üres pályán. Részletes dokumentáció a navigation.ros.org oldalon.

Clone és build

cd ~/ros2_ws/src
git clone https://github.com/rosblox/nav2_outdoor_example
cd ~/ros2_ws
rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO
cd ~/ros2_ws
colcon build --packages-select nav2_outdoor_example

Futtatás

source ~/ros2_ws/install/setup.bash
ros2 launch nav2_outdoor_example bringup.launch.py

3. feladat

A harmadik feladat a ROS 2 Navigation stack-jének beüzemelése szimulátorban, a turlebot egyik pályáján. Részletes dokumentáció a navigation.ros.org oldalon.

Videó direkt link

Megjegyzés: előfordulhat, hogy az ign_ros_control package másik feladatban is buildelt package, ha ez már létezik, akkor a build / apt install kihagyható. A helyek, ahol ez lehetséges, hogy megtalálható:

ros2_ws/src/gz_ros2_control/ign_ros2_control
ros2_ws/src/navigation2_ignition_gazebo_example/src/gz_ros2_control/ign_ros2_control
/opt/ros/humble/share/ign_ros2_control

Clone és build

sudo apt install ros-humble-navigation2 ros-humble-nav2-bringup ros-humble-turtlebot3-gazebo
cd ~/ros2_ws/src
git clone https://github.com/ros-controls/gz_ros2_control
git clone https://github.com/art-e-fact/navigation2_ignition_gazebo_example
cd ~/ros2_ws/src/gz_ros2_control
git checkout humble
cd ~/ros2_ws
rosdep install -y --from-paths src --ignore-src --rosdistro humble
cd ~/ros2_ws
colcon build --packages-select sam_bot_nav2_gz

Futtatás

Gazebo, RViz2 és Navigation2

source ~/ros2_ws/install/setup.bash
ros2 launch sam_bot_nav2_gz complete_navigation.launch.py

Célpont kijelölése RViz2-ben:

source ~/ros2_ws/install/setup.bash
ros2 run sam_bot_nav2_gz follow_waypoints.py
source ~/ros2_ws/install/setup.bash
ros2 run sam_bot_nav2_gz reach_goal.py

Sources