目的
介绍Apollo自动驾驶项目中open space自动泊车算法的原理和代码实现。
概述
open space自动泊车的基本流程是,首先由routing路线规划模块得到目的地的目标车位编号,然后根据这个编号从高精地图模块中搜索找到目标车位的坐标,再由此得到目标位姿和泊车搜索区域。再使用搜索算法搜出一条满足车辆运动约束的初始路径。这条初始路径的质量可能不是很高,比如曲率不够连续、转折过多等等,所以还要再对这条初始路径进行平滑并与历史轨迹拼接得到完整的高质量轨迹,最后再根据车辆当前的位置找到最近的一条轨迹片段并下发给控制模块用于跟踪。
泊车规划
总的来说,Apollo中车辆的规划可以分成依赖参考线的和不依赖参考线的两种。当车辆行驶在规则的道路上时,使用基于参考线的规划方法,具体就是在参考线定义的frenet坐标系中规划,这种情况下车辆要遵守道路交通规则。当车辆需要在没有明确道路定义的环境中行驶时(例如停车场)或者需要在道路上掉头、靠边停车时,采用不依赖参考线的方法,这种情况下车辆可以不遵守道路交通规则,具有更大的自由度。
依赖参考线的方法被称为reference_line,不依赖参考线的方法被称为open_space。modules\planning\
中各有对应的文件夹。open_space的意思就是开放场地,暗指没有道路边界、中心线等参考,在其它文章或者项目中也被称为free_space自由空间。