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.

IMU state vector

Attitude, angular velocity, and linear acceleration from the IMU as policy inputs.

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

The IMU state vector packages the drone’s inertial sense into a fixed-shape observation. In our setup, the IMU is read through MAVROS (/mavros/imu/data) at 100 Hz; the RL policy consumes it at the policy rate (typically 10 Hz) — every 10th sample, with optional smoothing.

Current status: the IMU input is present in observations but not heavily exploited yet. The 2D coverage simulator doesn’t need attitude (the drone is constrained to a horizontal plane), but a future real-drone setup with 3D motion would benefit from full IMU state in the observation.

Components

Field Source Dimensionality
Orientation (quaternion) EKF3-fused 4
Angular velocity (gyro) Raw 3
Linear acceleration Raw, gravity-subtracted 3
Battery voltage MAVROS state 1

Total: 11 floats.

Why we don’t use roll/pitch in the current 2D task

The 2D coverage simulator constrains motion to a horizontal plane; the drone is always level. Roll/pitch from IMU would either be near-zero (clean policy with no use) or noise (sim-to-real artifact). For the 3D task that ships with real-drone bring-up — see H2 2026 roadmap — the IMU will become load-bearing.

Sim-to-real notes

  • Bias drift — real IMUs accumulate drift; Gazebo’s gz-sim-imu-system plugin has tunable bias parameters. Domain randomization on bias (random per-episode offset within ±0.01 rad/s) is recommended.
  • Latency — IMU sample → policy observation has a ~10-30 ms pipeline latency on the real drone (sensor read → MAVROS bridge → ROS 2 DDS → policy node). Sim has near-zero latency. Match by adding a fixed delay in the sim observation.

Where to go next

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