Drobotics logo DROBOTICSTechnical Library

SLAM Guide

SLAM 无人机 — Offboard 自主起飞 + 0.50 米前进测试 | livox_offboard_forward

All SLAM
SLAM Drone — Offboard Takeoff + 0.50m Forward | 自主起飞 + 前进测试

SLAM Drone — Offboard Takeoff + 0.50m Forward

自主起飞 + 前进测试 · livox_offboard_forward · FAST-LIO · PX4

自主起飞 ↗ 0.50m 前进 FAST-LIO PX4 Offboard 通过 实机验证
概述

本流程使用 livox_offboard_forward 控制器执行以下任务:

• 等待你解锁并选择 Offboard
• 爬升约 0.50 米
• 确认飞行器已稳定
• 保持 5 秒
• 以 0.10 m/s 前进 0.50 米
• 无限期保持最终位置
控制器不会解锁 PX4、选择 Offboard、避障或自动降落。
⏱ 预期任务时间线
阶段计算时间
爬升0.50 m ÷ 0.20 m/s≈ 2.5 秒
稳定检查settle_confirm_time_s≥ 2 秒
起飞后保持post_takeoff_hold_s5 秒
前进运动0.50 m ÷ 0.10 m/s5 秒
前进运动不会在切换到 Offboard 后立即开始。预计需要约 10 秒或更长时间,具体取决于飞行器稳定速度。
控制器参数
参数说明
takeoff_height_m0.50起飞高度(米)
climb_rate_mps0.20爬升率(米/秒)
arm_settle_time_s1.00解锁稳定时间(秒)
forward_distance_m0.50前进距离(米)
forward_speed_mps0.10前进速度(米/秒)
post_takeoff_hold_s5.00起飞后保持时间(秒)
settle_position_tolerance_m0.15稳定位置容差(米)
settle_vertical_speed_mps0.15稳定垂直速度容差(米/秒)
settle_confirm_time_s2.00稳定确认时间(秒)
takeoff_settle_timeout_s20.00起飞稳定超时(秒)
setpoint_rate_hz20.0设定点频率(Hz)
odom_timeout_s0.50里程计超时(秒)
max_odom_jump_m0.75最大里程计跳变(米)
警告 启动前准备
安全要求:
• 无人机机头朝向预定前进方向
• 前方至少 1.5 米 净空
• 两侧至少 1 米 净空
• 移除轨迹上的人员、门、线缆、家具和其他障碍物
• 本控制器 无避障功能
仅使用一个控制器。停止 slam_position_holdlivox_offboard_takeoff
EKF2_EV_CTRL = 1 EKF2_GPS_CTRL = 0 EKF2_HGT_REF = 0
终端 1 — 启动堆栈和 rosbag
# 仅在无人机已上锁时移除现有 tmux 会话 tmux kill-session -t slam 2>/dev/null || true # 选择且仅选择一个启动器 # 新 MID-360S: ~/start_slam_takeoff_test_mid360s.sh # 原有 MID-360: ~/start_slam_takeoff_test.sh
保持终端 1 连接到 tmux。不要同时运行两个启动器。
终端 2 — 启动前进控制器
source /opt/ros/humble/setup.bash source ~/slam_ws/install/setup.bash source ~/super_ws/install/setup.bash ros2 run drobotics_super_bridge livox_offboard_forward \ --ros-args \ -p takeoff_height_m:=0.50 \ -p climb_rate_mps:=0.20 \ -p arm_settle_time_s:=1.00 \ -p forward_distance_m:=0.50 \ -p forward_speed_mps:=0.10 \ -p post_takeoff_hold_s:=5.00 \ -p settle_position_tolerance_m:=0.15 \ -p settle_vertical_speed_mps:=0.15 \ -p settle_confirm_time_s:=2.00 \ -p takeoff_settle_timeout_s:=20.00 \ -p setpoint_rate_hz:=20.0 \ -p odom_timeout_s:=0.50 \ -p max_odom_jump_m:=0.75
保持此终端可见。其消息指示当前任务阶段。
终端 3 — 解锁前验证
source /opt/ros/humble/setup.bash source ~/slam_ws/install/setup.bash source ~/super_ws/install/setup.bash # 检查 FAST-LIO 和桥接频率 timeout 10 ros2 topic hz /Odometry timeout 10 ros2 topic hz /mavros/odometry/out # 检查控制器设定点频率 timeout 6 ros2 topic hz /mavros/setpoint_position/local # 确认正确的控制器是唯一发布者 ros2 topic info /mavros/setpoint_position/local --verbose # 检查 PX4 和本地里程计 ros2 topic echo /mavros/state --once ros2 topic echo /mavros/extended_state --once ros2 topic echo /mavros/local_position/odom --once --field pose.pose.position
预期:
/Odometry: 约 10 Hz
/mavros/odometry/out: 约 10 Hz
/mavros/setpoint_position/local: 约 20 Hz
发布者: livox_offboard_forward
connected: true · armed: false · mode: POSCTL · landed_state: 1
如果另一个控制器也在发布,请勿解锁。位置必须稳定。
无桨测试限制
无桨测试可以验证:设定点流 · Position→Offboard 模式切换 · 电机响应 · 控制器和 MAVROS 通信

无法完成前进任务,因为无人机无法爬升或满足起飞稳定条件。
无桨测试流程:
1. 在 Position 模式下解锁
2. 居中油门
3. 等待 1-2 秒
4. 切换至 Offboard
5. 仅观察 3-5 秒
6. 切换回 Position 模式
7. 降低油门并上锁
警告 无桨时不要等待 20 秒起飞稳定超时。
实际飞行流程
1. FAST-LIO 初始化期间保持无人机静止。

2. 验证所有话题频率和 MAVROS 状态。

3. 确认无人机前方区域完全畅通。

4. 机头朝向预定前进方向。

5. 选择 Position 模式。

6. 保持低油门解锁。

7. 将油门移至中位(仍在 Position 模式下)。

8. 等待约 1-2 秒。

9. 保持所有 RC 摇杆居中。

10. 切换至 Offboard。
任务阶段
阶段 1 — 自动起飞
无人机以 0.20 m/s 爬升约 0.50 米,同时保持初始 X/Y 位置和偏航角。
阶段 2 — 稳定
控制器等待无人机在目标 0.15 米以内且垂直速度低于 0.15 m/s 至少 2 秒。
阶段 3 — 起飞后保持
无人机保持起飞位置 5 秒。
警告 前几秒没有前进运动不代表有问题。
阶段 4 — 前进运动
无人机沿任务开始时机头方向前进约 0.50 米
速度:0.10 m/s · 持续时间:约 5 秒
阶段 5 — 最终保持
到达前进目标后,无人机停止并保持最终 XYZ 位置和偏航角,直到你切换模式。
观察要点
起飞期间:
通过 缓慢、受控爬升
通过 无明显水平漂移
通过 偏航稳定
通过 无快速电机波动
前进运动期间:
通过 沿机头方向运动
通过 约步行速度
通过 无意外横向运动
通过 高度大致恒定
通过 在 0.50 米附近减速停止
立即停止测试,如果:
• 无人机方向错误
• 侧向移动而非前进
• 在达到稳定悬停前开始移动
• 前进时高度明显变化
• FAST-LIO 位置跳变
• 控制器报告陈旧里程计或超时
• 飞行路径不再畅通
正常降落
1. 保持油门居中。
2. 从 Offboard 切换回 Position 模式。
3. 确认手动控制已恢复。
4. 逐渐将油门移到底部以下。
5. 下降并着陆。
6. 将油门完全拉低。
7. 如必要切换至 Stabilized 模式。
8. 上锁。
控制器不会自动返航或降落。
紧急恢复
如果任何异常:
1. 立即切换至 Position 模式。
2. 初始保持油门接近中位。
3. 允许无人机停止前进运动。
4. 必要时手动重新定位。
5. 逐渐下降并着陆。
6. 模式切换时无人机可能有前进惯性,预留额外停车空间。
如果 Position 模式不可用或不稳定:切换至 Stabilized 模式 · 手动控制 · 降落并上锁
停止并保存 rosbag
# 着陆并上锁后: # 终端 2:停止控制器 Ctrl-C # 返回终端 1 并分离 tmux: Ctrl-b # 释放按键,然后按: d
source /opt/ros/humble/setup.bash LATEST_BAG=$(cat ~/rosbags/.latest_indoor_hover) echo "$LATEST_BAG" ls -lah "$LATEST_BAG" ros2 bag info "$LATEST_BAG"
bag 应包含 /mavros/setpoint_position/local 以及里程计和状态话题。
pgrep -af \ 'livox_ros_driver2_node|fastlio_mapping|fastlio_to_mavros|mavros_node|rosbag2_recorder' \ || echo "PASS: no stack processes remain"
备注
这是此前成功完成 0.50 米前进飞行 的控制器。对于 MID-360S 测试,保留相同的保守距离和速度。

平台:Jetson · ROS2 Humble · Livox Mid360 · FAST-LIO · PX4 · livox_offboard_forward
(c) 卓博泰科技 · Offboard Takeoff + Forward 测试流程