gazebo-simlisted
Install: claude install-skill Leehyunbin0131/claude-ros2-skills
# Gazebo Simulation & ROS 2 Integration Instructions (Ubuntu 24.04 LTS)
## 1. Architecture Rule
Jazzy pairs with **Gazebo Harmonic**. Use modern Gazebo Sim (`gz`, formerly Ignition) and `ros_gz` only — never mix legacy Gazebo Classic (`gazebo_ros_pkgs` / `gazebo_ros`), whose tags and plugin names look similar and do not work here.
## 2. Documentation Entry Points
| For | Entry point |
| :--- | :--- |
| Gazebo Harmonic (the Jazzy pairing) | `https://gazebosim.org/docs/harmonic/` |
| SDF tag reference | `https://sdformat.org/` |
| `ros_gz` bridge + sim launch/spawn | `https://github.com/gazebosim/ros_gz` |
| Nav2's Gazebo bringup walkthrough (URDF, SDF world, odom, sensors) | `https://docs.nav2.org/setup_guides/gazebo.html` |
**Bridge syntax** (direction char is the thing people get wrong — see the symptom table):
```bash
ros2 run ros_gz_bridge parameter_bridge /scan@sensor_msgs/msg/LaserScan[gz.msgs.LaserScan
```
Spawning: `ros_gz_sim create -topic robot_description`, or `gz_sim.launch.py`. YAML bridge config files are supported for anything non-trivial.
## 3. Sensor & Motion Plugins Reference (SDF)
### A. Differential Drive Motion Plugin
```xml
<plugin filename="gz-sim-diff-drive-system" name="gz::sim::systems::DiffDrive">
<left_joint>left_wheel_joint</left_joint>
<right_joint>right_wheel_joint</right_joint>
<wheel_separation>0.3</wheel_separation>
<wheel_radius>0.05</wheel_radius>
<odom_publish_frequency>50</odom_publish_frequency>
<topic>/cmd_vel</topic>