> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# QRB ROS Simulation

[`qrb_ros_simulation`](https://github.com/qualcomm-qrb-ros/qrb_ros_simulation) is a Gazebo-based simulation environment for the AMRs and manipulators that the [`qrb_ros_samples`](./qrb-ros-samples) catalog targets. Its purpose is simple: **let you evaluate QRB ROS code paths without buying hardware**.

<Note>
  Honest framing — this is a **convenience layer on top of Gazebo**, not a unique simulation engine. The value is the pre-built URDFs, meshes, controllers, and launch files for QRB AMRs and arms, so the same Nav2 / MoveIt2 / control code that runs on a real robot also runs in sim.
</Note>

## What it ships

Two ROS 2 packages, working together:

| Package                                                                             | Role                                                                                                            |
| ----------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| [`qrb_ros_sim_description`](https://github.com/qualcomm-qrb-ros/qrb_ros_simulation) | URDFs, meshes, and description assets for QRB AMRs, manipulators, and sensors.                                  |
| [`qrb_ros_sim_gazebo`](https://github.com/qualcomm-qrb-ros/qrb_ros_simulation)      | Gazebo integration + launch files. Wires up controllers and exposes standard ROS topics via the `ros-gz` stack. |

Standard topics published by the simulation include `/clock`, `/tf`, `/tf_static`, `/robot_description`, `/joint_states`, and `/camera/color/camera_info` — so any node that consumes `sensor_msgs` or follows the standard ROS 2 conventions sees a real-looking robot.

## When to use it

* **Pre-purchase evaluation** — verify your stack runs end-to-end against a QRB AMR or arm before committing to hardware.
* **CI / regression testing** — run navigation and manipulation stacks in headless Gazebo on every commit.
* **Algorithm prototyping** — iterate on Nav2, MoveIt2, or control logic without owning a robot.

## Quick start

<Steps>
  <Step title="Install Gazebo and ROS 2 Jazzy">
    Follow the standard [Gazebo Harmonic install](https://gazebosim.org/docs/harmonic/install) and [Install ROS Jazzy](https://docs.ros.org/en/jazzy/index.html) for your platform. No Qualcomm hardware required.
  </Step>

  <Step title="Build from source">
    ```bash theme={null}
    mkdir -p qrb_sim_ws/src && cd qrb_sim_ws/src
    git clone https://github.com/qualcomm-qrb-ros/qrb_ros_simulation.git
    cd ..
    rosdep install --from-paths src --ignore-src -r -y
    colcon build --symlink-install
    source install/setup.bash
    ```
  </Step>

  <Step title="Launch a sim world">
    See the [upstream Usage section](https://github.com/qualcomm-qrb-ros/qrb_ros_simulation#-usage) for the current launch commands. The simulation samples in [`qrb_ros_samples`](./qrb-ros-samples) (e.g., `simulation_sample_amr_simple_motion`, `simulation_sample_pick_and_place`) are designed to run against this environment.
  </Step>
</Steps>

## Why this helps

| Alternative                              | Short take                                                                                      |
| ---------------------------------------- | ----------------------------------------------------------------------------------------------- |
| Stock Gazebo + your own URDFs            | Maximum flexibility; you author the AMR / arm / sensor models yourself. Real bring-up effort.   |
| NVIDIA Isaac Sim                         | Photorealistic + RL pipelines, but needs an RTX-class GPU and is ecosystem-locked to Isaac ROS. |
| PyBullet / MuJoCo / Webots / CoppeliaSim | Different sim ecosystems; not ROS-graph-native out of the box.                                  |

It's a convenience layer, not a new sim engine — but it's the fastest way to run QRB ROS samples and exercise the same code paths that target real Qualcomm-powered robots, with no hardware in the loop.

## Related

* [`qrb-ros-samples.mdx`](./qrb-ros-samples) — sample pipelines whose `simulation_*` entries run against this environment.
* Upstream: [`qualcomm-qrb-ros/qrb_ros_simulation`](https://github.com/qualcomm-qrb-ros/qrb_ros_simulation).
