Skip to content
Back to skills

Gazebo

ASecurity

Build and debug modern Gazebo simulations and their ROS 2 boundary.

  • 34 stars
  • 0 votes
  • 1 copy
  • 7 views
  • Added September 19, 2026
ai-agentspythongonodedebugginggitapibackenddocumentation

Works with

  • api

Security analysis

A100/100

Pro scans all 7 files and shows the line behind each finding

Scanned September 24, 2026

npx -y skills add robium-ai/robium --skill gazebo --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Gazebo?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Gazebo
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/robium-ai-gazebo/badge)](https://www.skillsdirectory.com/skills/robium-ai-gazebo)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: gazebo
description: Build and debug modern Gazebo simulations and their ROS 2 boundary.
---

# Gazebo

Treat a Gazebo simulation as a contract between world, robot, sensors,
transport, and time. Find the first contract that is not producing believable
evidence.

## Start from the actual stack

- For a new robotics app or first demo, read
  [architect](../architect/SKILL.md) before creating worlds, launchers, or
  containers. Reuse its compatible reference-app selection if already made.
  Existing-world edits, simulator debugging, and explanations stay here.
- Confirm the installed `gz` release, ROS distro, `ros_gz` pairing, render
  backend, and whether the run is graphical or headless.
- When consuming an upstream simulator repository, select and pin an explicit
  branch or ref compatible with that ROS distro; default HEAD is not
  compatibility evidence.
- Use modern Gazebo (`gz`). Gazebo Classic and `libgazebo_ros_*` tutorials are
  a different, end-of-life stack.
- Keep upstream compatibility tables and SDF specifications as the authority
  for release-sensitive package names, tags, and plugin APIs.

## Trace the simulation boundary

- **World:** the selected world loads and the expected systems are present.
- **Robot:** links, joints, frames, and drive plugins agree with the physical
  model and downstream interfaces.
- **Sensors:** rates, fields of view, ranges, noise, frames, and timestamps
  model the intended hardware rather than tutorial defaults.
- **Transport:** prove the Gazebo topic exists before debugging its ROS bridge.
- **Bridge:** prefer reviewable YAML for a static bridge set. Use Python or XML
  launch-based `parameter_bridge` nodes when substitutions, grouping, or
  vendor conventions require them; reserve ad-hoc commands for diagnosis.
- **ROS:** confirm `/clock`, commands, odometry, transforms, and sensor messages
  arrive with the expected direction and QoS.

Do not infer simulation correctness from a running process or visible GUI. A
render-backed sensor may be silent even while physics continues.

## Go deeper only when needed

- For SDF worlds, models, drive plugins, spawning, and headless server mode,
  read [worlds and models](references/worlds-and-models.md).
- For lidar, camera, IMU, contact, noise, and rendering, read
  [sensors](references/sensors.md).
- For `ros_gz_bridge`, topic direction, types, QoS, `/clock`, and frame
  overrides, read [the ROS 2 bridge guide](references/ros2-bridge.md).
- For a silent world, sensor, bridge, or remote launch, read
  [failures](FAILURES.md).
- Use the bundled SDF and bridge YAML together only as a starting pair; keep
  their topic and frame names synchronized and verify syntax upstream.

Move to `navigation` only after the robot pose, sensor, map, and velocity
interfaces are valid. Move to `ros2` when Gazebo is publishing correctly and
the fault is in the ROS graph. Use `environments` for container GPU/display
setup and `simulation` only when the simulator itself has not been chosen.

## Done

- Physics time advances and the expected world and model are present.
- Every required Gazebo topic has a matching, correctly directed ROS interface.
- Sensor rate, frame, timestamp, and render output are believable.
- The run works in its intended graphical or headless environment.
- Release-specific claims match current [Gazebo](https://gazebosim.org/docs/)
  and [ros_gz](https://github.com/gazebosim/ros_gz) documentation.

Files in this skill

  • FAILURES.md3.1 KB
  • SKILL.md2.9 KB
  • examples/diffdrive-world-snippet.sdf10.9 KB
  • examples/ros-gz-bridge-config.yaml3.2 KB
  • references/ros2-bridge.md5.6 KB
  • references/sensors.md6.2 KB
  • references/worlds-and-models.md7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.