Ez a projekt egy ROS 2 Humble alapú autonóm robot rendszert valósít meg
TurtleBot3 szimulációval.
A robot LaserScan szenzoradatok alapján érzékeli az akadályokat,
kiszámolja a legközelebbi akadály távolságát, ütközésveszélyt jelez,
és Foxglove Studio segítségével grafikus felületen monitorozható.
A projekt az
Autonóm járművek és robotok programozása tantárgy
nagy féléves beadandójaként készült.
- TurtleBot3 szimuláció Gazebo-ban (headless mód)
- LaserScan feldolgozás (
/scan) - Minimum akadálytávolság számítás (
/min_distance) - Ütközésveszély jelzés (
/collision_warning) - Egyszerű autonóm vezérlés (
/cmd_vel) - Statikus TF kapcsolat (
base_footprint → base_scan) - Foxglove Studio vizualizáció:
- LaserScan 3D nézet
- Sebesség grafikonok
- Biztonsági állapot indikátor
- Ubuntu 22.04
vagy - Windows + WSL2 (Ubuntu 22.04)
- ROS 2 Humble
- Gazebo Classic
- TurtleBot3 csomagok
- Foxglove Studio
sudo apt update
sudo apt install ros-humble-turtlebot3* ros-humble-gazebo-ros-pkgs
echo "export TURTLEBOT3_MODEL=burger" >> ~/.bashrc
source ~/.bashrc
cd ~/ros2_ws
source /opt/ros/humble/setup.bash
colcon build
Ebben a terminálban indul el a teljes robot rendszer.
- Környezet betöltése
source /opt/ros/humble/setup.bash
cd ~/ros2_ws
source install/setup.bash
- Teljes rendszer indítása (egyetlen parancs)
ros2 launch autonomous_robot tb3_headless.launch.py
Ez a launch fájl automatikusan elindítja:
- Gazebo szimulációt (headless)
- TurtleBot3 modellt
- robot_state_publisher node-ot
- statikus TF kapcsolatot (base_footprint → base_scan)
- autonóm vezérlőt (controller_node)
- biztonsági réteget (min_distance_node)
- /cmd_vel monitor node-ot
- Ellenőrzés
ros2 topic list | grep -E "scan|min_distance|collision|cmd_vel"
Elvárt topicok:
- /scan
- /cmd_vel
- /min_distance
- /collision_warning
Ez a terminál a Foxglove Studio kapcsolathoz szükséges.
- Környezet betöltése
source /opt/ros/humble/setup.bash
- Foxglove Bridge indítása
ros2 launch foxglove_bridge foxglove_bridge_launch.xml
WebSocket cím:
ws://localhost:8765
Ellenőrzés:
ss -lntp | grep 8765
- Indítsd el a Foxglove Studio-t
- Connect → Foxglove WebSocket
- Add meg a címet:
ws://localhost:8765
- Fixed frame: odom vagy base_footprint
- Bekapcsolva: /scan
- /cmd_vel.linear.x
- /cmd_vel.angular.z
- /min_distance.data
- /collision_warning.data
- true → piros (STOP)
- false → zöld (OK)
- A LaserScan adatból kiszűrésre kerülnek:
- NaN értékek
- végtelen (inf) értékek
- range_min / range_max kívüli mérések
- Meghatározásra kerül a legkisebb érvényes távolság
- Ha min_distance < stop_distance:
- collision_warning = true
- a robot megáll és fordul
- Egyébként:
- a robot előre halad
ros2 run tf2_ros static_transform_publisher 0 0 0 0 0 0 base_footprint base_scan
ros2 topic echo /min_distance --once