最近有位客户问了一个我们经常被问到的问题,所以在这里为大家详细解答。他们的移动信标从一个子地图进入下一个子地图时,轨迹会跳动,而且子地图很难对齐。下面我们按照官方 构建子地图 指南(英文) ——什么是子地图、服务区、切换区、信标应放在哪里、如何对齐两个子地图——把它整理成具体的步骤。本文所有内容均针对 2D 配置;3D随后按同样的方式进行。 (提示:点击任意图片可查看原尺寸大图。)

“我设置了两个子地图。移动信标从Submap 0进入Submap 1时,轨迹变得杂乱并出现跳动。两个子地图很难对齐。”
轨迹跳动并不是因为系统坏了,而是因为地图是一次性建好的,并且在每个子地图能单独跟踪之前就设置了切换。按正确的顺序构建,问题就很简单。
1)布置固定信标(2D)。2)构建 Submap 0,将其冻结,确保跟踪干净稳定。3)构建 Submap 1,将其冻结,确保它单独跟踪也干净稳定。4)绘制 服务区 (每个子地图一个)。5)设置 切换区 (位于服务区重叠处)。6) 对齐 两个子地图。
1. 为什么需要子地图
一组信标无法覆盖所有区域,原因有三:
- 信标的覆盖范围。 移动信标必须能在约 30 m的范围内听到固定信标。超出这个范围,就需要另一个子地图。
- 非视距——墙壁。 超声波无法穿透墙壁。独立的房间需要自己的信标,也就是自己的子地图。
- 非视距——移动的障碍物。 货架、机器或车辆本身会遮挡信标;增加子地图可以保证视野内始终有足够的信标。

2. 地图与子地图
A 地图 由 子地图, 固定信标 和 服务区组成,由一个调制解调器提供服务。每个 子地图 包含1–4个固定信标。符号与图1相同。

3. 服务区
A 服务区 是子地图允许进行跟踪的区域。请 为每个子地图各绘制一个,并且只在该子地图已经跟踪良好之后再绘制:
- 先选择子地图 ——点击它的标签页(例如“Submap 0”)。在调制解调器/整张地图视图中无法绘制服务区。
- SHIFT + 鼠标左键单击 放置每个点(形成绿色多边形)。SHIFT + 左键单击某个点可将其删除;右键单击 → "Clear all points" 即可删除整个服务区。
- 缩小 每个服务区:从完整的30 m缩小到真正需要跟踪的区域。

为什么重要: 信标如果 不在 任何服务区内,就不会被跟踪。没有服务区(或服务区为完整的30 m)时,子地图之间重叠过多,系统对信标的位置会有“太多意见”,轨迹就会跳动。较小的服务区还能提高更新率。
4. 切换区
两个服务区 重叠 的地方就是 切换区 ——一条狭窄的带状区域(蓝色标记),轨迹在其中从一个子地图移交给下一个子地图。

- Marvelmind建议让子地图 部分重叠 (操作手册第9.11节(中文))——这样切换会更平滑。
- 切换区必须能容纳 至少4次位置更新,否则切换会不准确(§9.14(中文)).
- 切换有多种类型——参见 切换类型。类型I/II在服务区边缘切换;类型III会融合两个子地图,往往效果更好,但并非总是如此——而且如果各子地图本身跟踪不好,任何类型都无法解决问题。
5. 如何布置信标

布置决定了跟踪的成败。规则按重要性排列如下:
- 视距、视距,还是视距。 在每个位置,移动信标都必须能在30 m范围内听到至少 2个固定信标(2D).
- 合理的间距。 信标之间保持适中的距离——大约 5–10 m (子地图约5×5至10×10 m)。不要拉到30 m的极限(信号弱、速度慢),也不要挤在约1 m之内(浪费)。 子地图越小,更新率也越高。
- 用尽量少的信标覆盖尽量大的面积,并且 尽量减少被遮挡的可能.
- 安装在墙壁/天花板高处,分散布置(切勿排成一条直线);最低仰角20–30°;典型高度约3–5 m(过高会降低精度)。参见 如何选择信标高度.

6. 对齐两个子地图
只有在两个子地图都能各自正常跟踪之后,才将它们连接起来。分两种情况:
情况A——子地图共用一个信标(较简单): Submap 0 = 信标 2 + 3,Submap 1 = 信标 3 + 4 ——信标3同时属于 两个子地图。子地图通过共用信标连在一起,服务区在它周围重叠。
情况B——没有共用信标(典型情况,如上面的问题): Submap 0 = 信标 2 + 3,Submap 1 = 信标 4 + 5 ——没有共同的信标。需要借助“橙点”手动对齐:
- 将移动信标放在重叠区域,在那里 两个子地图 都能跟踪到它。此时Dashboard会把同一个移动信标显示 两次 ——一次是Submap 0解算出的位置,一次是Submap 1解算出的位置(即 M1 / M2 标记,也就是“橙点”)。
- 选中一个子地图并拖动: 按住 CTRL + 拖动/滚轮 移动并旋转子地图,直到同一移动信标的两个标记 完全重合 ——视图会从“Not aligned”变为“Aligned”(图8)。
- 再把移动信标移到另外一两个位置,重复上述操作,使对齐更准确。

拖动之前,先检查方向 ——如果某个子地图被翻转,标记永远无法对上。有两个按钮控制方向(操作手册第7.10节(中文)):
- Mirroring(镜像) ——将地图 左 ↔ 右翻转.
- Ceiling(天花板) ——设置 上 ↔ 下:箭头 向上 = 移动信标在 下方 (相对于固定信标);箭头 向下 = 上方 (相对于固定信标)。每个子地图都要设置正确。

还要检查 “橙色”警告 (这是橙色的另一种含义): 橙色信标 表示它的设置与其他信标不同——请修正;清除所有 橙色诊断 消息(次要问题);并让跟踪保持 蓝色,而不是橙色(橙色 = 置信度较低)。
如果轨迹仍然跳动——检查清单
- 是否 每个子地图都能单独干净稳定地跟踪(先在2D中)?
- 在每个位置,移动信标是否都能听到 ≥2 个30 m范围内的信标?信标间距是否合理(约5–10 m,不要相距30 m,也不要只有约1 m),是否分散布置、没有排成一条直线?
- 是否已 输入固定信标高度 (无论是否使用子地图,都必须输入)?
- 方向 是否正确——没有被镜像(左/右),Ceiling设置正确(上/下)?
- 是否已 借助“橙点”(M1·M2)拖动子地图 ,直到同一移动信标的两个标记完全重合?
- 服务区 是否为每个子地图分别绘制,并且只在一条狭窄的带状区域(切换区)内重叠?
- 是否有 橙色 的信标/消息/跟踪?请逐一解决。
资料来源: 构建子地图(PDF)(英文) · 循序渐进 · 切换类型 · 如何选择信标高度 · 安装布置手册(中文) · 操作手册(中文).