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.

ArduPilot SITL setup

Setting up ArduPilot SITL on Ubuntu/ROS 2 with MAVLink routing.

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

This page is the higher-level “what’s installed where, and what talks to what” reference for the ArduPilot SITL side of the simulation. The hands-on install walkthrough is on ArduPilot install (Aleks’s notes).

Component layout

~/ardupilot/                 ← ArduPilot source + SITL build artifacts
   └── Tools/autotest/       ← sim_vehicle.py entry point
~/ardupilot_gazebo/          ← plugin: links ArduPilot to Gazebo
~/git/proj/aerosearch/
   └── claudedrone-git/
       └── simulation/
           ├── config/
           │   └── ardupilot/
           │       └── indoor.parm    ← our parameter overrides
           ├── help_scripts/
           │   └── launch.sh           ← orchestrates everything
           └── src/drone_sim/
               ├── models/             ← Gazebo models (iris_claudedrone)
               ├── worlds/             ← Gazebo worlds
               └── launch/             ← ROS 2 launch files

What talks to what

sim_vehicle.py
   ├── starts ArduCopter binary  ────[UDP 9002/9003]──→ Gazebo (ardupilot_gazebo plugin)
   └── exposes MAVLink TCP 5760  ────[TCP]─────────────→ MAVROS
                                                            │
                                                            └── ROS 2 topics (/mavros/state etc.)

Parameter files

ArduPilot defaults are designed for outdoor flight. For indoor work, we override a chunk of them in indoor.parm — sub-meter tuning, EKF source preferences, arming-check relaxation. The detailed parameter-by-parameter breakdown is in ArduCopter indoor.parm.

Critical: the .parm file must be ASCII only, no non-ASCII characters in comments, and no comment line longer than ~80 characters. The reason is the AP_Param 100-byte parser buffer — see SITL “Waiting for heartbeat” cause 2 for the full incident report.

Smoke test

cd ~/git/proj/aerosearch/claudedrone-git/simulation
./help_scripts/launch.sh --sim --headless -d -log

Within ~30 seconds: AP: ArduCopter V… Frame: QUAD/X, mode STABILIZE, MAVLink heartbeat at ~1 Hz. If that doesn’t happen, go straight to SITL “Waiting for heartbeat”.

Where to go next

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