[具身智能-816]:SLAM 建图的绝对位置、参考原点、是否需要标定?
SLAM 建图的绝对位置、参考原点、是否需要标定
核心结论: Gmapping / Cartographer 这类激光 SLAM 生成的栅格地图,本身没有现实世界的 GPS 绝对坐标。地图只有一套相对坐标系,原点是机器人开机建图瞬间的位置,不会自动对齐大楼、大地真实坐标;如果业务需要真实绝对位置,就必须额外做标定。
1、SLAM 地图坐标原点怎么来的(相对坐标)
在建图程序启动那一刻,机器人当前所在的位置,自动被定义为地图坐标系的原点 map (0,0,0),朝向为 0°。
- 机器人往前跑,坐标 x 增大;向右跑 y 增大;旋转角度 θ 变化。
- 整张地图上所有墙、障碍物的坐标,全部是相对于开机起点的相对坐标。
- SLAM 算法只关心:物体之间互相的距离、相对位置关系;它不知道这个原点对应现实世界大楼的哪个角落,不知道经纬度。
举例子: 开机建图,小车放在机房门口,这一刻 → map (0,0)。 小车行驶到机柜旁边,地图上机柜坐标 map (2.5,1.2)。 这个(2.5,1.2)只代表:机柜距离开机起点 X 方向 2.5 米,Y 方向 1.2 米;不代表大地坐标系下的真实地理坐标。
通俗类比: 你拿本子画房间平面图,你站的位置定为本子的 (0,0),画出家具之间的相对位置;但本子上不会自动标记这个房间在城市的哪个经纬度。
2、什么时候不需要标定参考位置?
绝大多数室内机器人场景,只使用地图内部相对坐标,不需要绝对位置,不用标定。 适用场景:
- 室内巡逻、AGV 搬运、定点巡检;
- 导航只关心:机器人在地图里面相对于地图原点的 (x,y,θ),导航路径点也写在这套 map 坐标系下。
工作逻辑: 建图时,我在地图上手动标记巡检点 A (1.0,2.0)、巡检点 B (5.0,3.0);机器人后续只需要跑到这张图内部的这些相对坐标点即可。 不需要和 GPS、大楼 CAD 世界坐标对齐。
这是机器人室内项目最常见的模式,绝大多数 ROS 小车都是这么干的。
3、什么时候必须标定,获得绝对位置?
当需要把 SLAM 地图坐标,对齐到外部绝对坐标系,就必须人工标定。 典型需求:
- 需要输出 GPS 经纬度,把机器人位置上传到后台 GIS 地图;
- 需要和建筑 CAD 图纸坐标完全对齐;
- 多台机器人,共用同一套全局大地坐标系;
- 室外场景,SLAM 局部地图融合 GPS 全局坐标。
标定的本质
求解一组坐标变换:map坐标系 ↔ 大地/GPS/CAD绝对坐标系,得到旋转、平移参数。 常用两种标定手段:
- 人工选特征点标定(最常用室内) 在真实环境找 2 个以上明显标记点(柱子、墙角)。
- 测量该墙角在现实 CAD/GPS 里面的真实绝对坐标;
- 在 SLAM 地图读取同一个墙角的 map 相对坐标;
- 算法解算平移、旋转矩阵,完成两套坐标系的对齐。后续机器人输出位置,就可以换算成绝对坐标。
- GPS 辅助标定(室外) 机器人在建图时,同时记录 GPS 位置;把 SLAM 局部坐标系和 GPS 坐标系做融合,得到绝对位姿。
室内 GPS 失效,该方案不可用。
⚠️注意:标定只是增加一套坐标转换,不会修改 SLAM 栅格地图本身。地图内部障碍物相对关系不变,只是多一层换算公式。
4、一个非常容易踩的工程坑
每次重新启动 SLAM 建图,原点会变!
你把小车挪到同一个物理地点,重新启动 gmapping/cartographer 建图: 新地图的 map (0,0) 是这次开机的位置,和上一次建图的原点完全不一样。
- 两次建图得到两张地图,里面同一个机柜,在两张图的 map 坐标数值完全不同。
- 如果没有做坐标标定,两张地图的坐标不能直接混用。
解决办法:
- 建图完成后保存地图文件,后续只进入定位模式,不再重新建图,原点就固定不变;
- 如果必须重新建图,需要再次做特征点标定,对齐到统一绝对坐标系。
5、AMCL 定位阶段的坐标情况
导航定位阶段,加载已经建好的静态地图:
- 输出的位姿依然是这张老地图的相对 map 坐标系;
- 即使定位跑的再准,输出 (x,y) 依旧是相对于当初建图开机原点,不是大地绝对位置;
- 想要 GPS / 建筑绝对坐标,依然要额外做坐标变换标定。
简明对比表
表格
| 项目 | SLAM 原生地图(未标定) | 标定之后的地图 |
|---|---|---|
| 坐标类型 | 相对坐标系 | 可换算到绝对坐标系(GPS/CAD) |
| 原点来源 | 建图启动瞬间小车位置,自动生成 | 原点不变,新增一套坐标转换矩阵 |
| 是否需要标定 | 不需要 | 必须人工采集特征点标定 |
| 适用场景 | 室内巡逻、AGV,只在地图内部跑点位 | 对接 GIS、多机协同、对接建筑 CAD、输出经纬度 |
| 缺点 | 不同次建图原点不一致;没有现实地理含义 | 标定存在人工测量误差 |
简短总结
- SLAM 自己生成的地图,只有相对坐标,原点是建图开机时刻机器人位置,不会自动获得现实世界绝对位置。
- 普通室内巡逻巡检,只用地图内部相对点位,不需要标定,这是主流做法。
- 如果需要 GPS、CAD 图纸这种外部绝对坐标,必须额外标定求解坐标变换矩阵,地图本身栅格数据不改动。
- 每次重新建图,原点会改变;尽量建好图就保存,后续只跑定位,避免原点变动带来麻烦。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)