基于模仿学习的自动泊车运动规划算法
本文使用ResNet+BERT分类模型来实现APA自动泊车算法
附赠自动驾驶最全的学习资料和量产经验:链接
首先定义模型的输出动作类别
类别名 | 说明 |
---|---|
S0 | 停车 |
S+ | 直行前进单位距离 |
S- | 直行后退单位距离 |
L+ | 左转前进单位角度 |
L- | 左转后退单位角度 |
R+ | 右转前进单位角度 |
R- | 右转后退单位角度 |
设单位距离为0.05米,单位角度为0.5度。为了降低复杂性,在转弯过程中,方向盘都打到底。
接下来定义模型的输入:
1、障碍物的位置
2、小车的当前位置以及目标位置
3、附加状态:例如上次执行的动作
在本实验中,使用384×384像素的图片来表示障碍物的位置、小车的当前位置以及目标位置,在输入BERT分类模型前需先将2D图片转为1D序列,如下所示:
(B, C_in, 384, 384)
– ResNet -->
(B, C, 24, 24)
– Rearrange -->
(B, 576, C)
在建模过程中,主要考虑以下参数:
参数名 | 值 |
---|---|
车长 Vehicle Length | 4.360米 |
车宽 Vehicle Width | 1.785米 |
轴距 Wheelbase | 2.535米 |
前轮距 Front Track Width | 1.525米 |
后轮距 Rear Track Width | 1.535米 |
前悬 Front Suspension | 0.840米 |
后悬 Rear Suspension | 0.985米 |
最小转弯半径 Minimum Turning Radius | 5.5米 |
由于算力有限,在生成图片时使用较低的分辨率(20像素/米)
这个项目中唯一比较麻烦的部分就是训练数据的合成,因为自动泊车的场景太多(例如倒车入库、侧方位停车、斜方位停车),需要针对每一种场景开发对应的数据合成代码。经过几天的开发,我也只合成了几种简单场景下的训练数据,可视化效果如下:
上图中,黑色为障碍物位置,红色为小车当前位置,绿色为小车目标位置
从起始位置到目标位置,小车需执行一系列的动作,例如:
R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-S-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-L-
为什么要连续密集决策,而不是在一次决策中让小车移动更长的距离呢?因为在现实中存在着不确定性,比如在泊车过程中小车旁边有人行走。
有了训练数据,接下来就可以训练模型了。
标签:小车,模型,位置,单位,算法,384,泊车,模仿 From: https://blog.csdn.net/liuphahaha/article/details/140844582