2022年MathorCup数学建模C题自动泊车问题解题全过程文档加程序

news2024/11/14 15:05:03

2022年第十二届MathorCup高校数学建模

C题 自动泊车问题

原题再现

  自动泊车是自动驾驶技术中落地最多的场景之一,自动泊车指在停车场内实现汽车的自动泊车入位过程,在停车空间有限的大城市,是一个比较实用的功能,减少了驾驶员将车辆驶入狭小空间的难度。图 1 为 ApolloD-Kit 车辆在开放露天停车位进行泊车的测试场景,无人车泊入路边一个平行停车位。
在这里插入图片描述
  本研究以无人乘用车为例,实现在停车场中进行自动泊车的功能。无人车为阿克曼结构的乘用车,如图 2 所示,前轮转向后轮驱动;车身可以看作一个矩形,长4.9m,宽1.8m;车子轴距2.8m,轮间距为1.7m;最大油门加速度为3.0 m/s!,极限最大减速度为−6.0 m/s!,加加速度不超过20.0 m/s"为宜;方向盘最大转角470°,方向盘与前轮转角的传动比为16: 1(方向盘转动16°,前轮转动1°),方向盘最大转速为400°/s。

在这里插入图片描述
  图 3 为某停车场平面图,无人车从初始位置出发,假设以初速度为零开始行驶,将车停在停车场中某一个车位上。停车位上如果没有其他车辆占用,或车位没有被锁,则无人车可停入。停车位有三种类型,分别为垂直停车位(停车方向垂直路面)、平行停车位(停车方向与路面平行)和倾斜停车位。图中用黄色斜线标识的为停车场中部分围墙,白色斜线区域为禁行区域,车辆不能与其产生冲突或碰撞,黄色横线区域为减速带。停车位中的箭头指示为车辆泊车完成后的车头朝向。地面上箭头指示了车辆应该行驶的方向,泊车过程中的倒车方向不予约束。在黄色减速带前后 5m,车辆行驶速度不超过10km/h。

在这里插入图片描述
  无人车驶到指定位置(如入口处),如何识别出停车场中的最优目标停车位,以及根据目标车位,如何快速到达并进行安全泊车是自动泊车过程的核心问题。泊车过程在保证安全的情况下,时间应尽可能短,前进车速不超过 20km/h,倒车车速不超过 10km/h,在减速带前后 5m 范围车速不超过 10km/h,轨迹和速度都尽可能平滑(满足最大加速度,最大减速度的约束,并最好满足最大加加速度的约束)。这里轨迹指的是车身中某一特定点的轨迹,即控制点;控制点是事先选定的,通常位于无人车车身对称轴(车身可以近似认为是左右轴对称的)上的一点,在行驶时,控制点的位置会与轨迹点相重合,控制点处的速度方向将与轨迹点的方向角一致,本研究假设控制点位于后轴中心上。请你们的参赛队,研究解决以下问题:
  问题 1: 请根据给出的无人车模型的参数,计算车辆最小转弯半径。如果限制车辆最大加加速度为20 m/s",无人车沿直线行驶时,最短需要多少距离能加速到最大限制速度20km/h?当车速为20km/h时,无人车如果需要转弯,从沿直线行驶状态开始转弯,路径上的曲率相对路径长度的变化率大小有何限制?
  问题 2:如图 4 所示,无人车初始位置为车库入口,请建立无人车泊车的数学模型,并给出从初始位置到指定停车位的泊车轨迹,轨迹应包括每时刻无人车的行驶路径长度、车辆朝向、速度、加速度、加加速度、角速度、角加速度等,并给出可视化轨迹图。在这个过程中标注红色禁停的停车位都已经被占用,泊车过程中无人车不能与其发生冲突或碰撞。分别考虑三种不同的车位情况,10 号垂直停车位、82 号平行泊车位、31 号倾斜停车位(倾斜角为45°)。
在这里插入图片描述
  问题 3:无人车在如图 5 所示的初始位置上,请你们根据当前停车位的状况,建立泊车模型,计算出最优停车位,给出从当前位置到停车位的轨迹;标注红色禁停的停车位都已经被占用,泊车过程中无人车不能与其发生冲突或碰撞。在这个过程中,试建立通用模型,并考虑算法怎样设计能适应车库中任意停车位被占用的状况,并考虑这个过程算法复杂性。
在这里插入图片描述
  问题 4:以图 5 为初始状态,假设在当前状态下每小时内从入口进入和从出口离开停车场的车辆均为 30 辆,因车辆的进入和离开,导致停车位会被随机占用或释放。请你们为无人车建立泊车模型,并给出从当前位置到最优停车位的行驶轨迹的仿真结果。

整体求解过程概述(摘要)

  自动泊车系统可以通过车辆周身搭载的传感器测量车身与周围环境之间的距离和角度,收集传感器数据计算出操作流程,同时调整方向盘的转动实现停车入位。因此,自动泊车技术是比较实用的一项功能,自动泊车技术有助于解决人口密集城区的一些停车和交通问题,驾驶者不用再担心因技术不过关而泊不好车。
  本文针对自动泊车问题,主要通过建立 A**模型,应用拟合算法及微分方程参数估计实现三种不同泊车位置下小车行驶路径轨迹的拟合,及对最小的转弯半径和曲率变化率的相关求解。
  针对问题一,我们根据题目中的方向盘最大转角,最大转速等数据来确定控制点位置,计算出前轮的最大转角;通过相关公式可求出最小转弯半径,再通过假设无人车做匀加速直线运动列不等式关系组可求最短路径;最后,通过拟合算法分三部分来讨论曲率相对路径长度的变化率。
  针对问题二,以车库入口为无人车初始位置,基于 A*算法,可以获得无人车从起点到终点的几何路径轨迹;再通过曲线差值法来求出轨迹规划进而求解出位置,速度,加速度及加加速度;最后,再求出角速度及角加速度。
  针对问题三,我们建立了基于蚁群算法的泊车模型。根据停车位的空闲状况,首先规划了合适的泊车轨迹,建立出相应的泊车模型,得到泊车过程中所需的路程及时间。我们以汽车在倒车过程中的旋转角度来辅助我们判断 3 种不同的倒车情况,并以此计算三类情况下所需要的倒车时长,并通过系统的将无人车在直线弯道倒车入库各环节的时间汇总,在已知空余车位的情况下寻求最优解,从而得到整体的停车规划路线,然后对模型进行优化。
  针对问题四,我们依据前三问所求得的数据,建立基于蚁群算法的动态泊车模型。由于车辆的进入和离开,导致停车位会被随机占用或释放,在问题一和问题二中我们可以知道最小转弯半径,曲率变化,各个时刻位置速度等相关参数,根据无人车选择不同的停车位,当可用停车位数量不变情况下,建立数学模型,建立无人车泊车轨迹规划模型,得出无人车泊车策略,并进行仿真实验。

模型假设:

  为了便于考虑问题,我们在不影响模型的准确性的前提下,作出下面的几项假设:
  (1)假设在加速阶段,无人车做匀加速运动,在减速阶段,无人车做匀减速运动;
  (2)假设所有转弯过程车做匀速运动且运动轨迹均为圆弧;
  (3)假设轮胎与地面的摩擦消耗的时间忽略不计;并且忽略无人车在垂直地面的方向上的运动;
  (4)假设无人车不受转向系统相关的影响,直接用前轮转角作为输入;
  (5)忽略车辆受到的空气阻力;车辆与地面保持良好的滚动摩擦;
  (6)假设蚁群算法中只考虑信息素浓度对蚂蚁选择路径的影响。

问题分析:

  针对问题一
  本题主要研究根据给出的无人车模型的数据,计算车辆最小转弯半径,加速到最大限制速度的行驶距离,以及转弯时路径上曲率相对路径长度的变化率大小限制条件。首先,我们根据题目中无人车轴距,轮间距,方向盘最大转角,最大转速等已知数据来确定控制点位置,进一步计算出前轮的最大转角;通过相关公式可求出最小转弯半径,再通过假设无人车做匀加速直线运动列不等式关系组可求最短路径;最后,通过拟合算法分三部分讨论曲率相对路径长度的变化率的影响。
  针对问题二
  本题主要研究了平行泊车系统的路径规划方法,首先根据车辆参数计算出理论可行泊车起始区域;然后分析对比了多种平行泊车路径规划方法的优缺点,最终选取了曲率连续且易于车辆跟踪的等速偏移和正弦曲线的叠加曲线作为此次泊车路径,以车库入口为无人车初始位置,针对车位尺寸较小情况规划了泊车姿态调整,讨论了泊车过程出现障碍物时的路径选取;最后进行了路径仿真分析,验证了路径的可行性。基于 A*算法,可以获得无人车从起点到终点的几何路径;再通过曲线差值法轨迹规划和 Lingo 软件编写程序来求解位置,速度,加速度和加加速度;最后再求角速度和角加速度。
  针对问题三
  本题主要研究了题目需要需要根据停车位现有的状况,建立相应的泊车模型,基于蚁群算法,计算出较优停车位,并得出从当前位置到停车位的轨迹。得到泊车过程中所需时间,首先需要得到整个行驶过程中所需要经过的路段及路段对应的时间,同时需要汽车在倒车过程中的倒车时长,我们以汽车在倒车过程中的旋转角度来确定在不同的倒车情形下,所需要的倒车时长,并通过系统的将无人车在直线弯道倒车入库各环节的时间汇总,在已知空余车位的情况下寻求最优解,从而得到整体的停车规划路线。
   针对问题四
  本题主要研究了每小时内从入口进入和出口离开停车场的车辆均为 30 辆情况下无人车到最优停车位的行驶轨迹,由于车辆的进入和离开,导致停车位会被随机占用或释放,在问题一和问题二中我们可以知道最小转弯半径,曲率变化,各个时刻位置速度等相关参数,根据无人车选择不同的停车位,当可用停车位数量不变情况下,建立数学模型,建立无人车泊车轨迹规划模型,得出无人车泊车策略。现有的基于对路径规划问题的相关的算法研究主要包含 Dijkstra 算法、遗传算法、D** 算法、A** 算法以及粒子群算法等。我们针对实际的停车场环境,进行相关的道路规划,首先对实际的停车场的基本环境进行建模,根据无人车车辆的运动学模型,基于蚁群算法进行路径规划,采用垂直泊车、平行泊车、倾斜泊车三种路径规划方法进行泊车,基本做出车辆安全无碰的泊车入位。

模型的建立与求解整体论文缩略图

在这里插入图片描述
在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

程序代码:(代码和文档not free)

The actual procedure is shown in the screenshot

clc
clear

mdl_puma560%调出puma560 DH模型作为实验对象
t=[0:0.05:2];%轨迹,步长0.05

T1 = transl(0.4,0.2,0)*trotx(pi);%位移*旋转,创建齐次变换
T2 = transl(0.4,-0.2,0)*trotx(pi/2);

q1 = p560.ikine6s(T1);
q2 = p560.ikine6s(T2);

qq=jtraj(q1,q2,t);%根据各节点,生成轨迹
Tqq=p560.fkine(qq);

qT=p560.jtraj(T1,T2,t);%根据节点矩阵,生成轨迹
Tqt=p560.fkine(qT);

%笛卡尔运动
%笛卡尔空间中直线运动,生成从SE3空间两点间直线的一系列中间位置,结果表达为4*4齐次换矩阵
Ts=ctraj(T1,T2,length(t));
qs=p560.ikine6s(Ts);

figure(1)%绘制各关节角度
for i=1:6
      subplot(2,3,i)
      plot(t, qq(:,i))
      hold on;
      plot(t, qT(:,i))
      plot(t, qs(:,i)) 
      legend('空间-根据各节点规划','节点空间-根据位姿规划','笛卡尔空间')
      hold off;
end

figure(2)
pq=transl(Tqq);%提取旋转矩阵中的位移部分
pT=transl(Tqt);
ps=transl(Ts);
%依次是 '节点空间-根据各节点规划','节点空间-根据节点规划','笛卡尔空间'
subplot(3,1,1)
plot3(pq(:,1),pq(:,2),pq(:,3))
subplot(3,1,2)
plot3(pT(:,1),pT(:,2),pT(:,3))
subplot(3,1,3)
plot3(ps(:,1),ps(:,2),ps(:,3))

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/391447.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

又一新闻,Meta研发了超越chatGPT的新平台LLAMA

一、Meta 全新大语言模型 LLaMA 正通过种子公开发放2 月 24 日,Meta 公司发布了新的大模型系列 —— LLaMA(Large Language Model Meta AI)。Meta 宣称,LLaMA 规模仅为竞争对手 ChatGPT 的“十分之一”,但性能却优于 O…

Win10安装MySQL5.7.22 解压缩版(手动配置)方法

1.下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads 直接点击下载项 下载后: 2.可以把解压的内容随便放到一个目录,我的是如下目录(放到C盘的话,可能在修改ini文件时涉及权限问 题,之后…

第13章 二叉树模型及其扩展

这学期会时不时更新一下伊曼纽尔德曼(Emanuel Derman) 教授与迈克尔B.米勒(Michael B. Miller)的《The Volatility Smile》这本书,本意是协助导师课程需要,发在这里有意的朋友们可以学习一下,思…

lattice

Chinese NER Using Lattice LSTM 阅读笔记_Ono_online的博客-CSDN博客 【NER-1】-2018 ACL Lattice-LSTM_latticelstm代码_应有光的博客-CSDN博客 lattice model(结合上面两个博客来看) 18分钟彻底搞懂LSTM网络原理,NLP,深度学习,自然语言处理_哔哩哔哩_bilibili 如何从RNN起…

无代码时代洪流,高灵活,所见即所得

发布的《2022年中国低代码/零代码行业研究报告》表明,在最近的一项调查中,超过90%的企业用户都希望能够使自己的产品开发更加灵活和有效,并且希望能够通过减少开发费用来优化其投入产出比。从众多研究机构的正面评价来看&#xff…

react-swipeable-views轮播图实现下方的切换点控制组件

本文是react通过react-swipeable-views创建公共轮播图组件的续文 上一文 我们创建了这样的一个轮播图组件 但我们已经看到的轮播图 下面都会有小点 展示当前所在的位置 但react-swipeable-views 并没有直接提供 我们需要自己去编写这个组件 我们在components下的 rotationCh…

如何用R语言在生物群落生态学中的数据统计分析?

R 语言作的开源、自由、免费等特点使其广泛应用于生物群落数据统计分析。生物群落数据多样而复杂,涉及众多统计分析方法。本课程以生物群落数据分析中的最常用的统计方法回归和混合效应模型、多元统计分析技术及结构方程等数量分析方法为主线,通过多个来…

文件变成chk如何恢复正常

许多人不知道chk文件是什么?其实它是用户在使用“磁盘碎片整理程序”整理硬盘后所产生的“丢失簇的恢复文件”,而在u盘、内存卡等移动设备读取数据过程中,由于断电或强制拔出也容易产生大量的chk文件。那么文件变成chk如何恢复正常呢&#xf…

A/B测试实践全总结

一:基本概念网站设计中,我们经常会面临多个设计方案的选择,比如某个按钮是用红色还是用蓝色,是放左边还是放右边。传统的解决方法通常是集体讨论表决,或者由某位专家或领导来拍板。虽然传统解决办法多数情况下也是有效的,但A/B 测试(A/B Testing)可能是解决这类问题的一个更好的…

小型双轮差速底盘双灰度循迹功能的实现

1. 功能说明 在机器人车体上安装2个 灰度传感器 ,实现机器人按照下图所指定的路线进行导航运动,来模拟仓库物流机器人按指定路线行进的工作过程。 2. 使用样机 本实验使用的样机为R023e样机。 3. 功能实现 3.1 电子硬件 在这个示例中,我们采…

[Linux入门篇]一篇博客解决C/C++/Linux System Call文件操作接口的使用

目录 0.前言 1.C / C ->文件操作 1.1 C语言文件操作 1.1.1 C语言文件打开/关闭/写入 1.1.2 C语言文件的追加操作 1.1.3 C语言文件的读取 1.2 C语言文件操作 1.2.1 C文件打开 / 关闭 / 写入 1.2.2 C文件读取 1.2.3 文件追加 2.三个默认输入输出流 2.1 C语言中的三…

#gStore-weekly | gBuilder功能详解之项目管理

1. gBuilder介绍 我们知道知识图谱整个生命周期分为构建、存储管理与应用三个阶段。其中我们之前介绍的图数据库gStore对应解决的是知识图谱的存储与管理这个阶段问题。实际上知识图谱项目中大部分时间都花在知识图谱构建阶段,虽然知识图谱构建不直接体现价值&…

Hermite插值及其Julia实现

文章目录基本原理算法实现无论是Newton插值还是Lagrange插值,都只能在数值本身上满足插值函数与数据节点的重合,Hermite插值则要求其导数值相等。 基本原理 设在节点a⩽x0⩽x1⩽…⩽xn⩽ba\leqslant x_0\leqslant x_1 \leqslant\ldots\leqslant x_n\le…

ESP32使用TCP HTTP访问API接口JSON解析获取数据

ESP32使用TCP HTTP访问API接口JSON解析获取数据API接口代码解析获取时间代码烧录效果总结API接口 单片机常用的API接口基本都是返回的一串JSON格式的数据,这里以ESP32联网获取时间信息作为获取API数据的示例,以便后续移植使用。 很多功能性的API接…

UML-活动图以及PlantUML绘制

介绍 活动图(英语:activity diagram)是工作流的图形化表示。活动图主要由活动和动作构成,也可以支持分支选择、迭代、并行。在 UML 中,活动图主要用于为计算性和组织性过程(即工作流)建模&…

PaddlePaddle本地环境安装(windows11系统)

写在前面: 这里是关于win11安装PaddlePaddle的步骤和方法,建议参考官方的方法。截止2023年3月份,PaddlePaddle的版本是2.4.2。 官方参考:飞桨PaddlePaddle快速安装使用方法 建议使用Anaconda安装 ,关于Anaconda创建环境的可以借鉴:深度学习Anaconda环境搭建(比较全面)…

Exposure X7胶片滤镜调色插件免费版下载

ps是我们为图片进行调色的一种必要手法,我们可以通过添加滤镜、使用曲线、调整色相、饱和度等ps手法来对图片加以修饰。下面这篇文章就来为大家介绍一下ps调色方法主要有,ps调色插件怎么用的相关知识。 Exposure X7是一款特别好用的胶片滤镜模拟软件&am…

ESP32设备驱动-MicroSD Card驱动

MicroSD Card驱动 1、SDCard介绍 SD卡是Secure Digital Card卡的简称,直译成汉语就是“安全数字卡”,是由日本松下公司、东芝公司和美国SANDISK公司共同开发研制的全新的存储卡产品。SD存储卡是一个完全开放的标准(系统),多用于MP3、数码摄像机、数码相机、电子图书、AV器…

代码看不懂?ChatGPT 帮你解释,详细到爆!

偷个懒,用ChatGPT 帮我写段生物信息代码如果 ChatGPT 给出的的代码不太完善,如何请他一步步改好?网上看到一段代码,不知道是什么含义?输入 ChatGPT 帮我们解释下。生信宝典 1: 下面是一段 Linux 代码,请帮…

开学季平价好用电容笔有哪些?ipadpro触控笔推荐

众所周知,苹果原装的Pencil的售价由于比较高,所以很多用户都无法入手。那么,市场上会不会有一款价格上只有苹果Pencil五分之一左右、但功能几乎相同的电容笔?事实上,确实存在。国内的平替电容笔,不管是压感…