听这篇文章
|
当我们想到机器人技术的发展时,我们通常会想象一个逻辑和编码的过程。虽然我们不认为它是简单或直接的,但我们确实认为它是相对客观的——最终目标是明显的,达到它的里程碑是可衡量的。
但我们忘记了,在开发新技术时,我们需要同样新颖的方法来测试和排除这些技术的故障。这不仅仅是关于新的机器人——它还涉及到为了制造那个机器人而需要发明的全新的工具和流程。就像任何未知的领域一样,这些工具和过程仍然在进行中,随着产品和构建它的人一起发展。
数据可视化是这些工具中尤为关键的一个。它以一种易于理解的格式表示复杂而微妙的数据,使我们能够就机器人的表现以及如何改进做出同样复杂而微妙的决定。它抑制不重要的噪音,放大重要的信号。它为机器人数据不可思议的多维本质带来了一些急需的感觉和秩序。尽管我们希望机器人成为一门精确的科学,但它在很大程度上仍然是一种主观的实践,无数的人类判断让我们离我们的最终目标更近了一步——让机器人技术改善和丰富我们的日常生活。
传统软件开发vs.机器人开发
要真正理解数据可视化在机器人中的重要性,我们首先需要理解机器人开发与传统软件开发的区别。
诊断传统软件开发中问题的根本原因是一个相对二元的过程——在给定的步骤中,代码要么做了,要么没有做它应该做的事情。在每一种可能的情况下都有一个明确的预期。通过遍历错误的代码路径并每一步运行测试——比如记录值、检查预期与实际输出、切换某些功能的开关——工程师可以相当精确地推断出问题源于哪一行代码。
另一方面,机器人开发中的调试问题很少是线性的。找出机器人系统的问题通常是一个复杂得多的过程,因此是开放式的。例如,当一个自主移动机器人(AMR)与另一个物体相撞时,没有一个明显的“代码路径”或罪魁祸首可以责怪。这件事的发生有无数的原因,同样,人类撞到障碍物也有无数的原因。也许AMR没有看到障碍物是因为它在拐角处被挡住了;也许它为了避免碰撞而计算错了自己的轨迹。原因甚至不限于软件——AMR的刹车可能出了故障;它的摄像头可能被仓库的残骸暂时遮挡住了。
没有一个可遵循的系统协议,问题的根源可能是由一系列相互关联的小问题引起的,这些小问题渗透到机器人堆栈的多个级别。解决方案通常是有条件的和情境的,因此调试过程必须权衡上下文信息和屏幕上的文字代码。
机器人技术的数据可视化
为了解决这种调试复杂性,我们需要新一代复杂的工具来探索机器人数据的多个维度。这就是机器人数据可视化的用武之地。
在自动驾驶汽车公司的早期巡航在美国,我们亲身体验了开发没有足够工具的机器人是多么痛苦。当调试我们的自动驾驶数据或模拟结果时,我们的工程师必须在Ubuntu机器上安装完整的开发环境,然后下载少量的各种开源工具,比如rviz,rqt和更多。然后,我们的工程师必须手动启动一个日志文件回放,并重新排列屏幕上的几个窗口,以便一次性使用它们。工程师们可以煞费苦心地在他们的屏幕上为一个特定的工作流创建一个窗口布局,但是将其替换为一个不同的工作流,或者将其复制到队友的计算机上,这将消耗开发人员宝贵的时间。
虽然这些工具完成了各自的工作,但很明显,将它们组合使用,或与更大的机器人团队一起使用,并没有计划在它们的DNA中。它们单独使用起来很笨重,很难相互集成,也不可能以有意义的方式与我们的队友一起使用。简而言之,我们迭代机器人的能力受到了严重的瓶颈——不是因为我们团队的才华,而是因为我们无法从数据中快速提取可操作的见解。
这导致了一个黑客马拉松项目,在这个项目中,一群工程师看到了改进工作流的机会。他们展示了一个基于网络的数据可视化工具——这个工具非常受欢迎,得到了大家的起立鼓掌,最终开发成了一个内部工具,有自己的专门团队。这个工具是Webviz-它最终是开源的,以帮助其他机器人专家获得更有效的集成工具的好处。随着时间的推移,我和我的联合创始人意识到Webviz在克鲁斯的影响力,并决定开始毛地黄继续为整个行业解决常见的机器人工具问题。我们发布了毛地黄工作室帮助用户可视化和调试他们的机器人数据,以及毛地黄数据平台帮助他们在中央存储库中存储和管理数据。
有了数据可视化,我们可以快速地理解我们的数据——从不同的角度,使用不同的表示,针对不同的工作流——从而为开发的下一步提供信息。这就是我们如何能够探索非二元的情况,并做出必要的人类判断,将机器人带入未来。
丰富的交互式数据可视化对于帮助机器人专家从事机器人发展所需的更开放的探索至关重要。它使机器人专家能够利用他们的直觉和经验开始调试给定的问题。它帮助他们综合判断工作中需要的同等重要的主观和客观的判断。这可以帮助他们一目了然地了解他们的机器人目前的表现以及如何改进它们,这样他们就可以更有效地迭代它们。
不同的数据可视化工具可以帮助您在解决不同的问题时做出不同的判断。调试或分析工作流的每个步骤都可以从不同工具的组合中受益。例如,在Foxglove Studio中,用户可以从大量的可视化集合中进行选择面板构建自定义调试布局。
每个面板都有特定的功能——一个可以绘制值,另一个可以在地图上标记坐标,还有一个可以在交互式场景中显示3D模型。无论您是在排除机器人的计划堆栈故障,还是监控其诊断,都有一个可视化工具来完成该任务。
有了丰富的交互式数据可视化,我们的手段终于可以赶上我们的野心。现在,我们可以更深入地探索、分析和理解我们的数据——以前我们无法理解的数据——以加速实现我们的目标。
机器人技术和数据可视化的未来
机器人技术的发展虽然看似客观,但并不缺少主观决策和创造性解决方案。虽然最终结果可能是具体的,如“机器人现在可以在仓库地板上机动”,但我们实现这一目标的方法是一个无休止的迭代过程,需要大量的人工干预。为了成功地将机器人大规模地介绍给公众,我们需要承认机器人是一种更开放的努力——它会产生更多相互关联的问题,有更多的情境解决方案,因此需要比传统软件开发更多样化的工具。
机器人技术的发展仍然有大量的问题需要我们解决——笨重的测试基础设施,不可预测的硬件开发时间表,以及可扩展的数据管理。这样的例子不胜枚举。但几乎没有什么改进能像伟大的数据可视化工具那样,对机器人的所有垂直领域产生如此强大的影响。
关于作者
Adrian Macneil是Foxglove公司的联合创始人兼首席执行官,该公司是一家为机器人提供强大数据管理和可视化软件的初创公司。在创立Foxglove之前,麦克尼尔在自动驾驶公司Cruise领导基础设施和开发工具。
他热衷于提高开发人员的工作效率,并认为优化开发人员的反馈循环对于解锁机器人技术的快速创新至关重要。
告诉我们你的想法!