Pixhawk 硬件更换与系统复现笔记
卓博泰智能科技 · Drobotics SUPER SLAM 无人机
Pixhawk 6C Mini
FAST-LIO
PX4 EKF
高度融合
通过 复现清单
说明
本文档记录了将 Drobotics SUPER SLAM 无人机迁移到新 Pixhawk 6C Mini 时所做更改,以及未来重建或复现系统时必须重复的操作。
1. 硬件更换
新飞控: Pixhawk 6C Mini
PX4 固件: v1.17
连接方式: USB
PX4 固件: v1.17
连接方式: USB
Jetson 通过 USB 连接 Pixhawk,而非 TELEM1/TELEM2。
fcu_url:=/dev/serial/by-id/usb-Auterion_PX4_FMU_v6C.x_0-if00:115200
Jetson USB → Pixhawk USB → MAVROS
警告 TELEM MAVLink 参数(如 MAV_0_CONFIG / MAV_1_CONFIG)不是本设置中 Jetson 的主链路。
2. 更换 Pixhawk 后必须重做
更换 Pixhawk 意味着飞控应被视为新的飞机大脑。
在 QGroundControl 中重做:
• 机架选择
• 加速度计校准
• 陀螺仪校准
• 罗盘校准
• 水平校准
• RC 校准
• 飞行模式分配
• 电机方向/顺序检查
• 电调校准(如需要)
• 机架选择
• 加速度计校准
• 陀螺仪校准
• 罗盘校准
• 水平校准
• RC 校准
• 飞行模式分配
• 电机方向/顺序检查
• 电调校准(如需要)
错误 不要假设旧 Pixhawk 的校准适用于新 Pixhawk。
3. 室内 SLAM 必需的 PX4 EKF 设置
关键的成功设置是使用 FAST-LIO 外部视觉 Z 作为高度参考。
EKF2_EV_CTRL = 11
EKF2_HGT_REF = 3
EKF2_BARO_CTRL = 1
EKF2_GPS_CTRL = 0
EKF2_RNG_CTRL = 0
EKF2_EV_CTRL = 11 的含义:
通过 融合外部视觉水平位置
通过 融合外部视觉垂直位置
通过 融合外部视觉偏航
通过 融合外部视觉水平位置
通过 融合外部视觉垂直位置
通过 融合外部视觉偏航
警告 重要发现: EKF2_EV_CTRL = 1 不够。
使用 EKF2_EV_CTRL=1 时,PX4 仅使用水平外部视觉。FAST-LIO Z 稳定,但 PX4 高度仍随气压计漂移。
使用 EKF2_EV_CTRL=1 时,PX4 仅使用水平外部视觉。FAST-LIO Z 稳定,但 PX4 高度仍随气压计漂移。
有效修复:
EKF2_EV_CTRL = 11
EKF2_HGT_REF = 3
此后 PX4 local Z 变得非常稳定。
EKF2_EV_CTRL = 11
EKF2_HGT_REF = 3
此后 PX4 local Z 变得非常稳定。
4. 为什么保留气压计启用
EKF2_BARO_CTRL = 1
因为禁用气压计会导致解锁/高度估计问题。
但高度参考是视觉:EKF2_HGT_REF = 3
但高度参考是视觉:EKF2_HGT_REF = 3
因此气压计保留用于 PX4 健康和备用行为,而 FAST-LIO 外部视觉成为主要长期高度参考。
5. 验证稳定的 Z 结果
Pixhawk 6C Mini 设置和 EV 高度融合后的静态 Z:
FAST-LIO Z:0.0005 → -0.0133,变化约 -1.4 cm
EV TO PX4 Z:-0.0032 → -0.0084,变化约 -0.5 cm
PX4 LOCAL Z:-0.0055 → -0.0086,变化约 -0.3 cm
FAST-LIO Z:0.0005 → -0.0133,变化约 -1.4 cm
EV TO PX4 Z:-0.0032 → -0.0084,变化约 -0.5 cm
PX4 LOCAL Z:-0.0055 → -0.0086,变化约 -0.3 cm
这远优于旧的气压计驱动行为,旧行为中 PX4 local Z 在无人机静止时可能漂移数十厘米。
6. 硬件更换后必需的启动检查
~/start_slam_takeoff_test_mid360s.sh
source /opt/ros/humble/setup.bash
source ~/slam_ws/install/setup.bash
source ~/super_ws/install/setup.bash
echo "=== PARAMS ==="
ros2 param get /mavros/param EKF2_EV_CTRL
ros2 param get /mavros/param EKF2_HGT_REF
ros2 param get /mavros/param EKF2_BARO_CTRL
ros2 param get /mavros/param EKF2_GPS_CTRL
ros2 param get /mavros/param EKF2_RNG_CTRL
echo "=== RATES ==="
timeout 5 ros2 topic hz /Odometry
timeout 5 ros2 topic hz /mavros/odometry/out
timeout 5 ros2 topic hz /mavros/local_position/odom
echo "=== STATE ==="
ros2 topic echo /mavros/state --once
预期:
EKF2_EV_CTRL = 11
EKF2_HGT_REF = 3
EKF2_BARO_CTRL = 1
EKF2_GPS_CTRL = 0
EKF2_RNG_CTRL = 0
/Odometry ≈ 10 Hz
/mavros/odometry/out ≈ 10 Hz
/mavros/local_position/odom ≈ 30 Hz
connected: true
armed: false
manual_input: true
mode: POSCTL 或 STABILIZED
EKF2_EV_CTRL = 11
EKF2_HGT_REF = 3
EKF2_BARO_CTRL = 1
EKF2_GPS_CTRL = 0
EKF2_RNG_CTRL = 0
/Odometry ≈ 10 Hz
/mavros/odometry/out ≈ 10 Hz
/mavros/local_position/odom ≈ 30 Hz
connected: true
armed: false
manual_input: true
mode: POSCTL 或 STABILIZED
7. RC 检查
如果 RC 关闭,MAVROS 可能显示:
manual_input: false
mode: AUTO.LOITER
mode: AUTO.LOITER
这是预期的。
RC 开启时,预期:
connected: true
armed: false
manual_input: true
mode: POSCTL
armed: false
manual_input: true
mode: POSCTL
source /opt/ros/humble/setup.bash
source ~/slam_ws/install/setup.bash
source ~/super_ws/install/setup.bash
echo "=== STATE WITH RC ON ==="
ros2 topic echo /mavros/state --once
echo "=== RC INPUT ==="
timeout 5 ros2 topic echo /mavros/rc/in --once
8. 无桨解锁测试
更换 Pixhawk 后,在实飞前必须进行此测试。
拆除螺旋桨
在 POSCTL 中解锁
等待 2-3 秒
上锁
在 POSCTL 中解锁
等待 2-3 秒
上锁
source /opt/ros/humble/setup.bash
source ~/slam_ws/install/setup.bash
source ~/super_ws/install/setup.bash
echo "Press ARM now, then DISARM after 2-3 sec"
timeout 12 ros2 topic echo /mavros/state
预期:
armed: true
mode: POSCTL
manual_input: true
connected: true
armed: true
mode: POSCTL
manual_input: true
connected: true
通过 在新 Pixhawk 6C Mini 上已通过测试。
9. 硬件更换后的首次实飞建议
警告 不要直接跳转到 auto-nav。
飞行顺序:
1. POSCTL 悬停测试
2. OFFBOARD 位置保持
3. 仅在前两者稳定后才尝试 auto-nav
1. POSCTL 悬停测试
2. OFFBOARD 位置保持
3. 仅在前两者稳定后才尝试 auto-nav
首次真实测试:
在 POSCTL 中解锁 → 手动起飞 → 在 0.6–0.8m 悬停 → 观察高度稳定性 → 降落 → 检查 rosbag
在 POSCTL 中解锁 → 手动起飞 → 在 0.6–0.8m 悬停 → 观察高度稳定性 → 降落 → 检查 rosbag
只有在通过后:切换 OFFBOARD → 确认位置保持 → 然后尝试 Drobotics SUPER auto-nav
警告 10. Auto-nav 注意事项
之前在
follow_super_yaw:=true 时观察到突然的偏航运动。
因此新 Pixhawk 首次测试时,使用更安全的蟹行模式:
follow_super_yaw:=false
桥接应以以下参数启动:
-p follow_super_z:=false
-p follow_super_yaw:=false
-p follow_super_z:=false
-p follow_super_yaw:=false
这保持航向稳定,同时允许无人机横向移动。
通过 11. 复现清单
供未来卓博泰智能科技构建使用:
烧录 PX4 固件
校准 Pixhawk 传感器
校准 RC
设置机架
确认 USB 设备路径
启动 MAVROS
设置 EKF2_EV_CTRL = 11
设置 EKF2_HGT_REF = 3
保持 EKF2_BARO_CTRL = 1
室内禁用 GPS 融合
无测距仪时禁用测距仪融合
确认 /Odometry 10 Hz
确认 /mavros/odometry/out 10 Hz
确认 /mavros/local_position/odom 30 Hz
确认 Z 稳定性
无桨解锁检查
POSCTL 悬停
OFFBOARD 位置保持
然后 auto-nav
总结
本次硬件更换的最大经验:
FAST-LIO Z 始终是好的。
PX4 直到 EKF2_EV_CTRL 改为 11 后才完全使用它。
FAST-LIO Z 始终是好的。
PX4 直到 EKF2_EV_CTRL 改为 11 后才完全使用它。
一旦 PX4 融合了垂直外部视觉并使用视觉作为高度参考,Drobotics SUPER 室内平台变得更加稳定和安全,为未来的避障测试奠定了基础。
平台:Jetson · ROS2 Humble · Pixhawk 6C Mini · PX4 1.17 · FAST-LIO
(c) 卓博泰智能科技 · Pixhawk 硬件更换与系统复现笔记
(c) 卓博泰智能科技 · Pixhawk 硬件更换与系统复现笔记