波士顿动力如何独立制造BigDog


上周,我们了解了传说中的BigDog步态协调算法是如何工作的。 该机器人还没有自治,只能在操作员的控制下穿越地形。

上一次,大多数读者都认可一种新翻译的想法-关于BigDog如何学习如何独立地走到正确的位置并在太空中导航。 好吧,实际上,他在这里。

BigDog导航系统结合了平面激光扫描,立体视觉和本体感受。 借助它的帮助,可以确定机器人在周围世界中的位置。 她发现了障碍并将其置于世界的二维模型中。 然后,她规划路径并控制机器人遵循所选的路径。 路径规划器是经典A *搜索算法的变体。 平滑算法处理结果,并将结果传递给路径跟踪算法。 他计算BigDog的转向命令。

所描述的系统是在有许多树木,巨石和灌木丛的森林地区进行测试的。 除了平坦的领土外,它还具有坡度(最大11度的角度)。 总共进行了26次测试,其中88%成功。 当以给定速度移动时,机器人“看到”了130米半径内的地形,并超过了1.1公里。

配套设备


1)本体感受传感器

用于控制BigDog步态和自主导航。 机器人的16个主动自由度和4个被动自由度中的每一个都配备有传感器。 它们提供有关当前位置和负载的数据。 此信息与IMU数据结合在一起,可以评估与地面的接触状态,身体的高度以及身体的速度。 另外,许多传感器指示推进,计算,液压,热和其他BigDog系统的状态。


BigDog传感器:a)GPS天线; b)激光雷达; c)大黄蜂立体摄像机; d)霍尼韦尔IMU; e)联合传感器。

2)感受性传感器

该机器人配备了四个外部传感器:SICK LMS 291激光雷达,Bumblebee PointGrey立体摄像机,NovAtel GPS接收器和霍尼韦尔IMU。 来自它们的数据进入下图所示的系统。


3)电脑

为了使用上图实现该系统,使用了两台计算机。 BigDog主计算机是带有单核Intel Pentium M处理器(1.8 GHz)的PC104。 它与本体感受传感器相互作用,控制机器人的平衡和运动,计算环境的当前模型和通过机器人的路径,还控制步态。

视觉由带有Intel CoreDuo处理器(1.7 GHz)的单独计算机提供。 它与一对摄像机通信,检测不一致性,评估视觉里程表并支持3D地形图。 该计算机通过车载局域网以15 Hz的频率将地图和视觉里程计数据传输到主机。

这种系统的优点是能够将计划任务分为两部分,从而简化计划任务。 来自激光雷达和传感器的数据是三维数据,但是我们可以依靠步态控制系统的自我稳定来放弃更复杂的3D感知和计划。

技术方法


在我们的一般技术方法中,我们使用来自两个环境传感器的数据来检测障碍物,计算穿过障碍物或绕过障碍物的路径,并命令机器人的步态控制系统遵循给定的路径。

整个过程可以分为三个阶段。 首先,处理来自激光雷达和摄像机的图像以获得指示环境中障碍物的点列表。 然后将这些点划分为不相交的对象并跟踪一段时间。 此外,这些对象在临时存储器中组合以进行映射。 该图表用于计划到达中间目的地的方向。 调度程序旨在控制BigDog轨迹与障碍物之间的适当距离,并且在调度程序的迭代过程中,这些轨迹在空间中稳定。 沿着给定轨迹的运动算法迫使机器人遵循预期的路径,将速度命令发送到步态控制系统。 她交替移动机器人的四肢。

A.信息收集


1)情况评估

里程信息有两种来源:腿部运动传感器和人工视觉系统。 从它们获得的数据被合并以评估机器人的位置。



里程表系统使用腿部的运动学信息来计算机器人的运动。 视觉里程计系统监视视觉特征以计算运动。 这两种工具都使用惯性测量模块(IMU)作为空间定向的信息源。 通用仪表结合了这两个里程表的输出,重点关注低速时的视觉里程表和高速时的运动学。 这两个指示器的组合消除了每个计数器的缺点:立体声系统可能出现的故障,就位运行时里程表中读数的漂移以及该传感器沿垂直轴的误差。

BigDog机器人中使用的激光雷达每13毫秒产生一次新图像。 每个图像都将转换为外部坐标系,其中心位于机器人的位置。 在这种情况下,将使用来自位置计数器的时间同步信息。 然后,将生成的3D点云通过下面描述的分割算法进行处理。 同样,立体视觉系统会收集一段时间的不合格地图,以便在以机器人为中心的4 x 4米见方的区域中创建3D地形图。 空间滤波器确定高度变化较大的区域(即潜在的障碍物),并将属于这些区域的点的列表传输到点云分割算法。

2)点云分割和对象跟踪

由于地球的不规则性和机器人的运动,激光雷达扫描仪数据的一部分将包含地球的图像。 来自长障碍物(例如墙壁)的反射在外观上与来自地球表面的反射相似。 为了成功运行,系统必须以能够控制机器人靠近墙壁且不会“怕”地球的方式来解释这些反射。 此过程的第一步是将激光雷达和地形图提供的障碍点分割为单独的对象。 通过合并相距小于0.5米的单个点,将稀有的3D点云分割为对象。

由于分割算法而获得的对象被跟踪了一段时间。 为了完成此任务,我们使用具有启发式约束的贪婪迭代算法。 如果物体之间的距离不超过0.7米,则当前图像中的物体与最后一个图像中最接近的物体重合。

由于点云被分割成多个对象并经过一段时间的跟踪,因此该机器人可以在地球不平整且存在各种障碍物(树木,鹅卵石,倒下的原木,墙壁)的环境中充分移动。 树木和墙壁主要由激光雷达扫描仪确定,鹅卵石和原木由立体视觉系统确定。


一系列插图显示了一个机器人(黄色矩形),其中:a)在几秒钟内记录的来自激光雷达的数据(蓝点); b)各自的设施。 高大的棕色物体是树木。 地面反射显示为透明且平坦。 目标是绿色圆柱体; 计算路径的蓝线通向它。 c)制图的俯视图:致命值最低的区域用绿色表示,而最高值的区域用紫色表示。 每个网格单位对应5米。

导航计划


我们解决导航问题的方法已被机器人界普遍接受。 障碍点(由于感知过程而获得)被绘制在地图上,中心位于机器人的位置。 机器人的最终目标被投影到制图的边界上,并且对其应用了算法A ∗的变体。 大约每秒重复一次此过程。

1)追踪障碍物的记忆

由于机器人的两个传感器的视野有限,因此必须保留机器人无法看到的障碍物的准确记忆。 由于对象列表是由对象跟踪系统提供的,因此可以在计划系统的对象存储器中添加,更新或删除各个对象。 对象列表的大小是有限的,因此当向其添加新对象时,必须删除其他对象。

表示变量O的当前对象列表,我们可以计算O的两个参数化子类:



这里的年龄(q)是当前时间与上一次测量对象q的时间之间的差,
范数(q,r)inf-机器人当前位置和对象q的边界之间的最小距离。

通过以下条件从O中删除对象:

  • 从O中减去集合{P(30)∩Q(15)}。这些对象早于30秒,并且位于距离机器人不超过15米的位置。
  • 从O中减去集合{P(1800)∩Q(10)}。这些对象早于半小时,并且位于距机器人不超过10米的位置。
  • 达到列表限制后,对象将从O中删除。 对象的优先级由跟踪器成功跟踪对象的时间确定。 换句话说,机器人“看”得更长的对象在内存中的存储时间更长。
  • 但是,在前10秒内没有跟踪到任何对象被丢弃。

这种内存资源分配导致以下行为:当对象离开机器人传感器的视场时,它会删除已删除的对象和几次未看到的对象。 不会忘记视觉或难以接近但位于机器人附近的物体。

2)创建地图

我们使用基于2D网格创建的制图来表示机器人周围的环境。 代替动态创建地图(因为机器人接收到新的环境信息),每次规划迭代时都会编译一个新的地图,并用调度程序的内存填充对象。 因此,不能使用动态路由计划器代替A *算法。 由于我们假设对象的大小是有限的(环境中没有死角,是地图的一半以上),因此计划任务的范围和计算路径的时间很小。

根据以下算法,将制图用对象列表中的值填充:



对象所在的单元格分配了很高的致死值。 根据功能f设置对象附近细胞的指示器,该功能考虑了到该点的当前距离。 对于此处显示的测试结果,f只是距离的倒数立方。

这种方法的效果是,随着它远离它们(以及它们指定的对象),它会从具有很高价值的单元逐渐减少。

3)路径的稳定性

为确保我们不会以随机且非系统的方式“控制” BigDog,请特别注意计划路径的稳定性。 通过路径规划器的迭代,它应尽可能稳定。 这通过三种方式提供。

首先,传递给A *算法的起点不是机器人的当前位置,而是其位置在A *算法之前给定的路径终点处的投影(我们称此点p)。 只要BigDog遵循计划的路径,它的侧向可能会略有偏离。 通过将起点投影到A *算法的先前计算的点上,我们可以过滤掉机器人位置的波动,并且调度程序显示的路径变得更加稳定。 如果机器人偏离路径的距离大于设定值(默认值为3米),则点p会简单地转移到机器人的当前位置。

其次,为了验证路径规划器的连续性,我们计算q-机器人位置从过去2.5秒到由A *算法计算的最后一点的投影。 然后,将从q到p的最后一条计划路径的路段添加到新路径的计算中。 结果,机器人跟踪了已经行进的小距离路径。 由于这一点,在严重违反位置的情况下,跟踪路径的算法表现得更好,这通常是机器人走路时遇到的。

第三,计划路径的一些历史记录存储在机器人的内存中。 这些路径用于减少机器人已经去过的制图中那些像元的值,同时增加周围区域中像元的值。 因此,通常,在相同方向上的新计划路径将重复机器人已经行进的路径(但对此没有严格的保证)。

4)路径平滑

由于计算的路径基于常规网格,因此有点锯齿。 方向的重大变化会导致不必要的控制命令。 为了避免这种情况,应用了De Boer平滑算法。

另外,基于网格的路径规划通常会导致技术上最优,但通往目标的路径不太理想。 我们通过为调度程序的每次迭代计算平滑路径来解决此问题。 对于后续迭代,将为经过平滑路径运行的制图单元格分配较低的值。 这为实现目标提供了更直接,更平滑的途径。

C.步态控制:机动性和平衡


导航计划系统大约每秒一次确定一条新路径。 用于遵循以200 Hz频率运行的路径的算法会根据最后计划的路径来引导机器人。 该算法以所需身体速度的形式创建一组命令,包括前进速度,横向速度和身体偏航率。 这些速度被传输到步态控制器,后者控制腿部的运动。

根据机器人与路径之间的距离,使用以下三种策略之一。 如果机器人位于路径的一部分附近,它将开始对角移动,直到它从侧面进入,并以全速移动。 如果机器人远离路径,它将精确地向前指向所需的点。 在中间位置,可以使用这些策略的组合。

步态控制算法的详细描述超出了本文的范围。 但是,通常,体速充当低级BigDog步态控制器的控制输入。 步态控制器为每个关节产生强度和位置指令,以确保稳定性,对异常做出响应并提供必要的身体速度。 尽管可以将路径调查器算法的计算用于任何BigDog步态,但由于速度和穿越崎terrain地形的能力,小跑是最佳的选择。

现场测试结果


上述传感器和导航系统已安装在BigDog上,并在实验室外进行了测试。 测试是在一个树木,巨石,灌木丛,坡度高达11度的山丘上进行的。 图1显示了景观示例。 图2显示了机器人处理过的来自激光雷达的数据。


1.进行测试的地形


2.测试,顶视图。 从激光雷达和立体相机接收到的图像。 黑暗区域是树木和其他障碍物。 网格大小为5米。

导航系统和计划器的开发历时7个月,每五周进行一次定期测试。 此处描述了最新测试的结果。

在进行的26项测试中,有23项成功结束:机器人达到了目标,没有遇到任何障碍,并且距离目标还很近。 这些测试的结果在数据透视表中标记为目标。 机器人踩到一块小石头后,在一次测试的最后跌落。 通常,步态控制系统可以应对这种情况,但这次不应对(结果在表中标记为Fall-“ Fall”)。 在三个测试中,机器人遇到了很大的障碍(超过20米宽)。 机器人计算出哪一侧最好绕过障碍物,并且在给定的时间段(20秒)内没有前进。 这种规模的障碍超出了自治系统的开发范围。 这些测试的结果在表中表示为实时锁定。



在这26次测试中,该机器人被放置在林地中间的类似场景中。 随着环境变得越来越复杂,实时锁定结果的数量增加,并且机器人选择了效率较低的路径。

更有趣-在robo-hunter.com


我们的YouTube频道

Source: https://habr.com/ru/post/zh-CN411711/


All Articles