AW-plan
1.简介
autoware开源的规划方法,称为“OpenPlanner”formobilerobot导航,由全局路径规划器,行为状态生成器和本地规划器组成。 OpenPlanner需要一个地图和一个目标位置来计算全局路径并在避开障碍物的同时执行它。它还可以触发行为,例如在交通灯处停止。在考虑地图中注释的交通成本之后,全球规划人员生成用作参考的平滑全局路径。本地规划者生成平滑的,障碍物 - 自由轨迹,轨迹跟踪器使用该轨迹来实现低水平控制。行为状态生成器处理诸如路径跟踪,对象跟踪,避障,紧急停止,停止标志停止和交通灯行为处理等情况。 OpenPlanner使用非完整的基于Ackerman转向的移动机器人在模拟和现场实验中进行评估。模拟和现场实验的结果表明,OpenPlanner可以动态生成全球和本地路径,在高度动态的环境中平稳导航并实时可靠地运行。
在第2节中,我们调查了相关的最新工作。在第3节中,我们提供了OpenPlanner系统及其体系结构的概述。在第4节中,我们详细解释了系统全局路径规划方法,包括矢量图的使用和结构。第5节讨论了本地规划器,第6节介绍了行为状态生成和状态机的设计。在第7节中,对实验设置进行了描述,并对实验结果进行了定量和定性评估。我们在第8节中提出了我们的结论。在附录A中,我们讨论了当前的实现以及OpenPlanner可以使用的各种平台。我们还为用户和开发人员提供有关扩展和参展的提示。算法列于附录B.
2.相关研究
在机器人技术中,路径规划的任务是找到从起始位置到目标位置的无碰撞轨迹,并确定导航决策。 路径规划已被广泛研究,从模拟环境中的简单碰撞避免到包括车辆约束和不确定性的高级算法。 机器人导航的路径规划通常涉及全局和本地计划的计算。 全局规划人员通过满足最佳函数来计算从当前位置到目标位置的路径,通常使用距离约束,如Dijkstra [11]。 任务规划人员通过决定何时启动,停止,创建新计划,切换到紧急状态等。
全局规划
一些全局路径规划器,例如A *、Anytime动态A * 和D *算法也使用重新规划。还有拓扑方法,例如计算无碰撞路径的Voronoi图。这些技术基于使用传感器信息更新的网格图,称为成本图。这种技术可以用于越野导航和停车场等非结构性环境。另一种类型的全球平面环境网络结构化的道路延伸数公里。对于这种尺寸的地图,成本地图变得不切实际,需要不同的环境呈现方法。在2007年DARPA城市挑战赛中,这些团队获得了完整的文件(RNDF),斯坦福大学的团队使用动态编程技术进行全局规划,其中包括使用加速节点进行动态编程。显然,这种结构化的环境信息使团队能够规划全球路径,包括换道,交叉路口,停车标志,交通灯和停车场。从那时起,RNDF已成为自主导航的必要条件。在[17]中,引入了针对自动驾驶的优化的想RNDF,并且许多公司正在研究基于RNDF的精确地图,称为矢量地图。虽然这些地图的结构类似于开放街道地图[8],但它们更加精确,并包含额外的,定期更新的信息。
行为状态机
除路径规划任务规划之外的另一个重要规划功能,也称为行为规划,通常使用状态机来表示任务并应用管理这些任务之间转换的规则。 在[18]中,研究人员改变了一个连续的驱动行为,并将其转换为离散空间,然后利用搜索算法获得最优任务序列,以达到符号空间中的目标条件。
本地规划
已经提出了几种类型的本地规划者。潜在的现场方法将排斥力分配给障碍物和对无障碍空间的吸引力[14]。其他成功的避障算法在预测车辆的未来位置时考虑车辆约束[19]。全局动态窗口方法集成了全局路径信息,并将其用于避障[20,21]。最近开发的计划人员将人为因素考虑在内,因此对乘客来说是舒适的[16,22]。此外,还引入了有效的局部规划方法,即从车辆中心和运行平行于参考路径开始多次推出[4,23]。通过线性采样和优化的服务器来满足车辆运动学要求。对象跟踪是人工规划方法的重要组成部分,包括我们的方法。噪声传感器,错误的检测算法和天气条件会导致误报和漏报检测。本地规划方法必须具有可靠的对象跟踪功能,尤其是在户外自主导航应用中。在[24]中,多重假设跟踪(MHT)被用于实现多目标跟踪,而另外的研究者则使用了概率滤波器,例如卡尔曼或粒子滤波器。
开放源码
比较了 Open Motion Planning Library (OMPL) [25] and Navigation Stack [c] and Open-rdc 和本文的方法
OpenPlanner不需要成本映射,除非切换到自由空间规划器;只需要一个矢量地图。总的来说,Open Planner更适合遵守交通规则的自主机器人导航系统,它只需要一个矢量地图和目标位置来进行全局规划,并且只需要当前位置和检测到的障碍物进行本地规划和行动计划。
3.系统概述
OpenPlanner的体系结构图.png它包括一个全局规划器,它从矢量(道路网络)映射生成全局参考路径。然后,系统使用该全局路径从一组采样的展开中生成无障碍的局部轨迹。在计划器的中心,行为生成器使用预定义的交通规则和传感器数据作为协调器,使用碰撞和交通规则成本计算,选择最佳轨迹,重新计划命令和速度配置。
全局规划概述
全局规划器处理路径路由。 它将矢量图,起始位置和目标位置作为输入,然后使用动态编程找到最短或最低成本路径[4]。 OpenPlanner使用的全局规划器可以支持复杂的矢量地图,但是这项研究使用的地图非常简单。 Tsukuba RWRC的整个地图如图2所示。我们使用交通规则和功能手动注释地图,例如交通灯和停车线,从开始到目标。 更多细节将在第4节中提供。
图片.png
行为状态机概述
OpenPlanner的行为状态生成模块充当系统的决策者。 它是一种有限状态机,其中每个状态代表一种交通情况。 状态之间的转换由使用当前交通信息和预定义的交通规则确定。 图3显示了OpenPlanner系统中当前可用的状态。 更多细节在第6节中提供。
图片.png
轨迹生成概述
本地路径规划器的输入是全局参考路径和当前位置。 然后生成若干候选轨迹作为推出,并且本地计划者选择具有最低集体成本的轨道。 图4显示了七种可能的展开轨迹,包括中心轨迹。 我们使用了[4]中提出的斯坦福方法的修改版本。 实现算法将在第5节中解释。
图片.png
4.全局规划
OpenPlanner使用矢量地图作为全局规划的主要输入,计算参考路径作为本地规划器生成 roll-out 轨迹的参考。 在本节中,我们将详细介绍矢量地图和全局规划。
矢量地图
用于自主车辆导航的最广泛使用的方法之一是使用矢量地图,有时称为高定义地图,以将它们与地理信息系统(GIS)应用中使用的地图区分开,例如开放街道地图[8]。矢量地图包括自主导航模块需要了解周围环境的数据。表1显示了矢量图的一些常见组件以及每个组件在自动驾驶系统中的潜在用途。 OpenPlanner使用2.5D映射,这意味着它包含仅在需要时使用的高程信息。这允许增加计划性能,因为大多数计划是在2D中完成的,但是3D信息也可以在极少数情况下使用,例如在遇到非常陡峭的斜坡时。
图片.png
在矢量图中用高阶多项式的表示车道中心将有助于我们插入具有所需密度的路点,但使用多项式曲线的缺点是计算开销。 如果从文件加载一次映射没有问题,但如果地图从地图服务器更新,则可能会减慢计划过程。 出于这个原因,我们开发了一种有效的算法来调整车道中心线的密度,如附录B中的表6所示。由于人为错误,人工创建的地图的中心线不平滑,因此使用共轭梯度(CG)方法进行平滑处理[27] ]被被应用。
图片.png
尽管Tsukuba RWRC地图非常简单(图2),正如我们的名古屋大学校园测试地图(图5),OpenPlanner也支持道路网络兼容的矢量地图,如图6所示。
图片.png
图片.png
全局规划
根据驾驶环境,自主车辆计划分为两大类。第一种类型的规划涉及非结构化环境,例如在停车场遇到的越野驾驶员,我们无法使用矢量地图的地方。在这些情况下,最合适的映射类型是成本映射。第二种类型的环境涉及结构化环境,其中我们有明确定义的道路,交通车道,交叉路口等,以及交通设施,所有这些都可以被描述为传感器地图。路径规划的主要目标是找到最佳的路径起始点,但是在结构环境中我们必须遵循交通规则,例如在车道中心行驶,向正确的方向行驶,在允许的情况下改变航行,并且在正确的航线上进行右转或右转。当使用动态编程找到最佳路径时,我们会追踪从车辆当前位置到目标的可能路线。在路线追踪过程中,我们构建了一条可能的路径树,这些路径遵循现有规则,直到车辆到达目标,如图7(a)所示。一旦我们到达目标,我们追踪从目标到起始位置的路线,用本地规划者生成局部轨迹所需的所有信息来注释路径,如图7(b)所示。当地规划人员需要了解交通方向,车道变换位置,停车位置,位置以及速度限制。为复杂矢量图生成的样本全局路径如图4和图5所示。如图8和9所示,后者包括换道。在图5中,我们显示了其中一个测试环境的全局路径,它只是代表图5中的如图所示。附录B中的表7和表8显示了用于找到全局路径的算法。
图片.png
图片.png
图片.png
5.本地规划
局部轨迹规划器是一组生成平滑轨迹的功能,可以通过路径跟踪算法跟踪,例如Pure Pursuit [28]。 对于OpenPlanner,我们采用了推出 roll-out 生成方法(图4),其中行为生成器可以随时要求计划以生成新的,平滑的 roll-out 轨迹。 重新计划将在下一小节中详细讨论。
图片.png
roll-out 生成
roll-out生成需要实时执行,因为这是所有本地规划能够实时工作的基本要求。因此,目标处理时间最长为0.1秒,因此控制器可以快速响应速度变化。roll-out生成算法的输入是当前位置,规划距离,roll-out数量和全局路径的下一部分。输出是n个平滑轨迹,从车辆中心向最大规划距离延伸。
roll-out的推出分为三个部分,如图10所示。 与车辆最接近的部分是car tip边缘,即从机器人中心到横向采样点的距离,其长度决定了在轨迹之间切换时的转向平滑度。 下一部分称为roll-in,即从car tip边缘到平行横向采样点的距离,其长度与车辆的速度成比例。车辆行驶越快,该部分应该越长,以产生平稳的变化。 距离车辆最远的部分称为 roll-out部分,其从roll-in外部界限延伸到局部轨迹的长度的末端。 直线横向采样是通过从全局路径垂直移动固定距离来执行的,这称为滚动密度。
roll-out的推出包括三个主要步骤,其中第一个是使用车辆的当前位置和最大规划距离从全局路径中提取感兴趣的部分。 第二步是采样新的垂直路径点,这些路径点对应于全局路径的提取部分。 采样从car tip边缘开始,横向距离为零,然后逐渐增加,以达到使用roll-out部分末端的每条轨迹计算的滚出密度。 第三步是使用共轭梯度来平滑每个采样轨迹,这是非线性优化技术的最小连续性,是从采样的步骤中得出的。 这也改善了曲率,从而导致平滑转向。
使用分段插值来调整轨迹顶点(路径点)的密度,如附录B中的表6所示。许多参数插值技术对输出噪声非常敏感并且传播到输出(例如,三次样条可以导致输出中的任意大振荡与输入相互串联)[29]。 因此,我们使用分段插值和共轭梯度平滑的组合来生成更平滑的轨迹。 由此产生的轨迹通常在运动学上是可行的,因为我们使用矢量图,因此我们假设所有车道都是动力学可行的。 图11显示了推出生成的步骤,并在附录B的表9中说明了实现。
图片.png
图片.png
图片.png
成本计算
障碍物避免过程的输入是roll-outs轨迹和检测到的障碍物,输出是选定的轨迹。 我们使用附加成本函数来评估每个轨迹,计算三个不同的标准化成本测量,优先成本,碰撞成本和过渡成本,其中最小的选择。
使用Autoware [a]中的另一个模块实现障碍物检测,该模块输出两种类型的障碍物表示,边界框和点云数据集群。障碍物表示对于准确性和性能都是必不可少的,并且通过使用边界框,我们可以显着提高障碍物检测性能,但却牺牲了准确性。使用点云数据可以极大地提高检测精度,但会大大降低性能。我们通过仅使用来自点云数据集群的轮廓点的样本来解决这种权衡问题,每个障碍物最多16个点。
轮廓点的最大数量是局部规划器的参数之一,并且通过增加该数量,我们可以实现更精确的表示,这导致更准确的避障。图12示出了使用8个轮廓点的障碍物检测的示例。轮廓表示分三个阶段计算:首先,我们将xy平面划分为n个扇区;其次,我们找到每个点与中心点之间的距离和角度,并使用角度将点指定给扇区;第三,我们选择最终的轮廓点,它们是距离每个扇区中心最大距离的点。
CenterCost
中心成本限制车辆始终沿着车道的中心行驶,并且使用与该车道中心轨迹的绝对距离来计算每个roll-outs轨迹。
TransitionCost
过渡成本限制车辆跳跃,这有助于更平稳的转向。 使用roll-outs之间的归一化垂直距离以及当前选择的轨迹来计算该成本。
CollisionCost
碰撞成本分两个阶段计算,以提高性能。在第一阶段,我们通过测量从障碍物轮廓点到每个生成的轨迹的距离来测试每个轨迹。由于所有的轨迹都是平行于中心的进一步切割,因此不应该特别适用于其他方面。使用“圆内点”测试来实现障碍物测试,其中每个轮廓边缘提供测试点,圆心是路点,并且每个圆的半径是车辆宽度的一半加上误差的检测余量。第二阶段的碰撞计算是检查检测到的障碍物与 roll-in 滚入限制之后产生的轨迹之间的距离。在滚入限制之后,所有生成的轨迹都是平行的,因此我们不需要将预测的碰撞成本与预测相对应。我们计算从检测到的障碍物的轮廓点到中心轨迹的距离,然后使用从每个轨迹到中心轨迹的有符号距离来找到碰撞的前期轨迹。图13显示了彩色编码的中心成本。图14示出了在存在障碍物时归一化的总成本。
图片.png
6.行为状态机
在交通路灯处停车,决定改变车道,停车并在停车标志处等待并屈服于行人的情况很难通过一种算法来处理。 与其他交通规则一样,这些事件本质上是明确的,但规则因国家而异。 此外,可以随时添加或禁用特殊的交通规则或目标。 在本研究中,我们使用术语“行为状态”来表示所有这些事件响应,以及引用这些状态之间的转换规则。 图3显示了在Tsukuba Real World Robot Challenge期间用于OpenPlanner的行为状态。 表2显示了每个状态的转换规则。
图片.png
控制状态之间的转换有几个参数。每次迭代都确定性地计算这些参数。从理论上讲,概率方法应该可以实现更平滑的转换,但是在广泛的应用程序中实现和维护它会更慢,更复杂。该问题的一个解决方案是引入定时器和计数器。例如,当障碍物移动到非常接近阈值时,行为发生器将在Swerve和Follow状态之间快速来回切换。计数器或计时器可以打破这个循环。计数器将产生更好结果的另一种情况是当交通信号灯变为红色或绿色并且光检测器不足以处理变化时。在这种情况下,需要多次接收信号以确保信号的可靠性并切换到下一状态。因此,在每个行为的初始化过程中,只有最小的过渡时间,这样一个国家将继续自我执行,除非在相应的时间条件下达到最佳状态。
7.实验
图片.png实验平台如图16所示,在[30]中使用相同的平台。 它是一种改装的移动踏板车,因此可以通过计算机进行控制。 它包括一个HDL32 Velodyne LIDAR传感器,用于定位和对象检测。 除了3DLIDAR之外,我们使用三个2D LIDAR进行路缘和近障碍探测。 在软件部分,我们有多个ROS节点用于本地化,障碍物检测,控制,全局规划,本地规划和路径跟踪。 在附录A中,我们提供了有关ROS用户的OpenPlanner的技术信息。 表3显示了使用的参数配置模拟和现场实验。
图片.png