AVP自主代客泊车规划算法学习

AVP泊车规划算法学习

一、满足运动学的rrt算法

输入:起始点和终止点车辆状态【x,y,朝向,线速度】
输出:从起始点到目标点的路径【车辆状态序列:位置,朝向,速度,角速度等】
原理
rrt最多进行70000个节点。首先在rrt上随机采样一个节点。然后针对该节点采用满足动力学的rrt进行新节点生成。当新节点和目标节点的距离小于阈值时,规划结束,路径回溯。找到最终规划的路径【为车辆的状态:位置,朝向,速度,角速度等】
rrt新节点生成,并进行该节点与被占据车位的碰撞检测。每一大步分10小步走,每一小步都满足车辆的运动学约束。实际上相当于采用相同的控制指令驱动机器人运动前进10步,即相当于新节点一步生成,然后进行离散化的结果。将生成的第10步节点压入rrt树中。第10步同样会存储到第1步的路径状态。
优化
1)在全局地图随机采样进行rrt,是不是知道车位后仅仅进行车位范围内采样,使用rrt。
2)终止rrt条件,仅仅考虑了位置和朝向信息,但是并考虑速度信息。
3) 未考虑到倒车过程中的动态障碍物问题。
来源:https://github.com/Mech2019/ParkingLotPlanning
来源备注:matlab代码部分负责停车场地图生成,以及最终轨迹可视化;c++部分为核心的路径规划部分。
视频:可以参考github的代码文件下相关视频

二、圆弧切法

输入:环境地图,起始点和目标车位坐标
输出:停车规划路径
原理:从起始点到泊车位采用A*算法搜索出初始路径;通过初始路径末端斜率判断入库方向;进行停车路径首末段直线的生成;采用等双圆弧切方式生成停车路径;采用三阶b样条对停车路径进行平滑处理;三段停车路径的路径拼接。
优化
1)采用r相同的圆进行停车路径生成,曲率方向发生变化,实际运行中需要车辆的转向。
2)对于车库边缘停车点的设定有要求,需要考虑车辆的最小转弯半径以及撞库角的风险。
来源:https://github.com/Pandas-Team/Automatic-Parking
图片
AVP自主代客泊车规划算法学习_第1张图片

三、目标树与改进rrt【缺少leda库,windows环境运行】

输入:地图信息【障碍物分布】,起始点,终止点
输出:起始点到终止点的路径规划【包括车辆位姿、相应的控制变量】
原理
1、输入目标点【车库内部】:从终止点长出满足车辆动力学模型的每条路径20个节点的30条路径的搜索树【此处仅考虑垂直停车】
2、外部rrt树的生成:只有当rrt树节点数到大于1000同时新rrt节点与目标树的距离小于阈值0.5时结束树的生长。此树生长过程中进行控制输入优化【点追踪算法:根据输入的两个节点,找到最佳的控制输入信息,使得运动之后的俩个节点之间的距离最近【满足车辆非完整约束】【与障碍物无碰,不出边界】】
3、轨迹生成:此处仅仅完成轨迹的提取,并未进行平滑算法处理【可采用论文中的基于“点追踪”的平滑算法】
优化:论文涉及到最后的rrt部分的“点追踪”的平滑,但是实际代码中并没有体现。
来源:https://github.com/fengziyue/RRT-Parking
视频:参考github视频

备注:

资料整理,自查使用

你可能感兴趣的:(算法,学习,自动驾驶,github)