I am running PX4 SITL with Gazebo using the x500 model, but my drone does not climb above 0.1m when executing a takeoff command. The takeoff is detected, but the altitude remains stuck at 0.1m, and the drone does not ascend further.
Here’s what I’ve checked and tried so far:
1. Takeoff Altitude Parameter (MIS_TAKEOFF_ALT)
• Set to 2.5m (param set MIS_TAKEOFF_ALT 2.5)
• Verified with param show MIS_TAKEOFF_ALT
2. EKF2 Status (ekf2 status)
• local position: 1
• global position: 1
• terrain: 1
• However, Preflight Fail: height estimate not stable warning occurs.
3. Sensor Data (listener sensor_combined)
• IMU and accelerometer values appear normal.
• Gyro readings are active.
• However, dist_bottom_valid: False in vehicle_local_position.
• Set to 0 (Barometer) → No improvement.
5. Motor Outputs (listener actuator_outputs)
• Motors are receiving signals and spinning.
• However, thrust does not seem to increase above hover level.
6. Gazebo Physics & Gravity
• gz physics -p confirms gravity is 9.81 m/s².
• gz topic -e /gazebo/default/x500_1/actuators shows actuator commands are being published.
7. Force Manual Climb in Altitude Mode
• commander mode altitude
• commander arm
• commander throttle up
• The drone still does not climb above 0.1m.
8. PX4 Logs & Additional Tests
• PX4 logs show Takeoff detected.
• The drone remains in the “taking off” state but does not exceed 0.1m.
⸻
Question:
• Why is the drone not climbing above 0.1m despite a correct takeoff command?
• How can I resolve the “Preflight Fail: height estimate not stable” warning?
• Could this be a Gazebo-PX4 synchronization issue or a terrain-following problem?
Any insights or debugging suggestions would be greatly appreciated!
⸻
Environment:
• PX4 Version: Latest master branch
• OS: Ubuntu 22.04 (WSL2)
• Gazebo Version: Garden
• Simulator Model: x500
• EKF2 Parameters: Default, with some modifications as mentioned above