【路径生成+轨迹优化--无人驾驶场景规划器】OpenPlanner算法_百度文 ...

路径⽣成+轨迹优化--⽆⼈驾驶场景规划器】OpenPlanner算法
系列⽂章⽬录
提⽰:这⾥可以添加系列⽂章的所有⽂章的⽬录,⽬录需要⾃⼰⼿动添加
TODO:写完再整理
⽂章⽬录
前⾔
认知有限,望⼤家多多包涵,有什么问题也希望能够与⼤家多交流,共同成长!
在项⽬和平时的学习中,我对机器⼈/⽆⼈驾驶的决策规划模块进⾏了划分,当然划分的⽅法有很多,我的划分⽅式仅供参考
(1)动态障碍物⾏为预测模块(Behavior prediction)–结合感知和⾼精度地图信息,估计周围障碍物未来运动状态
(2)执⾏机构的轨迹规划模块(Trajectory_planning)–执⾏机构如机器⼈载体上的机械臂、串⾏云台
等的运动轨迹规划螺旋桨设计
(3)任务决策模块(Mission_planning)–任务决策模块⽐较偏业务层了,处理机器⼈/⽆⼈驾驶的各种任务,主要分为三个⽅⾯:车底盘航线业务决策(交规、横向换道等等)、执⾏应⽤机构业务决策(机械臂、⼈机交互等等)、不同场景的导航⽅案切换决策(组合导航、融合导航)防盗追踪
(4)前端路径探索模块(path_finding)–全局路径规划算法难度不算复杂,到⼀条可通⾏的(必须满⾜)、考虑动⼒学的(尽可能满⾜)、可以是稀疏的路径base_waypoints【由于其只考虑了环境⼏何信息,往往忽略了⽆⼈机本⾝的运动学与动⼒学模型。因此,其得到的轨迹往往显得⽐较“突兀”,并不适合直接作为⽆⼈机的控制指令】
(5)后端轨迹处理模块(motion_planning)–我主要归纳整理为三个⽅向:(1)对base_waypoints进⾏简单处理及⽣成⽅向、(2)对base_waypoints轨迹优化⽅向【⼀般是⼆次优化,这⾥⽤的较多的事优化⽅⾯的知识】、(3)进⾏对应功能的replan⽅向(replan之前的预处理、进⼊replan的条件、停障replan、避障replan、纠偏replan、换道replan、⾃动泊车replan、穿过狭窄道路replan等等),这部分内容使⽤的⽅法⽐较专
(6)路径跟踪模块(trajectory_following)–这个模块就得针对机器⼈载体了,如⽆⼈驾驶使⽤得阿克曼模型可以采⽤⼏何的pure pursuit纯追踪算法,更好的可以⽤模型预测控制MPC⽅法,还有强化学习
做的(效果怎样我就没验证过了);当然也可能事麦克纳姆轮车、差速车PID、还有⽆⼈机的三维轨迹跟踪等等
(7)碰撞检测模块
(8)集多机器⼈规划模块
衣架钩
当然,这种划分⽅式是我权衡了原理和功能粗略划分的,在实际产品研发过程中,需要理解了各个算法的功能和定位的基础上融汇贯通,不能⽣搬硬套,如全段通过hybrid A探索出来的路径与A、RRT*探索出来的路径更平滑,后端轨迹优化的任务就不⽤这么重了;⼜如,机器⼈/⽆⼈驾驶项⽬研发的需求业务还没发展到能响应很多功能阶段,任务决策使⽤简单的状态机(fsm)就可以对现有任务进⾏状态转移了
本⽂先对OpenPlanner算法做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他⽂章
提⽰:以下是本篇⽂章正⽂内容佳迪达化工
⼀、OpenPlanner整体效果
⼆、OpenPlanner介绍
1.OpenPlanner介绍
规划执⾏最优路径,同时避免障碍,触发⾏为例如在交通信号灯处停车
2.OpenPlanner开源框架的特点
拖把杆
(1)OpenPlanner框架⾜够通⽤,可剪裁才增加,【防盗标记–盒⼦君hzj】只需调整其参数即可与任
何移动机器⼈配合使⽤
(2)OpenPlanner更适合于遵守交通规则的⾃主移动机器⼈导航系统,更适⽤于车道线场景的⾃动驾驶领域,OpenPlanner通⽤性强,只需相应的调整参数即可部署在⼀台新的⽆⼈驾驶车上
(3)OpenPlanner它结合了⽮量地图或道路⽹络地图中包含的所有离散信息(例如交通信号灯,交通标志,⼗字路⼝,停车线等的位置),这相对于其他的开源的导航系统OMPL和Navigation Stack来说是主要的优势
事先有⼀张⽮量地图,车载还有激光雷达和相机的detector模块
(4)OpenPlanner不完全适合杂乱⽆章的农业场景,【防盗标记–盒⼦君hzj】需要改造,这⾥就是论⽂的切⼊点,农业场景它仅需要⽮量地图和⽬标位置即可进⾏全局规划,⽽对于局部规划和⾏为状态⽣成,则仅需要当前位置和检测到的障碍即可
3.Autoware和OpenPlanner的关系
Autoware是ROS软件包的集合,包括OpenPlanner,以及其他功能包
.
.
三、OpenPlanner的整体框架及原理
1.感知模块⽀持
通过相机detect,得到障碍物信息(detected obstacles)、交通标志(traffic light color)等
.
.
2.地图与定位模块⽀持
通过SLAM和定位模块提供到⾼清⽮量地图(vector_map)【防盗标记–盒⼦君hzj】(基于⽤传感器信息更新的代价地图)和⾼精度定位信息(goal_pose、start_pose、current_pose)
3.全局路径规划(分场景使⽤不同的规划算法)
⽬的:全局路径规划的分场景的,不同的场景⽤不同的路径规划算法,最终得到⼀条静态的全局参考路径
(1)结构化的环境场景的规划–根据⽮量地图选择⽣成⼀条全局路径
1)场景
在结构化环境中,我们必须遵循交通规则,例如在车道中⼼驾驶,向正确的⽅向⾏驶,仅在被允许进⼊正确的车道以向右转或向左转时才可改变⽅向,在该环境中我们可以清楚地定义道路,⾏车线,⼗字路⼝等,以及交通标志,所有这些都可以在⽮量地图中进⾏描述。
2)规划⽅法
仅仅⽤到vector_map就可以实现全局的路径规划,open_planner的全局路径是从vector_map上得到的,,当然⽮量地图中有多条lane车道,在哪条lane车道形式还是要⽤图搜索的⽅法确定,【防盗标记–盒⼦君hzj】遇到障碍物的时候截取⼀段做局部路径规划
常⽤的算法类型:A*算法、Dijkstra算法
使⽤(A*算法)到从当前位置到⽬标所有的可能路线。【防盗标记–盒⼦君hzj】 在路线跟踪过程中,我们构建了可能的路径树,遵循⽮量地图定义的规则,直到车辆到达⽬标为⽌,⼀旦达到⽬标,便会追踪从⽬标到起始位置的路线,进⽽选出唯⼀全局参考路径
在地图上搜索最短路径。 线条颜⾊表⽰路线代价
.
.
.
(2)⾮结构化环境场景的规划–根据路径探索⽣成⼀条全局路径
⾮结构化环境场景包括⾃由空间的平地场景、越野驾驶场景、停车泊车场景,即我们⽆法使⽤⽮量地图的位置
使⽤向量图可以更轻松,更快地进⾏全局和局部规划。【防盗标记–盒⼦君hzj】当然,像RRT * 和Hybrid A *这样的⾃由空间全局规划器对于停车和越野情况都很重要。在这种情况下,我们可以切换到⾃由空间规划器进⾏全局规划,⽽仍然使⽤Open Planner的⾏为状态机和本地规划器
常⽤的算法类型:RRT * 和Hybrid A *
.
.
(3)全局路径规划源码分析
待补充
4.局部路径规划(open_planner)无电沉镍
(1)原理介绍
将⾼清⽮量地图和定位数据作为先验信息输⼊,在全局中,指定⼀个起点,⼀个终点,通过全局规划得到⼀条全局静态路径,全局路径规划在车辆启动或重启的时候被确定,⼀旦分配了全局路径,本地马上启动运动规划器
根据静态的全局参考路径,采⽤轨迹⽣成算法Roll-outs Generator,得到局部多条平滑的采样轨迹(候选的⼀系列轨迹⽤到了共轭梯度下降轨迹优化平滑的⽅法),【防盗标记–盒⼦君hzj】再通过障碍物检测与代价函数Roll-outs Evaluator⽅法计算每条采样轨迹的归⼀化代价函数,挑选⼀条代价最低且局部最优路径。最后通过纯跟踪算法将规划出来的轨迹⽤于实际控制
op_planner的local_planner主要分为两部分:Rollouts Generator 和 Rollouts Evaluator
(2)Roll-outs Generator【局部路径探索+轨迹优化】
1)作⽤
Rollouts 的含义就是根据中⼼全局路径⽣成的⼀些列候选局部路径,Rollouts Generator根据全局中⼼路径⽣成⼀系列平滑的候选局部路径
根据⽮量地图⽣成的全局路径作为参考⽣成⼀系列平滑的候选路径
2)确定输⼊输出
候选路径⽣成算法的输⼊是当前位置、规划距离、【防盗标记–盒⼦君hzj】⽣成候选路径的数量和全局路径。输出为n条平滑轨迹,从车辆中⼼⼀直延伸到最⼤规划距离
3)确定规划区域
(1)Car tip:从车辆中⼼到横向采样点的距离,其长度决定了车辆切换到不同轨迹的平滑度
(2)Roll in:⽔平横向采样点到平⾏横向采样点的距离,其长度与车辆速度成正⽐。车辆⾏驶的速度越快,此区域产⽣平滑变化的时间就越长
(3)Roll out:平⾏横向采样点到最⼤规划距离,通过从全局路径垂直移动固定的距离(称为Roll out密度)来执⾏直接横向采样
4)Roll-outs Generator三个主要步骤
(1)根据车辆的当前位置和最⼤规划距离从全局路径中提取所需的car tip、Roll in、Roll out三个部分;
(2)针对提取出的全局路径进⾏点的横向采样;对与全局路径的提取的三个部分相对应的新的垂直航路点进⾏采样。 采样从横向距离为零的车头边缘开始,然后逐渐增加,【防盗标记–盒⼦君hzj】以达到在滚动边际末尾使⽤每个轨迹指数计算得出的滚动密度。
(3)使⽤共轭梯度对每个采样轨迹进⾏平滑处理⽣成候选轨迹,共轭梯度是⼀种⾮线性迭代优化技术,可消除采样步骤导致的滚动不连续性。 这也改善了曲率,从⽽使转向更平稳
.
.
(3)Roll-outs Evaluator【代价函数挑选最优路径】
1)轨迹选择图例
2)作⽤
结合障碍物信息和其他因素计算各个Rollout的优先级代价、【防盗标记–盒⼦君hzj】过渡代价和碰撞代价评估每⼀条从Roll-outs Generator⽣成的候选路径,从⽽挑选出⼀条平滑、⽆障碍的局部路径
3)障碍物检测
(1)边界框检测⽅法
通过使⽤边界框,我们可以显着提⾼障碍物检测性能,但会牺牲准确性
(2)点云数据簇检测⽅法【推荐】
使⽤点云数据可以⼤⼤提⾼检测精度,仅使⽤点云数据簇的轮廓点样本来解决性能降低问题,每个障碍物最多16个点。轮廓点的最⼤数量是局部规划器的参数之⼀,【防盗标记–盒⼦君hzj】通过增加该数量,我们可以实现更精细的表⽰,从⽽可以更准确地避开障碍物

本文发布于:2024-09-24 15:18:41,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/343257.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:路径   规划   全局
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议