Skip to content

Configuration

Robot Configuration

x500

The Holybro X500 V2 robot's bundled description.

This module collects every concrete value that describes the one robot this project ships: joint groupings, the home pose, the VAMP planning subgroups, the kinodynamic limits and the top-level RobotConfig instance.

The dataclass types themselves live in :mod:drone_planning.types.robot — this file holds values of those types.

The model is PX4's x500_gimbal Gazebo model (PX4-gazebo-models x500 + gimbal), converted to URDF by scripts/px4_sdf_to_urdf.py. Its rotors sit 0.348 m apart on a square (0.49 m diagonal), matching the X500 V2's 500 mm wheelbase, and its skids hang 0.23 m below the body frame (Holybro: 215 mm landing gear). The model keeps PX4's 11.5-inch propeller mesh; Holybro ships 10-inch (1045) propellers.

The flight controller holds roll and pitch, so the body is a velocity-commanded point with a heading. The full configuration vector is 6-DOF:

  • [0:4] — body (x, y, z, yaw): virtual joints in the world frame (z up, yaw counter-clockwise from +x)
  • [4:6] — gimbal: pan (cgo3_vertical_arm_joint) and tilt (cgo3_camera_joint); gimbal roll is held level

The gimbal keeps the PX4 model's joint axes, so the joint values are PX4's gimbal angles in the body frame: positive pan turns the camera clockwise seen from above (to the right), positive tilt raises it, and zero looks straight ahead.