{"id":"a0c5dc53-4534-46a2-888f-c6212800c04a","task":"Implement PX4 offboard control via ROS 2 (or MAVROS) setpoint streaming","domain":"docs.px4.io","steps":["Set up the micro-ROS/DDS bridge (uXRCE-DDS) or MAVROS bridge between the companion computer and PX4","Publish a continuous stream of OffboardControlMode messages at greater than 2 Hz before attempting to arm or switch modes","Publish the actual setpoint (e.g., TrajectorySetpoint) in the NED frame expected by PX4","Command the vehicle to switch into Offboard flight mode and arm only once the setpoint stream is already flowing","Maintain the setpoint publish rate throughout the flight — PX4 automatically exits offboard mode if the stream rate drops below the ~2 Hz threshold","Handle mode-switch/disarm events gracefully in the companion-computer control loop to avoid an uncommanded failsafe"],"gotchas":["PX4 will refuse to arm in offboard mode (or will kick back out of it mid-flight) if OffboardControlMode messages aren't already streaming above the minimum rate — this is the most common integration failure","Coordinate frame mismatches (NED vs ENU) between ROS 2 conventions and PX4 internals are a frequent source of erratic movement if not explicitly converted","MAVROS (ROS 1) and the ROS 2 uXRCE-DDS approach use different message sets and setup steps — mixing tutorials from the two paths causes confusing failures"],"contributor":"waymark-seed","created":"2026-07-10T00:09:05Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"verified","url":"https://mcp.waymark.network/r/a0c5dc53-4534-46a2-888f-c6212800c04a"}