分步方法

及其对成功使用 Marvelmind 室内定位系统的重要性

分步操作是成功的关键

在我们的文章和视频中,我们已经以各种方式多次强调,在使用面向自主机器人或无人机的 Marvelmind 室内定位系统时,分步操作非常重要;我们还写过无数封邮件,恳请客户遵循这一方法,从而成功使用我们的系统。这一方法是通用的,几乎适用于任何其他复杂系统:

然而, 我们的许多客户过于心急 ,试图一步跳到最终配置,采用 “插上电就祈祷”的方法 🙂

。遗憾的是,这对复杂的多层系统行不通。 分步操作是通往成功的快速而可靠的途径.

为什么“插上电就祈祷”的方法不适合复杂系统?

如果在赌场里押黑或押红,这种押注方法还不错,因为您有50%的成功机会。但那是单步游戏,或者说单层系统。 

更复杂的系统通常是多步骤或多层的。不加验证的盲目猜测,成功的机会会非常低:

  • 假设您的系统由许多层组成,例如10–20层或10–20个步骤
  • 由于对系统了解有限或其他基本错误,每一层的成功率在10–80%之间
  • 每一步都很容易完成,也很容易验证;如果某一步出现问题,也很容易修复
  • 如果您决定在不逐步验证的情况下搭建整个系统,您的 预期成功率 最终会在 0.8^10 到 0.1^20 之间,即介于 10.7% 到 1e-20 之间,具体取决于您的经验和系统的步骤数。

这是您想要的成功率吗?……

由于您不想放弃,您会在没有逐步验证的情况下完成所有步骤后,再去查找系统故障的原因。您会尝试调试最终结果,花时间调试并试图弄清故障原因。但问题到底出在哪里,会有 数十亿种组合 的可能。

这份 “插上电就祈祷”的方法 ——即搭建整个多层系统、开机,并在没有对每个底层逐一预先验证的情况下期待它正常工作—— 无法以可接受的成功概率带来结果,还会耗费您的时间,甚至可能让您在一个相对简单的多层系统上遭遇失败。

分步操作 = 有把握

整篇文章的内容都很浅显,甚至老生常谈。然而,我们已经无数次看到受过良好教育的用户试图直接跳到最终配置,并寄希望于系统能正常工作。因此,我们不得不再次强调分步操作的重要性,并努力说服用户认真对待这一基本方法,从而大幅提高使用我们或任何其他多层系统的成功率。

这种方法并没有什么神奇之处。但有几个要点必须清楚认识:

  • 系统中的每个基本步骤都很简单 ,尽管整个系统看起来可能非常复杂。通常,每一步甚至可以讲给老奶奶或小学生听,他们也能听懂
  • 每一步都能快速、轻松地验证, 逐层测试是关键。您随时可以回到保存的配置重新测试,并得到相同的结果。之后,您可以更仔细地进行下一步,看清究竟在哪里出了错。同样非常重要的是要明白:每一步的测试和调试都非常简单、非常快,因为您每次只做很小的改动;即使出错,也往往是些简单的错误,比如:“哦!我没打开信标”、“哦!我没输入信标高度,所以地图或读数失真了”、“哦!新信标在墙后面,这个位置没有视线”——就这么简单。很容易发现并立即修复,而且非常快。为什么快?设想一个极度简化的场景:您有6个步骤,每一步有10种出错方式;您并不是随机做决定,但这10种可能确实存在。要让系统工作,您只需进行6次测试,并且只在上一步成功后才进入下一步;如果您先把一切都搭好再开始测试,就会面对 10^6=1,000,000 种测试组合,而分步操作只需最初的6次测试
  • 调试变得轻而易举。您不需要在数十亿种组合中搜索。您非常清楚问题在哪里……“这一步结果正常,下一步不正常。我恰恰在这一步做错了什么……我到底改了什么?……让我检查一下设置,核实一下结果,再复查一下基础”,诸如此类。不再是几天毫无结果的搜索和猜测,而是几分钟甚至几秒钟。这不是很基本吗?这不是显而易见应该做的吗?是的……但为什么那么多受过良好教育的用户不这样做呢?……人的思维总是令人着迷 🙂
  • 您对每一步都有把握 ,因为每个底层都经过了验证。您的基础不会因未经证实的假设而动摇。您思路专注、充满信心。这会让开发和调试速度提高许多倍
  • 每次只增加一步复杂度。这正是分步操作的精髓。如果您相对于上一层/上一步同时改了两处或更多地方,而某些功能不正常,原因可能是改动 A,也可能是改动 B 或改动 C。组合和可能性会呈爆炸式增长。逐一验证需要时间……大量的时间……何必冒险?!先做改动 A 并验证,再做改动 B 并验证,然后做改动 C 并验证。这样您只有三步,也只需三次验证。如果同时做多处改动,可能会有成千上万种组合,很难有把握地排除其中许多组合,而要全部验证几乎不可能……

通过实例更好地理解分步操作的重要性

分步操作的逻辑非常直接、非常简单。下面的示例可以跳过,因为它们只是把上文已经写过的内容,结合 Marvelmind 室内定位系统再强调一遍。

自主无人机的 Precise Z 配置

一位客户的典型请求: “我正在为室内无人机飞行搭建 Marvelmind 系统。我按照下面的方案以及手册中的‘9.15.1. How to build vertical submap for stable Z’进行操作……

但我发现我的 Dashboard 中只有 RX1 到 RX4,没有 RX5。我的信标是带 IMU 的 Super-Beacon-3。我按照手册操作,但如果只打开 RX4,地面上的4个信标就没有任何读数。

我的型号有5个 RX 传感器还是只有4个?

如果只有4个,每个编号分别对应哪个方向?”

这个问题的答案非常简单,而且还与传感器或换能器无关。关键在于:不建议一开始就直接跳到最终配置。当然,您最终会达到最终配置,但要通过一个个经过验证的小步骤。否则,由于对我们这样的多层系统还不熟悉,您很可能会在某处犯下基本错误,却不知道究竟错在哪里。除了一步一步来、并在每一步验证一切仍然正常之外,没有其他明确的办法能找到错误。

例如:

第1步:构建基本的2D 地图,仅包含 NIA 中的一个子地图:

  • 三脚架上放一个移动信标
  • 暂不使用无人机。 
  • 暂不飞行。 
  • 当然,也暂不进行自主飞行

即使您需要的是3D跟踪、Precise Z 和 IA 也没关系。您会实现它们,但要通过一个个经过验证的小步骤。 

用单个移动信标搭建2D NIA,确认跟踪正常。保存配置,以便下一层/下一步因任何原因无法工作时,随时可以回到这一配置。 

现在,您有了第一个可靠工作的配置,已经避开了50%以上的 常见错误(YouTube)。如果每次只在层与层之间做一个小改动,您就能集中精力,轻松快速地找到错误。

一旦在单个子地图中用单个信标实现了基本2D跟踪,下一步您就有一个 选项树 可供选择。但关键是 每次只做一处改动,这项任务的难度要大得多,例如:

下一步怎么选,取决于您的技能、项目等。关键点非常简单: 每次只改动配置中的一处,不能更多。这样调试才能简单、快速。 

第2步: 例如,您选择 构建3D跟踪 :使用四个固定信标,取代已经正常工作的仅用两个固定信标的2D跟踪。我再重复一遍:NIA 仍然是 NIA,仍然只有一个移动信标、一个子地图,一切仍然在三脚架上,等等。一切照旧,除了从2D转为3D之外,没有任何改变。即使只做了这一项基本改动,仍然有很多地方可能出错:

  • 新信标的软件未更新
  • 新信标未恢复默认设置
  • 新信标没有视线
  • 新信标的地址未知
  • 新信标未开机
  • 未设置新信标的高度
  • 等等

可能会犯很多 低级错误 ,但至少您很清楚,如果跟踪不完美该去哪里找原因。您已经有了经过验证的2D跟踪,也就是已经正常工作的2D配置。在最坏的情况下,您可以拆掉无法工作的3D配置,回到正常工作的2D配置,然后更加细心地从头开始。 

在每一步/每一层验证跟踪(对其他系统而言则是验证是否成功)是绝对必要的。

3D成功后,您再次面临一个 选择树:

  • 转到 IA
  • 跟踪两个移动信标
  • 在无人机上安装信标,尝试以手动模式飞行,看看一切是否仍然正常:无人机的遥控或数传不会干扰 Marvelmind 的无线电,无人机的部件不会挡住超声波视线,螺旋桨不会干扰跟踪,等等

第3步:例如,您决定 尝试 IA ,因为您对它还没有把握。您读到过 IA 比 NIA(中文)更复杂。其实对您来说,IA 用起来和 NIA(中文) 一样简单,但 IA 内部比 NIA(中文)复杂得多,也需要您更加用心。例如:

  • 在 NIA 中,可以选择任意频率的 Super-Beacon 作为移动信标和固定信标,都能正常工作
  • 但在 IA 中就没有这种自由。在 IA 中,同一子地图中的所有固定信标必须使用不同的超声波频率
  • 各频率之间的间隔应尽可能大,这样滤波更容易、更可靠。例如,25+31+37+45 kHz 的信标组合优于 19+22+25+28 kHz,请注意信标之间的频率差
  • 如果计划在 IA 中飞行无人机,还应确认 19 kHz 或 22 kHz 的 Super-Beacon 可能并非好的选择,因为这些频率接近可听频段,螺旋桨可能产生过多的声学噪声。可能有,也可能没有;使用 Dashboard 内置的 示波器(YouTube) 即可轻松快速地验证。针对您的具体设置测试一下,几秒钟就能看到结果

要点应该很清楚: 每一步都很简单,但每一步都是一次新的出错机会。您可以为每一步的成功赋予一个加权概率。这个概率取决于用户的细致程度、经验和任务的复杂度,但始终小于1。因此,当步骤很多时, 成功的机会 (在 Marvelmind 室内定位系统这样的多层系统中) 如果不逐步验证,将趋近于零.

可靠、简单又快速的解决办法,就是在每个小步骤上进行验证。

第4步:IA 成功后,您可以尝试 在无人机上测试跟踪 ,采用手动控制飞行模式。请记住,到目前为止,一切都还在三脚架上。请参阅 展示机器人的类似示例。只用一个移动信标测试,比如成对信标配置中的左侧移动信标。

第5步:左侧移动信标成功后,将其关闭,安装右侧信标,重复上一步;如果想格外精确、有把握,甚至可以重复前面几步,但这次 无人机上只装右侧移动信标。

第6步:现在, 启用两个移动信标 ,让它们同时工作,但暂时不要配对。

第7步: 将信标配对。注意设置中的左右,检查移动信标之间的连接线,确保连接快速;弄清楚谁是主信标、谁是从信标。在 Dashboard 中正确设置移动信标之间的距离,并记住距离究竟是在哪两点之间测量的。

可以看到,每一步都有 基本陷阱 可能让您掉进去。您的任务是用尽可能少的时间解开这道 简单的谜题 ,确认这一层/这一步,然后进入下一步。简单吗?简单。但每一层都必须确认,因为这是一道谜题,即使是我们当中再细心、再有经验的人也会出错。不要迷失方向。在进入新一步之前,先验证每一步。

第8步:现在可以 集成 您的外部系统了,例如 ArduPilot/PX4/PixHawk.

外部系统同样是分层的,因此在那里也要使用同样的方法。逐步验证每一项,从基本的波特率设置,到关闭磁力计或气压计,再到几十项其他设置。不要“插上电就祈祷”。您可能在我们的系统上成功了,却在外部系统上失败。我们不希望这样。我们希望您的项目从头到尾都取得成功。

第9步:自主飞行成功了?恭喜!您已经超过了50%的用户。

请记住,您想要的是 Precise Z 配置。您已经有了基本的3D跟踪,甚至实现了基本的自主飞行。例如,固定信标位于离地5米的高处,您在信标下方顺利飞行。一切都符合 安装布置手册(中文)的要求。完美!

然而,您想要的是 Precise Z 配置,例如用于自主降落,或者在室外用 GPS 引导飞行、然后降落到机库中:

目前您已经能很好地自主飞行,但移动信标位于飞行高度上方;现在需要把它们放到地面上并朝上,而移动信标则必须改为朝下。照此操作。

您甚至可以退回一步,不进行自主飞行,而是先逐个确认移动信标的基本跟踪,或直接在成对信标配置中确认。这由您决定。分步配置的逻辑依然成立,跳过步骤(哪怕是很小的步骤)的风险依然存在。

照例每次只改动一处,不要改动其他任何东西。

在固定信标所在平面(即地面)附近,Z 坐标可能会出现问题。这是正常的,请看下面的视频。Z 的问题正是之后要借助 Precise Z 配置来解决的,但现在还没到那一步。

确认在离固定信标平面较远、几何布局良好的情况下飞行时,自主飞行仍然良好。更多相关内容:

第10步:现在您已经可以在地面固定信标的上方很好地飞行,是时候 构建第二个子地图 了,即垂直子地图,这是 Precise Z 配置的第二部分。您大概已经猜到,建议遵循同样的逻辑:

  • 禁用所有其他固定信标(水平子地图的信标),即不属于垂直子地图的信标
  • 仅在垂直子地图中,先实现完美跟踪,再实现自主飞行

第11步:只有到了这个阶段,才 启用两个子地图,在 Dashboard 中正确设置,验证两个子地图中的基本跟踪,然后再尝试飞行:

验证成功后,您的 Precise Z 配置就完成了。恭喜!

回答邮件中关于换能器和麦克风的其他问题:

  • 以前我们使用的是模拟式 Beacon HW v4.9,其换能器既能发射也能接收
  • Super-Beacon 有5个发射换能器(TX1–TX5)和1个接收麦克风(RX1)
  • 建议将信标的 TX4 和 RX1 麦克风对准服务区域的中心。理想情况下,可以使用类似以下的支架: https://marvelmind.com/product/magnetic-holder/
  • 请记住,每个发射换能器的方向图约为90度。详见 操作手册(中文)

可以看到,关于换能器的问题可能与搭建 Precise Z 配置有关,但需要考虑的远不止这些。

总结

  • 这份 循序渐进的方法 是一种非常直接、快速的方法,可帮助您有把握地成功使用复杂系统,包括 Marvelmind 室内定位系统
  • 这份 “插上电就祈祷”的方法 理论上可能更快,但在实际的多层系统中完全行不通,因为当系统层数很多或需要很多步骤时,这种方法的成功概率低得可以忽略不计
返回顶部