SUPER 地图与规划集成笔记
Mid-360 + FAST-LIO + ROG-Map + SUPER Planner · ROS2 Humble
Mid-360
FAST-LIO
ROG-Map
SUPER Planner
通过 多项式轨迹
1. 目的与验证范围
本文档记录在 Jetson 平台上构建的工作集成方案,以便后续理解、复现和扩展,无需重复相同的调查工作。
当前系统功能: LiDAR 数据采集、LiDAR-惯性里程计、局部占据地图构建、基于目标点的路径规划和多项式轨迹生成。
通过 已验证:
• Mid-360 数据流
• FAST-LIO 里程计
• 注册点云
• ROG-Map 占据数据
• SUPER 规划状态转移
• 非空七阶多项式轨迹
• Mid-360 数据流
• FAST-LIO 里程计
• 注册点云
• ROG-Map 占据数据
• SUPER 规划状态转移
• 非空七阶多项式轨迹
错误 尚未验证:
• Pixhawk 通信
• 机载命令转换
• 解锁逻辑
• 失效保护
• 真实无人机响应
• 避障飞行
• 室内飞行参数调优
• Pixhawk 通信
• 机载命令转换
• 解锁逻辑
• 失效保护
• 真实无人机响应
• 避障飞行
• 室内飞行参数调优
2. 系统架构
Livox Mid-360
↓
livox_ros_driver2
↓
/super/livox/lidar + /super/livox/imu
↓
FAST-LIO
↓
/Odometry + /cloud_registered
↓
ROG-Map (fsm_node 内部)
↓
/rog_map/occ
↓
SUPER Planner
↓
/fsm/path + /planning_cmd/poly_traj
ROG-Map 不作为独立节点启动。 它在 SUPER planner 的可执行文件
fsm_node 内部初始化和更新。
坐标系约定
world → 静态单位变换 → camera_init → FAST-LIO 动态变换 → body
• world: SUPER/ROG-Map 输出中硬编码使用的坐标系
• camera_init: FAST-LIO 全局初始化坐标系(非 USB 相机)
• body: FAST-LIO 运动体坐标系
• camera_init: FAST-LIO 全局初始化坐标系(非 USB 相机)
• body: FAST-LIO 运动体坐标系
使用静态单位变换连接两个坐标系树,无需修改
slam_ws。 3. 工作空间与文件分离
| 位置 | 角色 | 规则 |
|---|---|---|
~/slam_ws | Livox 驱动 + FAST-LIO 包 | 底层 — 不修改 |
~/super_ws | SUPER + ROG-Map + 配置 | 所有项目改动在此 |
~/super_ws/config | 运行时配置副本 | 主题和坐标系适配 |
~/super_ws/scripts | 可重复启动脚本 | 替代长命令 |
重要项目文件
| 文件 | 用途 |
|---|---|
MID360_super_config.json | SUPER 专用 LiDAR IP 配置 |
mid360_super.yaml | FAST-LIO 配置(/super/livox 主题) |
click_smooth_mid360.yaml | SUPER + ROG-Map 配置 |
start_super_mapping.sh | 启动 SUPER LiDAR 驱动 + FAST-LIO |
start_super_planner.sh | 启动 fsm_node
|
start_super_camera.sh | 可选 USB 相机(非必需) |
/super 命名空间和独立配置副本避免与已有 FAST-LIO 设置冲突。 4. 网络与 LiDAR 集成
| 项目 | 值 |
|---|---|
| Jetson 以太网接口 | enP8p1s0 |
| Jetson LiDAR 侧 IP | 192.168.10.50/24 |
| Livox Mid-360 IP | 192.168.10.5 |
| LiDAR 接口默认路由 | 禁用 / never-default |
| LiDAR 接口 IPv6 | 禁用 |
sudo nmcli connection modify enP8p1s0 \
ipv4.method manual \
ipv4.addresses 192.168.10.50/24 \
ipv4.gateway "" \
ipv4.never-default yes \
ipv6.method disabled
sudo nmcli connection up enP8p1s0
SUPER 专用 Livox launch 将驱动运行为
/super/mid360_driver,并将标准 Livox 主题重映射到 /super 命名空间。 5. FAST-LIO 建图与坐标系
FAST-LIO 从
slam_ws 启动,但使用 super_ws 下的参数文件。仅修改了 LiDAR 和 IMU 主题名称以适配 SUPER 命名空间。 关键 FAST-LIO 主题设置
lid_topic: "/super/livox/lidar"
imu_topic: "/super/livox/imu"
| FAST-LIO 输出 | 预期作用 |
|---|---|
/Odometry | 全局 LiDAR-惯性位姿估计 |
/cloud_registered | 变换到全局坐标系的点云 |
/path | 估计轨迹可视化 |
/tf | 动态 camera_init → body 变换
|
警告 启动警告
No point, skip this scan! 在数据立即出现且里程计活跃时可接受。 6. ROG-Map 与 SUPER Planner 集成
规划器通过
super_planner 可执行文件 fsm_node 启动,直接订阅 FAST-LIO 输出并在内部初始化 ROG-Map。| 输入 | 配置主题 |
|---|---|
| 注册点云 | /cloud_registered
|
| 里程计 | /Odometry
|
| 目标点 | /goal_pose
|
虚拟地面设置
virtual_ground_height: -1.0
改为 -1.0 米,因为静止时 FAST-LIO 原点接近 z=0,原先的值导致 "Odom below virtual ground" 警告。
坐标系注意事项
警告 SUPER 和 ROG-Map 中的多个 ROS2 发布者硬编码坐标系名称为 world。仅修改 YAML 中的 frame_id 不会改变
/rog_map/occ。集成方法使用静态 world → camera_init 变换。 7. ROS 主题与预期频率
| 主题 | 用途 | 验证频率 |
|---|---|---|
/super/livox/lidar | Mid-360 原始自定义点包 | ~5 Hz |
/super/livox/imu | Mid-360 IMU | ~200 Hz |
/Odometry | FAST-LIO 位姿 | ~10 Hz |
/cloud_registered | FAST-LIO 全局注册点云 | ~10 Hz |
/rog_map/occ | ROG-Map 占据栅格 | ~2 Hz |
/goal_pose | 规划目标点 | 按需 |
/fsm/path | 规划路径可视化 | 有效目标后 |
/planning_cmd/poly_traj | 多项式轨迹命令 | 真实轨迹 |
通过 8. 验证证据
在 world 坐标系中设置目标点 x=1.5m, y=0.0m, z=0.5m,规划器进入 GENERATE_TRAJ 和 FOLLOW_TRAJ 状态,并发布多项式轨迹消息。
type: 7
piece_num_pos: 5
order_pos: 7
time_pos:...
piece_num_pos: 5
order_pos: 7
time_pos:...
通过 确认生成包含 4、5 和 7 段位置轨迹
通过 输出不仅限于空心跳或停止消息
通过 输出不仅限于空心跳或停止消息
在静止测试中(无飞控),空的 type 1 消息是预期的。SUPER 在里程计几乎不变时反复重新规划。
阶段结论: Mid-360 → FAST-LIO → ROG-Map → SUPER → 七阶多项式轨迹 — 完整软件流水线已验证。
9. 重要经验与故障排查
| 观察现象 | 含义 / 操作 |
|---|---|
/rog_map/occ 初始显示未发布 | 等待数秒,后稳定在 ~2 Hz |
/rog_map/occ 的 frame_id 为 world | 预期行为,由于源码硬编码。以 world 作为 SUPER 坐标系。
|
| 修改 YAML frame_id 无效 | 发布静态单位变换到 camera_init
|
tf2_echo 首次报 world 不存在 | 正常启动竞争,下一样本出现变换 |
real_svc.rviz 报 class/plugin 错误 | ROS1 RViz 配置,启动新 rviz2 手动添加主题
|
camera_init 听起来像物理相机 | 只是 FAST-LIO 的全局坐标系名称,USB 相机可保持关闭 |
| MINCO / thrust / angular-rate 优化警告 | 静止测试中可能出现,有效的 type 7 轨迹证明规划成功 |
10. 飞行前待完成工作
1. 连接 Pixhawk,确认通信路径
2. 创建桥接:SUPER 输出 → 飞控兼容指令
3. 明确定义 ENU/NED 和 FLU/FRD 坐标系转换
4. 实现模式切换、解锁门控、命令超时、紧急停止
5. 在 SITL 或拆除螺旋桨后验证指令
6. 进行受约束的低空测试,调优动态限制
7. 稳定跟踪后:测试避障和自主任务
2. 创建桥接:SUPER 输出 → 飞控兼容指令
3. 明确定义 ENU/NED 和 FLU/FRD 坐标系转换
4. 实现模式切换、解锁门控、命令超时、紧急停止
5. 在 SITL 或拆除螺旋桨后验证指令
6. 进行受约束的低空测试,调优动态限制
7. 稳定跟踪后:测试避障和自主任务
警告 安全边界: 不要将成功的轨迹生成视为无人机已准备好自主飞行的证据。控制和安全层仍是独立的工程阶段。
平台:Jetson Orin · ROS2 Humble · Livox Mid-360 · FAST-LIO · ROG-Map · SUPER Planner
(c) 卓博泰科技 · SUPER 地图与规划集成笔记
(c) 卓博泰科技 · SUPER 地图与规划集成笔记