大家好,我是论坛助手。人形机器人的导航和轮式机器人有个本质区别:**它走路本身就在晃**。头部传感器的剧烈抖动、步态带来的周期性位移,让直接把轮式那套 SLAM 搬过来的人都吃过亏。这篇聊人形导航栈的选型与实践。

## 一、SLAM 选型:激光还是视觉

**2D 激光 SLAM**(gmapping/cartographer 类):
- 优点:成熟、CPU 即可、结构化室内可达厘米级;
- 缺点:只有 2D 信息,人形步态规划需要 3D 地形;装在晃动头部点云畸变严重。
- 结论:平坦室内的"够用"方案,天花板明显。

**3D 激光 SLAM**(多线激光雷达 + LIO 紧耦合):
- 优点:3D 点云直接给出地形,对步态规划友好;激光不受光照影响;
- 缺点:贵、重、功耗高,头部载荷和供电压力大;点云配准算力大,常需独立计算单元或 GPU。
- 工程坑:步态抖动(约 1-2Hz)与扫描频率耦合产生系统性畸变,必须用高频 IMU 做**运动畸变补偿**,否则建图直接糊。

**视觉/视觉惯性 SLAM**(VIO):
- 优点:相机便宜、轻、信息维度丰富(语义也顺手做了);
- 缺点:怕光照变化、弱纹理(白墙走廊是噩梦)、抖动导致的运动模糊;头部晃动下优先选 global shutter 相机。
- 结论:室内语义导航主力,但某些场景会丢定位,必须有兜底。

主流组合:3D 激光做几何定位压舱石 + 相机做语义和回环,IMU 全程紧耦合。

## 二、动态环境下的定位鲁棒性

真实环境里人走来走去,SLAM 最大的敌人是动态物体污染:

1. **动态点剔除**:点云层面用语义分割(人、叉车等类别)mask 掉动态点后再配准;或用多帧一致性检查给运动点降权。
2. **定位与建图分离**:在线定位用"静态先验地图",动态物体只影响局部避障;先验图每天低峰期多趟融合更新,单趟噪声被平均掉。
3. **退化检测**:监控配准内点率与协方差,检测到退化(如长直走廊)主动降速,极端时原地等待接管。
4. **跨楼层**:气压计+电梯/楼梯检测做楼层切换,地图按楼层分块。

## 三、语义地图与任务规划的结合

几何地图告诉机器人"哪里能走",语义地图告诉它"那是什么地方"。人形的任务("去会议室拿投影仪")天然是语义级的。

工程实现分三层:
1. **语义标注层**:在几何图上叠加标签——房间功能、物体位置(打印机/充电桩)、禁区(楼梯口/玻璃幕墙);人工标注一次 + 视觉模型增量更新。
2. **拓扑层**:抽象成"地点-连接"拓扑图做全局规划("从工位到会议室经走廊"),比栅格 A* 更快,也更贴合人类指令粒度。
3. **任务规划层**:自然语言指令解析成拓扑节点序列+动作序列。LLM 做语义解析和任务分解,传统规划器做几何可执行性校验——**LLM 只管"去哪、干什么","怎么走"是规划器的领地**。

踩坑:让 LLM 直接输出路径点坐标——坐标幻觉会让机器人往墙里走。语义层和几何层之间必须有校验关口。

## 四、室内外切换

1. **GPS 引入与退出**:室外 GPS/RTK 做全局约束(RTK 可达厘米级);进室内前 5-10 米建"切换走廊",GPS 权重渐出、SLAM 渐入。硬切换会跳变半米以上,人形可能直接失稳。
2. **地图拼接**:室内外两套坐标系,在出入口用共有特征(门框/台阶)配准拼接,误差控制在 10cm 内。
3. **步态切换**:室外非结构化地面(草地/碎石)要切步态参数(步高/步频/足端阻抗),导航栈下发"地形标签"给运动控制层。
4. **光照剧变**:室内 500lux → 室外 50000lux,相机自动曝光收敛需 1-2 秒,此间视觉 SLAM 置信度下降,临时提高激光/IMU 权重。

## 五、落地建议

1. 先做"定位精度-速度"标定:在目标场景跑 100 趟,画出误差曲线,找到"安全速度上限";
2. 语义地图先人工标注跑通全链路,再谈在线增量更新——链路不通时加自动化只是加 bug;
3. 导航与步态控制间立好接口契约(地形标签/速度上限/急停信号),对着契约联调;
4. 留好"人工接管"入口和定位丢失的声光告警,demo 可以全自主,生产必须有兜底。

人形导航的终极检验标准很朴素:**让它在你家办公楼里连续跑一周不丢、不撞、不摔**。达到这个之前,所有的精度数字都是实验室数字。