【运动规划算法】OpenPlanner

编程入门 行业动态 更新时间:2024-10-25 17:29:47

【运动规划<a href=https://www.elefans.com/category/jswz/34/1770096.html style=算法】OpenPlanner"/>

【运动规划算法】OpenPlanner

文章目录

  • 前言
  • 一、原理
    • 1. Roll-outs Generator
    • 2.Roll-outs Evaluator
      • 2.1 优先级代价
      • 2.2 过渡代价
      • 2.3 碰撞代价
      • 2.4 归一化处理
  • 二、项目演示
  • 参考资料


前言

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

更多推荐

【运动规划算法】OpenPlanner

本文发布于:2024-03-12 05:10:51,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1730766.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:算法   OpenPlanner

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!