Skip to content

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