【运动规划算法】OpenPlanner


前言

OpenPlanner是名古屋大学开发的开源自动驾驶框架Autoware中使用的运动规划算法。它是通过对全局路径进行采样生成一系列的候选路径,结合矢量地图、传感器信息以及碰撞、交通规则等约束和优化目标,选择出最优的运动轨迹。OpenPlanner通用性强,只需相应的调整参数即可与任何的移动机器人配合使用。
在这里插入图片描述

下图是OpenPlanner的一般体系结构,其主要三个组成部分是全局规划器行为状态生成器局部规划器
在这里插入图片描述
OpenPlanner旨在用于移动机器人的自主导航,更确切地说是应用于自动驾驶领域。它结合了矢量地图或道路网络地图中包含的所有离散信息(例如交通信号灯,交通标志,十字路口,停车线等的位置),这相对于其他的开源的导航系统OMPL和Navigation Stack来说是主要的优势。

使用矢量地图可以更加轻松、快速地进行全局和局部规划。当然,像RRT * 和 Hybrid A *这些自由空间中全局规划器对于停车和越野情况也是很重要的。在这种情况下,我们可以切换到自由空间规划器进行全局规划,仍需要使用Open Planner的行为状态机和本地规划器。与Navigation Stack相比,OpenPlanner的另一个优势是OpenPlanner可以与非完整约束底盘一起使用。

此外,OpenPlanner还提供基本的行为状态机功能,添加新状态很容易。 另一方面,OMPL不提供状态机或离散行为计划。 关于规划器的建图需求,Navigation Stack和OMPL都是需要代价地图的,OpenPlanner只需矢量图而不需要代价地图,除非切换到自由空间计划。 总而言之,OpenPlanner更适合于遵守交通规则的自主移动机器人导航系统,它仅需要矢量地图和目标位置即可进行全局规划,而对于局部规划和行为状态生成,则仅需要当前位置和检测到的障碍即可。


一、原理

OpenPlanner包含全局规划器、行为状态生成器和局部规划器。本文只讨论其中的局部规划器op_planner模块。

op_planner包含Roll-outs GeneratorRoll-outs Evaluator

Roll-outs Generator

  • 根据矢量地图生成的全局路径作为参考生成一系列平滑的候选路径。

Roll-outs Evaluator

  • 结合障碍物信息以及其他因素来计算各个候选路径的代价,从而挑选出一条平滑、无障碍的局部路径。

1. Roll-outs Generator

Rollouts Generator是被实时执行的,因为局部规划都必须满足实时工作的基本要求。目标处理时间最多为0.1秒,以便控制器可以快速响应速度变化。候选路径生成算法的输入是当前位置、规划距离、生成候选路径的数量和全局路径。输出为n条平滑轨迹,从车辆中心一直延伸到最大规划距离。
在这里插入图片描述
如上图所示,将采样的过程划分为三个部分Car tip、Roll in和Roll out。

Car tip

  • 从车辆中心到横向采样点的距离,其长度决定了车辆切换到不同轨迹的平滑度。

Roll in

  • 水平横向采样点到平行横向采样点的距离,其长度与车辆速度成正比。车辆行驶的速度越快,此区域产生平滑变化的时间就越长。

Roll out

  • 平行横向采样点到最大规划距离,通过从全局路径垂直移动固定的距离(称为Roll out密度)来执行直接横向采样。

Roll-outs Generator包括三个主要步骤

  1. 根据车辆的当前位置和最大规划距离从全局路径中提取所需的部分;
  2. 针对提取出的全局路径进行点的横向采样;
  3. 使用共轭梯度对每个采样轨迹进行平滑处理生成候选轨迹,共轭梯度是一种非线性迭代优化技术,可消除采样步骤导致的滚动不连续性。 这也改善了曲率,从而使转向更平稳。

在这里插入图片描述


2.Roll-outs Evaluator

Roll-outs Evaluator的作用是根据优先级代价、过渡代价和碰撞代价评估每一条从Roll-outs Generator生成的候选路径,从中挑选出总代价最小的一条作为最优路径输出。

2.1 优先级代价

优先级代价是对每条候选路径进行分级,中心路径的优先级是最高的,然后由中心路径向两边递减,这是为了在没有障碍物的情况下,让车辆保持在中心路径。
在这里插入图片描述
优先级代价使机器人保持在车道的中心。选定的轨迹位于中心,其他轨迹的渐变颜色代表代价。

2.2 过渡代价

过渡代价是为了限制车辆不会频繁在候选路径之间切换,这是为了确保车辆前进的平滑度。

2.3 碰撞代价

碰撞代价分两部分lateral_cost和longitudinal_cost来计算。

lateral_cost

  • 候选路径到障碍物的横向水平距离。

longitudinal_cost

  • 候选路径到障碍物的纵向水平距离。
    在这里插入图片描述

2.4 归一化处理

避免评价函数中某一项代价占据过大的优势。


二、项目演示

在这里插入图片描述
在这里插入图片描述


参考资料

【1】Open Source Integrated Planner for Autonomous Navigation in Highly Dynamic Environments

OpenTripPlanner (OTP) 提供了一个多模式的路程规划开源平台,用户可以通过OTP 内置的web界面结合步行,自行车和公共的交通工具进行路径查询,同时OTP也提供为第三方程序调用的API接口。官网地址:http://opentripplanner.com/github地址:https://github.com/openplans/OpenTripPlanner其数据源可以通过shapfiles,OSM,GTFS等转化详见https://github.com/openplans/OpenTripPlanner/wiki/GraphBuilder打包好的程序下载地址:http://maps5.trimet.org/otp-dev/otp.zip 使用这个只需转化好地图数据,放到指定文件夹下就能直接使用了详见如下几个教程2 minute introduction5 minute detailed dive-inAvailable web app language translations当然也可以直接下载源码,github上的文档也是非常详细的https://github.com/openplans/OpenTripPlanner/wiki/GettingStartedEclipse下面的是源码中的各个工程:opentripplanner‐api‐extendedweb应用程序可以有选择性的显示一个地图;需要一个地图服务器(geoserver)• opentripplanner‐api‐webapp为trip planning 引擎提供一个REST风格的API• opentripplaner‐geocoder为OTP的地理编码提供一个REST风格的API• opentripplanner‐graph‐builder用于配置和构建trip planner图(命令行工具)• opentripplanner‐webapp为trip planning 引擎提供WEB UI• opentripplanner‐gui为了开发和故障排除的图可视化• opentripplanner‐integration系统集成测试• opentripplanner‐routing 核心路由算法,数据结构和一些库• opentripplanner‐utils编码polylines(shapefile)下面的是我用OSM-北京作为数据源部署的程序在其他程序中调用
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Travis.X

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值