分步构建子地图(再讲一次)

先让每个子地图单独跟踪,再将它们连接起来——轨迹就不再跳动

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

Marvelmind 2D信标几何布局:固定信标为一条线上的青色圆圈,移动信标为黑色菱形,标记为OK
图1: Dashboard中的符号(摘自官方指南): 固定信标 是实心 圆圈、 移动信标 (“hedgehog”/“hedge”)是黑色 菱形。绿色 “OK” 表示几何布局良好——请让移动信标 偏离 两个信标之间的连线。
“我设置了两个子地图。移动信标从Submap 0进入Submap 1时,轨迹变得杂乱并出现跳动。两个子地图很难对齐。”

轨迹跳动并不是因为系统坏了,而是因为地图是一次性建好的,并且在每个子地图能单独跟踪之前就设置了切换。按正确的顺序构建,问题就很简单。

实际操作顺序——不要跳步。
1)布置固定信标(2D)。2)构建 Submap 0,将其冻结,确保跟踪干净稳定。3)构建 Submap 1,将其冻结,确保它单独跟踪也干净稳定。4)绘制 服务区 (每个子地图一个)。5)设置 切换区 (位于服务区重叠处)。6) 对齐 两个子地图。

1. 为什么需要子地图

一组信标无法覆盖所有区域,原因有三:

  • 信标的覆盖范围。 移动信标必须能在约 30 m的范围内听到固定信标。超出这个范围,就需要另一个子地图。
  • 非视距——墙壁。 超声波无法穿透墙壁。独立的房间需要自己的信标,也就是自己的子地图。
  • 非视距——移动的障碍物。 货架、机器或车辆本身会遮挡信标;增加子地图可以保证视野内始终有足够的信标。
设有高货架和长通道的仓库——面积大、障碍物多,需要多个子地图
图2: 真实现场:面积大,有墙壁和高货架。一组信标无法覆盖——需要多个子地图(每张地图可达250个),每个子地图最多4个固定信标。

2. 地图与子地图

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

Dashboard中的两个Marvelmind子地图,服务区相互重叠,并有蓝色切换区
图3: Dashboard中的地图:两个子地图,各有自己的 服务区 (橄榄色),重叠部分形成 切换区 (蓝色)。信标10 · 11 · 12——其中信标11为两者共用。
从2D开始——只用2D。 2D配置简单,便于验证:2D子地图视野内只需要 2 个固定信标(3D需要3个)。构建Submap 0,将其冻结,带着移动信标在其覆盖范围内走一遍,确认跟踪干净稳定—— 蓝色,没有橙色 ——然后再做其他事情。接着用同样的方式单独完成Submap 1。在两个子地图都能各自正常跟踪之前,先不要碰切换的问题。3D稍后作为下一个单独的改动加入——参见 循序渐进.

3. 服务区

A 服务区 是子地图允许进行跟踪的区域。请 为每个子地图各绘制一个,并且只在该子地图已经跟踪良好之后再绘制:

  • 先选择子地图 ——点击它的标签页(例如“Submap 0”)。在调制解调器/整张地图视图中无法绘制服务区。
  • SHIFT + 鼠标左键单击 放置每个点(形成绿色多边形)。SHIFT + 左键单击某个点可将其删除;右键单击 → "Clear all points" 即可删除整个服务区。
  • 缩小 每个服务区:从完整的30 m缩小到真正需要跟踪的区域。
用SHIFT + 鼠标左键绘制绿色多边形形式的Marvelmind服务区
图4: 服务区是一个 绿色多边形 ,在子地图上通过以下操作绘制: SHIFT + 鼠标左键单击 (操作手册第9.10.2节(中文)).

为什么重要: 信标如果 不在 任何服务区内,就不会被跟踪。没有服务区(或服务区为完整的30 m)时,子地图之间重叠过多,系统对信标的位置会有“太多意见”,轨迹就会跳动。较小的服务区还能提高更新率。

4. 切换区

两个服务区 重叠 的地方就是 切换区 ——一条狭窄的带状区域(蓝色标记),轨迹在其中从一个子地图移交给下一个子地图。

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

5. 如何布置信标

侧视图:Marvelmind信标安装在墙壁高处,与移动信标之间视线通畅,门是障碍物
图6: 侧视图:固定信标安装在 墙壁/天花板的高处 ,与移动信标之间视线通畅;门或货架是需要避开的障碍物。

布置决定了跟踪的成败。规则按重要性排列如下:

  • 视距、视距,还是视距。 在每个位置,移动信标都必须能在30 m范围内听到至少 2个固定信标(2D).
  • 合理的间距。 信标之间保持适中的距离——大约 5–10 m (子地图约5×5至10×10 m)。不要拉到30 m的极限(信号弱、速度慢),也不要挤在约1 m之内(浪费)。 子地图越小,更新率也越高。
  • 用尽量少的信标覆盖尽量大的面积,并且 尽量减少被遮挡的可能.
  • 安装在墙壁/天花板高处,分散布置(切勿排成一条直线);最低仰角20–30°;典型高度约3–5 m(过高会降低精度)。参见 如何选择信标高度.
务必输入信标高度。 无论是否使用子地图, 都必须输入每个固定信标的高度 (在Dashboard中)——系统需要高度才能正确跟踪。各子地图之间的高度 不必 相同;只需确保每个高度都输入正确。
Marvelmind固定与移动Super-Beacon
图7: 固定和移动Super-Beacon——任意频率。

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)。
  • 再把移动信标移到另外一两个位置,重复上述操作,使对齐更准确。
用M1/M2橙点对齐Marvelmind子地图:未对齐与已对齐
图8: 借助“橙点”/ M1·M2对齐:两个子地图看到的是同一个移动信标。拖动其中一个子地图(CTRL + 拖动/滚轮),直到两个标记重合——“Not aligned” → “Aligned”。

拖动之前,先检查方向 ——如果某个子地图被翻转,标记永远无法对上。有两个按钮控制方向(操作手册第7.10节(中文)):

  • Mirroring(镜像) ——将地图 左 ↔ 右翻转.
  • Ceiling(天花板) ——设置 上 ↔ 下:箭头 向上 = 移动信标在 下方 (相对于固定信标);箭头 向下 = 上方 (相对于固定信标)。每个子地图都要设置正确。
Marvelmind Dashboard的Ceiling和Mirroring按钮:左右镜像与上下方向设置
图9: 这份 Ceiling & Mirroring 按钮(操作手册第7.10节(中文)):Mirroring用于左右翻转;Ceiling用于设置上下方向(箭头向上 = 移动信标在固定信标下方,向下 = 在上方)。

还要检查 “橙色”警告 (这是橙色的另一种含义): 橙色信标 表示它的设置与其他信标不同——请修正;清除所有 橙色诊断 消息(次要问题);并让跟踪保持 蓝色,而不是橙色(橙色 = 置信度较低)。

如果轨迹仍然跳动——检查清单

  • 是否 每个子地图都能单独干净稳定地跟踪(先在2D中)?
  • 在每个位置,移动信标是否都能听到 ≥2 个30 m范围内的信标?信标间距是否合理(约5–10 m,不要相距30 m,也不要只有约1 m),是否分散布置、没有排成一条直线?
  • 是否已 输入固定信标高度 (无论是否使用子地图,都必须输入)?
  • 方向 是否正确——没有被镜像(左/右),Ceiling设置正确(上/下)?
  • 是否已 借助“橙点”(M1·M2)拖动子地图 ,直到同一移动信标的两个标记完全重合?
  • 服务区 是否为每个子地图分别绘制,并且只在一条狭窄的带状区域(切换区)内重叠?
  • 是否有 橙色 的信标/消息/跟踪?请逐一解决。
2D正常后——再做3D。 每个子地图都能在2D中正常跟踪、切换也正常之后,再用同样的方式扩展到3D:一次只做一个改动,每一步都要验证(循序渐进)。按这种方式构建,系统可以扩展到整个仓库或整栋建筑。

资料来源: 构建子地图(PDF)(英文) · 循序渐进 · 切换类型 · 如何选择信标高度 · 安装布置手册(中文) · 操作手册(中文).

返回顶部