子地图与切换区:扩展室内地图 | Marvelmind
构建与管理子地图:视频内容
掌握用Marvelmind完整的子地图策略构建可扩展室内定位地图的基础知识。了解什么是子地图、服务区和切换区,学习合理的 信标 布置方法和“最多4个信标”规则,并掌握利用重叠子地图应对遮挡的实用技巧。本指南帮助您成功实施多子地图方案,适用于室内自主 机器人、无人机和叉车跟踪系统至关重要。
文字稿
掌握用Marvelmind完整的子地图策略构建可扩展室内定位地图的基础知识。了解什么是子地图、服务区和切换区,学习合理的 信标 布置方法和“最多4个信标”规则,并掌握利用重叠子地图应对遮挡的实用技巧。本指南帮助您成功实施多子地图方案,适用于室内自主 机器人、无人机和叉车跟踪系统至关重要。
0:00 各位同事好。今天我来讲讲子地图、服务区和切换区。越来越多的客户在构建由多个子地图组成的较大地图,所以我们想讲讲基础知识。详细信息可以在我们的 操作手册(中文)、我们的 安装布置手册(中文)中找到,我们甚至还拍了不少介绍如何构建子地图的视频。不过,我们还是从基础讲起。什么是子地图?什么是切换区?什么是服务区?它们到底是什么?今天我准备了一份备忘单,基本上就是我们经常回答的问答,我想逐一讲解。那么,总体上地图是什么?地图由子地图组成。子地图是一个小单元,如果您愿意,它可以只包含一个 信标 ,也可以包含一到两个 信标,也可以是两个、三个甚至更多,一个子地图中最多可以有四个固定 信标 。这个子地图就是一个单元,就像蜂窝网络中的小区一样。
1:00 如果想构建大地图,就要构建更多的子地图。比如,这个子地图覆盖这片区域,另一个子地图覆盖那片区域,再加两个信标,又一个子地图覆盖另一片区域。默认情况下,每个子地图都有一定的服务范围,我们称之为服务区。默认的服务区是距离各个信标30米以内的范围。比如说,如果您有这样一个……
1:58 ……3D子地图,默认服务区就是距离这个信标30米以内、距离那个信标30米以内,依此类推。也就是说,服务区由这些信标各自30米半径的范围叠加而成,所以子地图的形状大概是这样、这样和这样。这是默认情况,可能看起来不太好,但默认就是这样。这并不一定是您需要的理想形状,因为您可能还有其他信标,比如在这片区域,而您不希望这个信标去服务那片区域,因为那里已经有信标了。所以您应该为每个子地图指定……
2:57 ……服务区。比如,您在这里、这里、这里和这里放了信标,然后说:好,这个子地图的服务区就是这一块。也就是说,要为每个子地图定义服务区。它基本上就是您指定由该子地图负责服务的区域,也就是它的责任范围。相当于导航系统在说:在这片区域里,我主要信任,或者说只信任你们这些信标。再比如,这是另一个子地图,由同样的这些信标再加两个信标组成。这些信标既属于这个子地图,也属于那个子地图,然后您说:好,对你们来说,这就是服务区,在这片区域里我只信任你们。
3:56 在这片区域,我既信任你,也信任你。这就是切换区。切换区是前一个子地图和当前子地图的服务区同时提供服务的区域,它是实现平滑切换所必需的。也就是说,移动信标从这里移动到这个区域时,只由这个服务区、也就是这个子地图提供服务;而在这一段,它可以同时由这个和那个子地图提供服务。系统会自行决定:是合并数据,还是仍然主要信任这个,或者更信任那个。切换有几种类型,但无论哪种,都是平滑切换,因为在这个区域,也就是切换区内,移动信标同时被两个子地图跟踪:这个子地图和那个子地图。
4:54 即使您不指定,切换区也一定存在。系统无论如何都会替您确定,因为服务区总是存在的。只是有时候明确指定会好得多。因为如果不明确指定,系统就会把服务区设得很大,这个也很大,那个也很大,子地图之间就会大面积重叠,系统就不知道该用哪一个了。它会尽力选择合适的子地图,但不一定能选出理想的那个。比如,这个信标离这片区域很远,但这片区域仍在30米以内。本来这片区域由这个信标服务会好得多,因为它近得多、效果也好得多,但系统可能会尝试用那个远的信标来服务。为什么不呢?只因为您没有指定服务区,也没有指定切换区。所以请务必指定。
5:54 关于信标数量:如前所述,对于1D子地图,比如隧道,每个子地图可以只有一个固定信标。对于2D子地图,每个子地图最多可以有两个固定信标。对于3D子地图,可以有一个、两个、三个或四个。每个子地图的固定信标不能超过四个。如果固定信标更多,那就再建一个子地图。这样设计是有意为之,因为对于3D来说四个已经足够:实际上已经是三个加一个冗余。下面谈谈冗余。比如,您经常会遇到遮挡问题,那么如何应对遮挡?应对遮挡简单而有效的方法就是冗余。那该怎么做呢?
6:54 基本上就是:好,这是我的2D地图,服务区是这一块。我把信标装在墙上,朝向这个方向,实际上就是这样摆放。这就是这个2D子地图的服务区。但这里有一根柱子,或者另一根柱子之类的东西。这就意味着它会在这片区域形成阴影。这是问题吗?是的,因为在这片区域跟踪可能会中断。怎么解决?很简单。再建一个子地图,同样是2D子地图,并为它指定完全相同的服务区,但方向朝这边。请注意,这里有一个箭头,表示它从哪个方向……
7:51 ……提供服务。服务区也在这里,这就意味着您有两个完全重叠的子地图:这个子地图从这个方向提供服务,那个子地图从那个方向提供服务。这种情况下会怎样?系统会自动选择使用哪个子地图,因为有很多算法可以选出正确的信号。当您处于这个区域时,系统会根据您的坐标来选择,同时也会参考之前的历史数据和信号的一些质量数据,然后使用来自可用方向的数据。这样就没有问题了。也就是说,当您在这里时,由这个子地图为您服务;当您在这里,处于柱子的阴影中时,就由那个子地图为您服务。这就是总体思路:使用完全重叠的子地图……
8:48 ……来应对遮挡。在“三加一”冗余配置中,这已经是自动实现的,因为3D三边定位只需要三个信标。而您有四个信标,可以组成几个三角形,系统会自动选择其中合适的一个。它不一定每次都能选对,这方面仍需要加入一些智能判断,但系统会尽量选好。再给一个简短提示:您看,我们把信标布置成有一定的空间分布,而不是排成一条线。比如,不能像这样把信标排成一排来构建3D子地图,因为这样没有空间分布,实际上只是一条线。是的,您有四个信标,但这样布置固定信标无法构建3D子地图,必须让它们分布在一个平面上。很多人问:信标可以装在不同的高度吗?可以。
9:48 固定信标可以装在不同高度,但一定要输入该信标的高度。所以它们不一定要装在同一个天花板上,可以在不同高度,但必须始终输入高度,特别是当它们不在同一平面、某个信标高度不同时。如果在同一平面上,有时可以省略,但这样会存在固定的Z轴误差。还有什么?目前我们支持最多250个信标和最多250个子地图。也就是说,您可以有一张由250个小子地图组成的地图,每个子地图可达30米,也就是30米乘以250。由此可见,可以覆盖很长的隧道或者非常大的仓库。这已经足够了。
10:45 ……空间分布。子地图中有两个信标时,会自动成为2D,不需要专门切换到2D模式之类的,自动就是2D。如果有三个或更多信标,也就是三个或四个,就会自动成为3D。不过Dashboard中有一个专门的勾选项,可以把三个或四个信标切换到2D模式,但这属于稍微高级一些的用法。所以通常更好的做法是:2D用两个信标,或者用两个完全重叠的子地图、各两个信标来实现2D。很多人问:安装更多的信标,精度会更高吗?不会,因为只要覆盖良好,两个信标提供的精度与三个或四个信标相同。实际上,在很多情况下,三个或四个信标甚至可能
11:44 效果更差,因为会出现“少数派报告”,也就是少数不一致的意见。所以,信标数量够用就好。真正有用的是冗余,也就是抗遮挡能力。如前所述,两个信标当然比四个信标更容易受遮挡影响。但解决办法不是用四个信标,而是在两个不同且相互重叠的子地图中各用两个信标。所以,如果存在遮挡,请使用“二加二”的信标配置,而不是四个信标。我们有这些常规情况:2D子地图、用于隧道的1D子地图,以及有空间分布时使用的3D子地图,例如有多旋翼无人机在飞行。此外还有一些特殊情况,就是
12:42 垂直子地图。比如,有时我有一个隧道,抱歉,是一个仓库,仓库里的通道非常窄。很多时候搭建起来既不方便,成本也有点高。这是货架,这也是货架,比如高12米,而这里只有3米宽。通常您在Y方向上的位置并不重要,重要的是在X方向和Z方向上的位置。所以,与其用非常窄的角度构建3D子地图(关于这一点我们有专门的视频,请查看我们的YouTube频道),有时构建2D子地图更方便。但这不是X-Y子地图,
13:42 而是X-Z子地图,也就是所谓的垂直子地图。我们对此有专门的说明。所以,这是可行的,有时很方便,不只在这种情况下。再比如,有一面墙,前面有东西在飞。甚至可以实现3D,只不过这时是一种垂直的3D。可以这样理解:不是水平的X-Y,而是从侧面看的垂直方向。把这个金字塔转90度,仍然可以跟踪XYZ。有时出于各种原因,这样更方便。这实际上取决于您的 架构(中文)。关于服务区,正如我提到的,服务区很重要。服务区
14:39 始终存在,不管您指定与否,它都在那里。只是很多时候,不明确定义服务区,就无法构建大地图。因为如果您不定义,系统会替您定义,但不一定是理想的。一个非常典型的例子:我有一大片区域,希望实现2D覆盖。怎么搭建?举个例子:我有一个办公室,比如宽15米、长200米。您把信标按最多大约20米的间距安装。这样,最大距离仍小于30米,这就是这个子地图的服务区。
15:38 然后再往后20米,是另一个服务区,再往后又是一个服务区,依此类推。如前所述,最多可以有250个子地图、250个服务区。关于切换区:应该多大?经验法则是1米左右。如果您什么都不确定,也没有时间去细调,1米左右就可以了,不算太大,也不算太小。但这个数值从何而来?它取决于两点:一是更新率,即位置更新率;二是移动目标的速度。比如,您的移动目标从这个方向移动过来,
16:36 假设移动目标的更新率是8赫兹。也就是说,如果切换区宽1米,在这1米内,您可以得到8次位置更新,这很好,因为在这片区域内,它会由这个服务区(即这个子地图)和那个子地图服务8次,切换会非常平滑。如果目标移动得更快,比如每秒2米,那么只能得到4次位置更新。这仍然可以,但已经少于8次了。再比如,如果更新率不是8赫兹而只有4赫兹,那就只有2次位置更新,这已经到了临界值,因为至少需要一两次位置更新,建议的下限是两次,指的是在服务
17:36 ……在切换区内。否则切换就可能不平滑,变成硬切换,而不是软切换。为什么?比如,出了点状况,您漏掉了一次,就只剩一次,而一次可能不足以让实时播放器(real-time player)把轨迹处理平滑。所以不要冒险。也就是说,如果位置更新率较低,或者目标移动较快,可以设置更大的服务区,抱歉,是更宽的切换区。但这不一定就更好,因为如前所述,这种情况下这个信标可能会尝试服务、并且被正式允许服务这一大片区域,而这片区域本来由另一种方式服务要好得多。所以,切换区要设得足够宽,但不要超出需要,否则跟踪效果可能又会下降,虽然
18:33 下降幅度不大。下面再简单讲讲其他更复杂的内容。我想提一下,因为很多人都在问:在同样的背景下,TDMA是什么?它有什么用?既然您已经在构建更复杂的子地图,抱歉,是更复杂的地图,就可能遇到两个问题。首先需要重点注意的当然是遮挡。因为如果存在遮挡,您就看不到您的“卫星”,也就是固定信标,在阴影区域就可能无法正常跟踪:这片区域跟踪不到,那片区域也跟踪不到。
19:32 我已经讲过完全重叠的子地图,但有时可以让它们不在同一个时隙工作。例如,在 反向架构(中文)中,由于它们同时发射、同时服务;而在 NIA(中文) 中,可以尝试让它们在不同的时隙工作。也就是说,在这次位置更新中,从这个方向服务;在下一次位置更新中,从那个方向服务。这样鲁棒性更强,因为系统不必把明显错误的数据与可能正确的数据强行合并。错误的数据不能用于服务。比如这里,我们知道它是错的,但系统并不知道,仍会尝试把它与来自另一个方向、可能正确的数据合并。系统会尝试合并,并且在大多数情况下都能成功,但不
20:31 一定总能成功。对于其他情况,您可以尝试使用TDMA模式。这意味着在时隙1,由这个子地图提供服务;在时隙2,由那个子地图提供服务。这样您得到的是这个、这个、这个、这个,然后是来自那个子地图的这个。它会被跳过,因为它不在这里,而是在这里、那里,出现一些跳点。所以这个会丢失,这个会丢失,这个也会丢失,但这一组始终正常。然后再使用实时播放器(real-time player),它会让轨迹变得平滑,因为当TDMA把服务时间分配给那个子地图时,它会直接剔除这些奇怪的跳点。
21:28 完全重叠子地图的TDMA用于存在遮挡的情况。它用于应对遮挡,但这只是TDMA的用途之一。TDMA的另一个用途是 反向架构(中文)。它不用于 非反向架构(中文),而是用于反向架构。如您所知,反向架构目前只有五个频率:19千赫、25千赫、31千赫、37千赫和45千赫。但在构建大型子地图时,频率组合很快就会用完,特别是在有横向和纵向通道、过道等的复杂仓库中。选项很快就会用尽,无法再构建更大的地图,所以必须把一部分
22:26 子地图放到一个时隙,另一部分放到另一个时隙。可以说,它们“生活”在两个不同的时间里:这个子地图在这个时间工作,那些子地图在那个时间工作。它们共存,但不同时工作,这让您可以随意构建任意大小的地图,实际上地图规模不受限制。但这会增加一些复杂性,当然也有代价。因为采用TDMA,就意味着某些时间不提供服务。如果常规更新率是8赫兹,采用两个时隙的TDMA,那么位置更新率只有4赫兹,因为一个时隙服务这个子地图,另一个时隙服务那个子地图。所以会损失一部分位置更新率,但换来了另一个维度的扩展能力。
23:26 这样,您就可以构建非常非常大的子地图,抱歉,是非常大的地图,因为可以构建大量子地图,而不再受频率数量的限制。最后说说如何构建:这一点我们已经讲过好几次了,但既然在谈相当复杂的地图,基本逻辑非常简单:一次只构建简单的部分,在每个子地图中实现完美的跟踪。我来逐条说明。您想构建一张由100个子地图组成的大地图?先构建一个子地图,定义服务区,在其中实现完美的跟踪,然后让它休眠,是真正地休眠。接着唤醒下一个子地图,指定服务区,在这片区域实现完美的跟踪。
24:24 不要去想其他子地图,不用管,只构建这一个。一旦有了两个各自独立、完美工作的子地图,并且服务区也定义好了,就可以处理切换区了。实际上您已经建好了这个切换区,然后唤醒这个信标、这个信标和这个信标。您可能还有另外100个信标,没关系,当前只启用三个信标,也就是只唤醒它们。使用这些信标,您在这里就能得到平滑的跟踪,因为它们已经在这些子地图中构建好了。可能会出现一些跳点,比如因为子地图没有完全对齐。这时就要做一些修正,因为您可以构建形状复杂的服务区和切换区等。调整它们、移动它们,如果距离测量不准确,有时甚至要稍微调整距离。直到这一侧实现完美平滑的切换,然后是离开方向,再然后是另一个方向。
25:24 反复调整,直到切换完美平滑。就是这样,两个子地图就完成了。然后再一次:让它们休眠,启用下一个,在其中实现完美的跟踪,再让这两个之间实现平滑切换,之后就不用再管它们了。就这样一个接一个地做:先构建单个子地图,再处理成对的子地图,然后一个一个地扩展、一个一个地添加。绝不要跳过子地图,绝不要在每个子地图都实现完美跟踪之前,就启用所有信标去尝试构建一张巨大的地图。只要遵循这一点,构建大地图就会非常容易,因为实际上您构建的是一个个小子地图,然后只需调整它们,并确保切换平滑。这样就非常非常容易。如果您试图
26:22 一次性构建所有内容,就会很吃力,因为太复杂了,搞不清问题从何而来、出在哪里。千万不要这样做。最后再总结一下:子地图是信标的组合;服务区是每个子地图的属性,规定该子地图在哪里提供服务;切换区是两个相邻服务区之间的重叠部分。非常感谢。
视频目录
要点总结
适用对象:系统架构师与大规模部署团队
正在实施室内定位系统的机器人工程师和仓储自动化专家,需要了解子地图架构、服务区管理和切换机制。本指南解决了一个关键问题:如何将定位覆盖扩展到大型设施,同时保持跟踪精度,并让 机器人 在各地图区域之间无缝切换。
常见问题
子地图架构与多区域覆盖
本技术指南介绍利用子地图、服务区和切换区将室内定位系统扩展到大型设施的基本架构。子地图是各自独立定位的区域,组合起来即可全面覆盖整个设施;服务区定义机器人保持准确跟踪的工作边界;切换区是关键的重叠区域,机器人在这里无缝地从一个子地图过渡到另一个子地图,位置数据保持完整。视频详细介绍了“最多4个信标”的高效子地图设计原则,并讨论了信标部署中的实际限制。其中一个重要内容是如何应对物理遮挡:完全重叠的子地图可以消除盲区,确保对自主机器人和叉车的连续跟踪。指南还解释了为什么3D(XYZ)定位要求信标不能呈直线布置,帮助避免常见的实施错误。这些架构概念可直接应用于仓储自动化、室内无人机导航和自主机器人车队管理,使RTLS(实时定位系统)在多区域设施中可靠运行。
主题
📍 您的项目需要精确的室内定位吗?