claudeDroneteam-docs
documentation · reference
Docs reference

Structured knowledge from collected_doc_media/claudedrone_docs/. Browse the tree on the left; the source of truth is markdown in the repo.

Simulation environment

Gazebo + ArduPilot SITL. Worlds, plugins, drone models, network routing to ROS 2.

draftdoc-seoupdated 2026-05-11T00:00:00.000ZClaudeDrone

We do almost all of our flying in simulation. Indoor RL training on a real drone means broken propellers, broken sensors, and the occasional broken ceiling — so until a policy is stable, it lives entirely inside Gazebo Harmonic talking to ArduPilot SITL through a UDP bridge. The setup runs on a single Ubuntu host, scales to 8 parallel instances when we need to fan out RL rollouts, and behaves close enough to the real airframe that sim-to-real transfer mostly works (with a noise-aware policy — see rl/observation_space/tof-sim-to-real).

The split is conceptually simple: Gazebo provides the physics (rigid-body dynamics, sensor models, world geometry) and SITL provides the autopilot (the actual ArduCopter firmware running in software). They communicate over lockstep mode, which is what keeps the simulation deterministic even when real time slows down. Without lockstep, a busy host can drop the real-time factor to 0.6× and silently introduce timing artifacts that look like sensor noise; with it, the sim just runs slower and stays correct.

There are three sub-sections here. Gazebo covers the worlds we fly in (the warehouse_v2 indoor map, the obstacle maze, the dynamic-wind world for robustness training), the plugins that wire ArduPilot into the physics engine, and the URDF/SDF models of the drone itself. SITL covers installing ArduCopter from source, the ros_gz_bridge topic mapping, and how to run several SITL instances in parallel without their DDS domains stepping on each other. ROS 2 is the smaller third leg — DDS settings, QoS profiles, environment configuration that matters for sim but isn’t strictly Gazebo or SITL.

If you’re setting up sim for the first time, the path is: install ArduPilot SITL → install Gazebo Harmonic → build the ardupilot_gazebo plugin → launch a world → connect MAVROS. There’s no single “sim quickstart” doc yet (TODO); for now, the closest thing is ardupilot-install followed by ardupilot-gazebo-bridge. It takes about an hour end-to-end on a clean machine.

Contents

Auto-generated from child _index.md files and entries during build (update-indexes.mjs).

© 2026 claudeDrone Team · auto-pipeline · Nuxt 3 SSR