首页 > 编程语言 >基于模仿学习的自动泊车运动规划算法

基于模仿学习的自动泊车运动规划算法

时间:2024-08-01 12:28:33浏览次数:26  
标签:小车 模型 位置 单位 算法 384 泊车 模仿

基于模仿学习的自动泊车运动规划算法

本文使用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 Length4.360米
车宽 Vehicle Width1.785米
轴距 Wheelbase2.535米
前轮距 Front Track Width1.525米
后轮距 Rear Track Width1.535米
前悬 Front Suspension0.840米
后悬 Rear Suspension0.985米
最小转弯半径 Minimum Turning Radius5.5米

由于算力有限,在生成图片时使用较低的分辨率(20像素/米)

这个项目中唯一比较麻烦的部分就是训练数据的合成,因为自动泊车的场景太多(例如倒车入库、侧方位停车、斜方位停车),需要针对每一种场景开发对应的数据合成代码。经过几天的开发,我也只合成了几种简单场景下的训练数据,可视化效果如下:

image

image

image

上图中,黑色为障碍物位置,红色为小车当前位置,绿色为小车目标位置

从起始位置到目标位置,小车需执行一系列的动作,例如:

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

相关文章

  • 排序算法总结
    排序算法是数据结构与算法中的一个重要部分,用于对一组数据按照特定顺序进行排列。常见的排序算法有很多,每种算法都有其独特的时间复杂度、空间复杂度和稳定性等特性。以下是一些常用的排序算法及其特点:冒泡排序(BubbleSort):时间复杂度:平均情况下为 O(n2)O(n2),最坏情况下也是......
  • 【基础算法】前缀和和差分
    前缀和和差分前缀和一维前缀和二维前缀和差分一维差分二维差分前缀和前缀和是指某序列的前n项和,可以把它理解为数学上的数列的前n项和,而差分可以看成前缀和的逆运算。合理的使用前缀和与差分,可以将某些复杂的问题简单化。一维前缀和前缀和算法有什么好处呢?先了......
  • 常见的排序算法(Java实现)
      一、冒泡排序      相邻的两个元素比较,大的放右边,小的放左边。二、选择排序   从0索引开始,把每一个索引依次跟后面的索引比较,大的放后面,小的放前面三、插入排序  将数组分为有序和无须两种,遍历数组将无须的数组插入有序的数组当中四、快......
  • springboot+vue基于协同算法的电影推荐系统【程序+论文+开题】-计算机毕业设计
    系统程序文件列表开题报告内容研究背景随着互联网的飞速发展,网络视频平台已成为人们日常生活中不可或缺的一部分,尤其是电影观看的主要渠道。然而,面对海量的电影资源,用户往往难以快速找到符合自己喜好的影片,这不仅降低了用户体验,也限制了电影内容的有效传播。传统的推荐系统......
  • springboot+vue基于协同过滤算法的新闻推荐系统【程序+论文+开题】-计算机毕业设计
    系统程序文件列表开题报告内容研究背景在信息爆炸的时代,互联网上的新闻资讯以惊人的速度增长,用户在面对海量新闻时往往感到无所适从,难以快速筛选出符合个人兴趣与需求的内容。传统的新闻浏览方式已难以满足用户个性化、高效化的信息获取需求。因此,开发一种能够智能推荐个性......
  • java算法递归算法之选择排序
    快速排序的原理就是将数组进行分区,分为三个区,然后如果每个区都是有序数组的话,就已经达成了我们的目标小于基准值的数组组成的子数组基准值大于基准值的数组组成的子数组因此我们需要重复以上的步骤,分别对1和3也选择基准值进行分区,直到数组中最后只剩0个或者1个,那么就达到目标......
  • *算法训练(leetcode)第三十五天 | 121. 买卖股票的最佳时机、122. 买卖股票的最佳时机 I
    刷题记录*121.买卖股票的最佳时机贪心*动态规划122.买卖股票的最佳时机II贪心*动态规划*123.买卖股票的最佳时机III*121.买卖股票的最佳时机leetcode题目地址贪心找左侧最小值、右侧最大值(与最小值求差最大),求差即为最大利润。时间复杂度:......
  • 数组(二)———数组的排序算法①
    目录冒泡排序基本步骤:复杂度分析实现示例(Java):选择排序基本步骤:复杂度分析实现示例(Java):插入排序基本步骤:复杂度分析实现示例(Java):希尔排序基本步骤:复杂度分析实现示例(Java):归并排序基本步骤:复杂度分析实现示例(Java):冒泡排序定义:冒泡排序(BubbleSort)是......
  • 代码随想录算法训练营第55天 | 图论岛屿+水流
    孤岛的总面积https://kamacoder.com/problempage.php?pid=1173代码随想录https://www.programmercarl.com/kamacoder/0102.沉没孤岛.html102.沉没孤岛https://kamacoder.com/problempage.php?pid=1174代码随想录https://www.programmercarl.com/kamacoder/0102.沉没孤岛.......
  • 【数据结构】排序算法(快速排序、归并排序、排序算法总结)
    当你清楚的知道自己想要什么,并且意愿非常强烈的时候,你总会有办法得到的。......