Skip to content

Latest commit

 

History

History
60 lines (44 loc) · 2.27 KB

File metadata and controls

60 lines (44 loc) · 2.27 KB

PX4 and ROS 2 Integration

Current status

Component Implemented Validated in this repository
ENU↔NED vector conversion Yes Unit-tested
FLU↔FRD attitude conversion Yes Unit-tested round trip
Yaw convention conversion Yes Unit-tested known values
ROS 2 offboard publisher Yes Import boundary only
PX4 SIH container definition Yes Configuration not launched locally
PX4 SITL closed loop No evidence yet No
HIL No evidence yet No
Flight No evidence yet No

Frame boundary

ATLAS uses ENU world and FLU body frames. PX4 uses NED world and FRD body frames. All conversion code is centralized in atlas_controls.integrations.px4_frames; controller code must not perform ad hoc axis swaps.

Start PX4 SIH

The compose file pins px4io/px4-sitl:v1.17.0:

docker compose -f deploy/px4/compose.yaml up

Exposed UDP ports support QGroundControl, MAVSDK/offboard, uXRCE-DDS, and the SIH display. Confirm the image digest and PX4 release before any formal experiment.

PX4's official documentation distinguishes SITL and HITL and provides prebuilt SIH containers. ATLAS has not yet reproduced a complete launch in CI.

ROS 2 boundary

create_offboard_node() requires rclpy and px4_msgs. It publishes:

  • OffboardControlMode;
  • TrajectorySetpoint;
  • VehicleCommand.

The node streams setpoints before requesting offboard mode and arming. Message fields and topic compatibility must be tested against a pinned PX4 and px4_msgs pair.

Safety gate before HIL

  1. Pin PX4 firmware, px4_msgs, ROS 2 distribution, DDS agent, and container digest.
  2. Verify ENU/NED and FLU/FRD transformations with recorded known poses.
  3. Confirm timestamps, QoS, failsafe behavior, and command timeouts.
  4. Demonstrate disarmed SITL setpoint streaming.
  5. Demonstrate SITL offboard loss and recovery.
  6. Enforce geofence, thrust, attitude, rate, and altitude limits independently in PX4.
  7. Run HIL without propellers and verify actuator ordering.
  8. Review logs and failure cases before attaching propellers.
  9. Use a controlled test area, trained operators, and a physical kill mechanism.

Software tests in this repository do not authorize or establish safe flight.