Skip to content

offboard_control causes immediate blind land — EKF2 converges on vision data but drone lands down immediately or drone crashes #27

@thagachess

Description

@thagachess

Branch: ros2 | Commit: 9cf1089 | Setup: Fresh Docker image rebuilt from .devcontainer/humble/Dockerfile, VSCode devcontainer, Ubuntu, no GPU (AMD)

Could you help me in resolving this

What I did

Terminal 1 — Build and launch PX4 + Gazebo:

cd ~/ros2_ws
cp -r /workspaces/rtabmap_drone_example src/
colcon build --symlink-install
source install/setup.bash
cd ~/PX4-Autopilot
make px4_sitl gz_x500_depth_apt

Terminal 2 — XRCE DDS Agent:

docker exec -it drone_sim bash
MicroXRCEAgent udp4 -p 8888

Terminal 3 — ROS2 bridge:

docker exec -it drone_sim bash
source ~/ros2_ws/install/setup.bash
ros2 launch rtabmap_drone_example ros2_bridge.launch.py

Terminal 4 — Offboard control (after Terminal 1 says Ready for takeoff!):

docker exec -it drone_sim bash
source ~/ros2_ws/install/setup.bash
ros2 run rtabmap_drone_example offboard_control --ros-args -p use_sim_time:=true

What Happens

Terminal 1 — PX4 output (every attempt):

WARN  [health_and_arming_checks] Preflight Fail: No valid data from Baro 0
WARN  [health_and_arming_checks] Preflight Fail: ekf2 missing data
WARN  [health_and_arming_checks] Preflight Fail: High Gyro Bias
WARN  [health_and_arming_checks] Preflight Fail: heading estimate not stable
WARN  [timesync] time jump detected. Resetting time synchroniser.
WARN  [uxrce_dds_client] time sync no longer converged
INFO  [uxrce_dds_client] time sync converged
INFO  [commander] Ready for takeoff!
INFO  [commander] Armed by external command
WARN  [mc_pos_control] invalid setpoints
WARN  [mc_pos_control] Failsafe: blind land
WARN  [failsafe] Failsafe activated
ERROR [flight_mode_manager] Matching flight task was not able to run, Nav state: 2, Task: 1
INFO  [commander] Landing detected
INFO  [commander] Disarmed by landing

Terminal 4 — offboard_control output:

Offboard could not be set, make sure the vehicle position is published
or check if there are some preflight checks failing... will try again in 1 second.
Offboard could not be set, make sure the vehicle position is published
or check if there are some preflight checks failing... will try again in 1 second.

Diagnostic Output

ros2 topic list | grep vehicle_local_position

/fmu/out/vehicle_local_position

Topic is correct, not _v1. The 9cf1089 rename fix is present. This is not a topic name issue.

ros2 topic echo /fmu/out/vehicle_local_position --once

xy_valid: true
z_valid: true
dead_reckoning: true
xy_global: false
z_global: false
heading_var: 0.014
heading_good_for_control: true

dead_reckoning: true means EKF2 is running on IMU only — vision is never fused. heading_var never stabilizes below 0.01.

ros2 topic echo /fmu/out/vehicle_status_v1 --once

arming_state: 1
pre_flight_checks_pass: false
nav_state: 14
gcs_connection_lost: true

ros2 node info /offboard_control

Subscribers:
  /fmu/out/vehicle_local_position: px4_msgs/msg/VehicleLocalPosition
  /fmu/out/vehicle_status_v1: px4_msgs/msg/VehicleStatus
Publishers:
  /fmu/in/offboard_control_mode: px4_msgs/msg/OffboardControlMode
  /fmu/in/trajectory_setpoint: px4_msgs/msg/TrajectorySetpoint
  /fmu/in/vehicle_command: px4_msgs/msg/VehicleCommand

pxh> commander check

INFO  [commander] Preflight check: FAILED

pxh> commander status

INFO  [commander] Disarmed
INFO  [commander] navigation mode: Offboard
INFO  [commander] in failsafe: no

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions