Skip to content

Ignition Gazebo Fortress

Az Ignition Gazebo Fortress egy long-term support (LTS) release 2026 szeptemberéig támogatva. ROS 2 Humble kiadással kompatibilis, lásd a kompatibiltási mátrixot.

Static Badge

Telepítés

Ajánlott az Ubuntu és a binary telepítés: gazebosim.org/docs/fortress/install_ubuntu. Természetesen az előző linken továbbkattintva elérhetőek a Windowsos illetve a forráskódból fordított verziók is.

ROS 2 integráció

Megjegyzés WSL esetén

Gazebo szimulátort és Windows Subsystem for Linux-ot használva előfordulhat egy issue, ami egy egyszerű környezeti változó beállításával javítható. A ~/.bashrc fájlba a következőt kell beállítani:

export LIBGL_ALWAYS_SOFTWARE=1 ### GAZEBO IGNITION 

Új terminál vagy source után a echo $LIBGL_ALWAYS_SOFTWARE parancsra 1-et fog kiíni.

Példa: Gazebo Fortress beépített világok (world)

WSL elsetén első lépésként ellenőrizzük a beállítások helyességét:

echo $LIBGL_ALWAYS_SOFTWARE 

Amennyiben a parancsra 1-et ír válaszként, akkor helyes a beállításunk.

Nézzük meg a telepített verziót:

ign param --versions

A válasz pl 11.4.1 lehet.

Indítsuk el a Gazebo-t:

ign gazebo

gazebo

Nyissuk meg a shapes.sdf világot. Az SDF (Simulation Description Format) egy beépített XML leírás. Akár egy parancsként is indítható: ign gazebo shapes.sdf.

Példa: Ackermann robot

Ackermann robotnak a „személyautó-szerű”, hagyományos, elől két kormányzott, hátul pedig két nem kormányzott kerékkel rendelkező járművet / robotot nevezzük. Ebben a példában egy ilyen robotot szeretnénk mozgatni ROS 2-ből. Az ign gazebo parancsra a szimuláció-választó felület indul. Egy paranccsal indítható az Ackermann robotot tartalmazó szimuláció:

ign gazebo -v 4 -r ackermann_steering.sdf

Alt text

Az Ignition Gazebo ROS 2-től független, de jól támogatott, így ros_gz_bridge package segítségével indítható az a bridge, amin a szimmulációs topic-ok ROS 2 topic-ként látszanak, pl:

sudo apt update
sudo apt install ros-humble-ros-gz -y

Tanteremben pedig:

cd /mnt/kozos/script
./gz_bridge.sh
ros2 run ros_gz_bridge parameter_bridge /model/vehicle_blue/cmd_vel@geometry_msgs/msg/Twist]ignition.msgs.Twist
ros2 run ros_gz_bridge parameter_bridge /model/vehicle_blue/odometry@nav_msgs/msg/Odometry[ignition.msgs.Odometry --ros-args -r /model/vehicle_blue/odometry:=/odom
ros2 run ros_gz_bridge parameter_bridge /world/ackermann_steering/pose/info@tf2_msgs/msg/TFMessage[ignition.msgs.Pose_V  --ros-args -r /world/ackermann_steering/pose/info:=/tf

Ez a 3 parancs egy hosszú parancsként is kiadható:

ros2 run ros_gz_bridge parameter_bridge /model/vehicle_blue/cmd_vel@geometry_msgs/msg/Twist]ignition.msgs.Twist /model/vehicle_blue/odometry@nav_msgs/msg/Odometry[ignition.msgs.Odometry   /world/ackermann_steering/pose/info@tf2_msgs/msg/TFMessage[ignition.msgs.Pose_V  --ros-args -r /world/ackermann_steering/pose/info:=/tf -r /model/vehicle_blue/odometry:=/odom

Hogy pontosan milyen szimulációs topicok vannak, az ezekkel a parancsokkal ellenőrizhető:

ign topic -l
ign topic -et /model/vehicle_blue/tf
ign topic -i --topic /model/vehicle_blue/tf

Billentyűzetről teleoperálhatjuk a járművet:

ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args -r /cmd_vel:=/model/vehicle_blue/cmd_vel

Linkek