开放空间规划算法解析及实现--自主泊车为例

整体介绍

对于没有参考线的非结构化场景,如泊车、倒车入库、靠边停车

task::

(1)确定可行驶区域

(2) 粗糙轨迹生成

第一步生成可行轨迹的点,因为混合A*生成的轨迹存在曲率突变,不能直接使用。

第二步对轨迹进行进一步平滑,满足控制需求。

(3)对轨迹进行分割

根据前进还是后退,对轨迹进行分割,根据自车位置来判断进行哪一条轨迹以及是否需要更换轨迹

 (4)障碍物碰撞Fallback_Decider

如果检测与障碍物碰撞的轨迹需要fallback,重新规划一条

 基于混合A*的路径规划

【A*需要对环境提前已知,基于高精地图,这本身就是已知的,所以环境就是已知环境】

A*:

搜索算法,将可行使的环境进行栅格化【栅格化!!!】,迭代搜索8个方位,对呀!!!栅格化呀,就是一个个的点???SUMO里面A*搜索也是A*搜索呀,所以那个生成的net.xml文件是一个栅格地图??---》》》去看SUMO里面那个带的A*算法的py文件证实研究一下,如果是这样的话,那可以参考一下A*别的py文件怎么画的图 ,SUMO中获取到了信息【这个信息的获取也没获取整明白哎!!!】

 g(n) ::  从起点到当前节点的cost;h(n)::启发函数,从当前节点n到终点节点的预估cost

  A*算法走出的路径时折线,曲率突变点,路径不满足运动学约束,根据车辆运动学模型,实际车辆航向和后轴中心方向是一致的,所以将车辆运动轨迹等效成车辆后轴中心根据不同转弯半径的

的弧线组成,通过前轮转角可以算出后轴中心的转弯半径,所以对前轮转角进行采样,从而变成下图所示,方位不止8个方位,搜索维度也从2维升为3维(x,y,theta航向角)

 

 

 上述因为状态空间是连续的【???】,而搜索的点是离散的,固定的点不同的航向。

 ReedSheep : : 固定直线连接圆弧的方法,但是其无法考虑障碍物,所以混合A*算法将障碍物路径过滤掉,

 GenerateDPMap函数通过动态规划算法计算启发式函数。

 上图结果图,在直线和圆弧的交界处拐点曲率突变需要平滑::

 

 

 

 在凸优化中有约束的极值问题通常是不好研究的,所以通常将有条件的极值问题转换为无条件的极值问题进行研究。

 

 

 

 

 

 

Apollo对算法的改进:

之前采样时间是固定时间,所以是 t 时间到达终点,变时间采样乘以一个固定时间系数 t(k) ,可以缩短到达终点的时间, 

 

 

 基于DL_IAPS的规划算法

OBCA算法通过凸优化的强对偶性很好解决开放空间无碰撞约束,但是算法求解效率和鲁棒性较差,

 

改进点是OBCA是将整个轨迹进行平滑,但是DL_IAPS是分段进行平滑,保证平滑后的路径不会与障碍物碰撞, 并满足曲率最大的要求

 

 

 算法实践

 

 

 绘制过程图::

 

 改变可视化区域的边界点。改了以后规划失败了,改回去了。修改了下面的sphi  ---起始航向角

### Apollo 自动驾驶平台中的自主泊车感知技术 #### 感知技术架构概述 在Apollo自动驾驶平台中,自主泊车功能依赖于先进的感知技术来识别周围环境并做出决策。该系统的感知模块主要由传感器融合、目标检测和跟踪以及语义分割组成[^1]。 #### 传感器配置与数据处理 为了实现精准可靠的停车操作,车辆通常配备多种类型的传感器,包括但不限于摄像头、激光雷达(LiDAR)、毫米波雷达(Radar),超声波传感器(Ultrasonic sensors)[^2]。这些设备收集的数据会被实时传输至计算单元,在这里通过复杂的算法进行预处理、特征提取及最终的目标分类。 #### 关键组件解析 - **图像视觉分析**:利用车载相机捕捉停车场内的静态物体(如停车位线)、动态障碍物(行人或其他行驶中的汽车),并通过卷积神经网络(CNNs)等深度学习模型完成对各类对象的精确定位。 - **LiDAR点云处理**:对于更精确的距离测量任务,则依靠高分辨率三维扫描仪获取环境轮廓信息;经过聚类运算后形成可信赖的空间映射图谱用于后续路径规划阶段参考。 - **多源信息集成**:除了上述两种主流手段外,系统还会综合考虑来自其他辅助装置的信息输入——比如基于声音反射原理工作的US传感器阵列可以有效弥补光学传感方式可能存在的盲区问题;而Radar则擅长应对恶劣天气条件下的探测需求。 ```python import numpy as np from apollo_perception import PerceptionModule def process_parking_environment(sensor_data): """ Process sensor data to detect parking spots and obstacles. Args: sensor_data (dict): Dictionary containing raw sensor readings Returns: tuple: List of detected objects and available parking spaces """ perception_module = PerceptionModule() processed_info = perception_module.analyze_scene(sensor_data) return processed_info['objects'], processed_info['parking_spots'] ``` #### 安全保障机制 考虑到实际应用场景复杂多样性的挑战,特别是在面对突发状况时如何迅速响应至关重要。因此,针对潜在的风险因素进行了特别优化设计: - 对于突然闯入视野范围内的移动体,采用预测性建模方法提前评估其运动趋势; - 当遇到紧急情况时立即触发制动措施以确保乘员安全不受威胁; - 同时还具备自我诊断能力以便及时发现硬件故障或软件异常从而采取相应补救办法保持整体性能稳定高效运行状态。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值