实验六 自动驾驶建模与仿真
【实验目的】
- 了解Matlab/Simulink软件环境,熟悉Simulink建模步骤;
- 了解车辆运动控制的基本原理,学会简单的车辆运动控制建模及仿真;
- 了解自动驾驶建模的基本过程,了解典型ADAS系统模型的应用特点。
- 了解自动驾驶相关函数,认识自动驾驶函数的功能及用途。
【实验性质】
验证性实验。
【实验要求】
Matlab2020+软件。
【实验内容】
- 操作Matlab软件,学会进行Simulink图形化建模。
- 调试车辆运动控制模型。
- 学习典型ADAS系统,分析其功能模块组成。
- 调用自动驾驶函数进行自动驾驶场景仿真。
【实验步骤】
1、车辆运动控制建模学习
(1)打开的车辆纵向运动控制模型,如下图所示:
打开Simulink工具箱(即“Library Browser”),在工具箱中查找模型中的图形符号,学习工具箱中模型库的使用方法。
运行上面的模型,查看并保存运行结果,选取两个运行结果截图贴在下面区域。
模块(示波器)名称: scope2 |
模块(示波器)名称: scope3 |
![]() |
![]() |
2、高级驾驶辅助系统(ADAS)建模学习
展开自动驾驶工具箱,可以发现里面有很多Matlab自带的案例,选择其一打开,分析其组成及执行过程。
3、自动驾驶场景练习
(1)模拟一辆汽车在S形道路上运动
在Matlab命令行窗口输入以下命令,在表格右列补充完善代码注释(手工书写):
s=drivingScenario; roadCenters=[-35,20,0;-20,-20,0;0,0,0;20,20,0;35,-20,0]; lm=[laneMarking('Solid','Color','w'); ... laneMarking('Dashed','Color','y');... laneMarking('Dashed','Color','y');... laneMarking('Solid','Color','w')]; ls=lanespec(3,'Marking',lm); road(s, roadCenters, 'Lanes', ls); car=vehicle(s, 'ClassID',1,'Position',[-35,20,0]); waypoints=[-35,20,0;-20,-20,0; 0,0,0;20,20,0; 35,-20,0]; speed=10; trajectory(car, waypoints, speed); plot(s); while advance(s) lbdry=laneBoundaries(car); end |
%定义驾驶场景 %设置道路中心 %设置车道标线 %设置车道规范 %在驾驶场景中添加道路 %在驾驶场景中添加静止车辆 %在驾驶场景中添加运动车辆 %设置车辆航路点 %设置车速 %创建车辆轨迹 %绘制驾驶场景 %仿真循环开始 %显示车辆边界 %仿真结束 |
|
姿态: ActorID:参与者标识 Position:参与者位置(单位m) Velocity:速度(单位m/s) Roll:横滚角(度) Pitch:俯仰角(度) Yaw:偏航角(度) AngularVelocity:角速度(度/s) |
运行结果如下图所示:
(2)模拟静止车辆和运动车辆在道路上行驶。
在Matlab命令行窗口输入以下命令,在表格右列补充完善代码注释(手工书写):
s=drivingScenario; roadCenters=[0,0; 10,0; 53,-20]; road(s, roadCenters, 'Lanes', lanespec(2)); stationaryCar=vehicle(s, 'Position',[25,-5.5,0], 'Yaw',-22); passingCar=vehicle(s); waypoints=[1,-1.5; 16.4,-2.5; 17.4,-2.8; 23.8,-2; 25,-2.5; 50,-16]; speed=5; trajectory(passingCar, waypoints, speed); plot(s, 'Waypoints', 'on'); rec=record(s); rec(1).ActorPoses(2); rec(end).ActorPoses(2); ans %while advance(s) % pause(0.01); %end %poses=actorPoses(s); |
%定义驾驶场景 %设置道路中心 %在驾驶场景中添加道路 %在驾驶场景中添加静止车辆 %在驾驶场景中添加运动车辆 %设置车辆航路点 %设置车速 %创建车辆轨迹 %绘制驾驶场景 %运行场景并记录 %显示车辆模拟开始姿态 %显示车辆模拟结束姿态 %姿态结构 %仿真循环开始 %停顿时间 %仿真结束 %获取交通参与者姿态 |
![]() |
姿态: ActorID:参与者标识 Position:参与者位置(单位m) Velocity:速度(单位m/s) Roll:横滚角(度) Pitch:俯仰角(度) Yaw:偏航角(度) AngularVelocity:角速度(度/s) |
运行结果如下图所
4、停车场路径规划
- 停车场停车路径规划(基于碰撞的路径规划)
在Matlab安装目录中搜索 parkingLotCostmap.mat 文件所在路径,并将该目录在Matlab地址栏中打开(设为当前路径)
在Matlab命令行窗口输入以下命令,在表格右列补充完善代码注释(手工书写):
data = load('parkingLotCostmap.mat'); costmap = data.parkingLotCostmap; figure; plot(costmap); vehicleDims = vehicleDimensions(4.5, 1.7); numCircles = 3; ccConfig = inflationCollisionChecker(vehicleDims, numCircles); costmap.CollisionChecker = ccConfig; figure; plot(costmap); startPose = [11, 10, 0]; goalPose = [31.5, 17, 90]; planner = pathPlannerRRT(costmap); refPath = plan(planner, startPose, goalPose); hold on; plot(refPath); |
%加载停车场文件 %下载车辆成本图 %设置图形窗口 %绘制车辆成本图 %设置车辆尺寸 %圆圈数 %检测碰撞 %重新配置成本图 %设置图形窗口 %绘制车辆成本图 %设置初始姿态 %设置目的姿态 %绘制车辆成本图 %设置初始姿态 %设置目的姿态 %创建路径规划器 %路径规划 %保存图形 %绘制路径规划 |
运行结果如下图所示:
- 驶出停车场路径规划(验证路径规划)
在Matlab安装目录中搜索 parkingLotCostmap.mat 文件所在路径,并将该目录在Matlab地址栏中打开(设为当前路径)。
在Matlab命令行窗口输入以下命令,在表格右列补充完善代码注释(手工书写):
data = load('parkingLotCostmap.mat'); costmap = data.parkingLotCostmap; plot(costmap); startPose = [4,4,90]; goalPose = [70,35,0]; planner = pathPlannerRRT(costmap); refPath = plan(planner, startPose, goalPose); isPathValid = checkPathValidity(refPath,costmap); transitionPoses = interpolate(refPath); hold on; plot(refPath,'DisplayName','Planned Path'); scatter(transitionPoses(:,1),transitionPoses(:,2),[],'filled', 'DisplayName','过渡姿态'); |
%加载停车场文件 %下载车辆成本图 %绘制车辆成本图 %设置初始姿态 %设置目的姿态 %创建路径规划器 %路径规划 %保存图形 %绘制路径规划 %绘制过渡姿态 |
运行结果如下图所示:
实验六 自动驾驶建模与仿真相关推荐
- 9.14 PreScan自动驾驶建模与仿真技术培训(第三期)
PreScan自动驾驶建模与仿真技术培训(第三期)_哔哩哔哩_bilibili 内存上的一个数据,prescan计算出来的,开发的重点不在于目标的探测,速度最快,不考虑雷达细节 可以反映一定细节 技术 ...
- 使用MATLAB/simulink与PreScan联合进行基于强化学习的自动驾驶系统设计与仿真
使用MATLAB/simulink与PreScan联合进行基于强化学习的自动驾驶系统设计与仿真 总论 环境配置 系统搭建 总论 使用MATLAB中的强化学习工具箱作为核心算法的建立工具,在simuli ...
- Apollo第二讲—apollo自动驾驶调试及仿真实践
1 自动驾驶开发流程 1.1 数据分析-使用DreamView调试工具--云实验操作指南 (1)云实验1:使用Dreamview播放离线数据包-Apollo调试工具 1) 内容概述 2) 命令合辑 启 ...
- Apollo星火计划学习笔记第二讲——自动驾驶调试及仿真实践
Apollo学习笔记 零.目录 一.自动驾驶的开发流程 1.1 引言 二.Apollo调试工具的使用 2.1 实验内容 2.2 实验流程 三.Apollo仿真工具的使用 3.1 实验内容 3.2 实验 ...
- 几款自动驾驶测试模拟仿真平台
如果你觉得还行的话,就点点文章末右下角的"好看"支持下 自动驾驶在真实的路面进行测试要面临着复杂多变的环境以及安全隐患,通过利用仿真模拟软件检测算法.也可以训练无人车基于虚拟数据或 ...
- ASAM:自动驾驶仿真测试标准引领者
转自中国汽车报网https://3w.huanqiu.com/a/c7d278/3xr6Dpyh0nc?agt=64 对于智能汽车发展来说,各项测试标准至关重要,这不仅决定着相关技术的发展水平,也攸关 ...
- 华为、腾讯、百度扎堆进入的自动驾驶仿真市场,到底藏着怎样的秘密?
文 | 魏启扬 来源 | 智能相对论(ID:aixdlun) 提到自动驾驶的商业竞争,车联网无疑是其中最为惨烈的一个领域,里面充斥着各种巨头博弈.屌丝逆袭的励志故事. 可是,自动驾驶赛道的复杂性远远不 ...
- 自动驾驶系统入门(八)- 自动驾驶仿真技术
1.什么是自动驾驶汽车 1.1 基本概念定义 1)自动驾驶汽车是通过搭载先进的车载传感器.控制器和数据处理器.执行机构等装置,借助车联网.5G和V2X等现代移动通信与网络技术实现交通参与物与彼此间的互 ...
- 自动驾驶仿真类初创企业信息梳理
引言 对于高阶自动驾驶来说,虚拟仿真测试是研发及测试验证过程中不可缺少的一个关键环节.并且虚拟仿真测试所占的比重也越来越大,虚拟仿真测试技术的发展进步,将直接影响到高阶自动驾驶技术商业化落地的时间. ...
最新文章
- 配置隧道模式的IPSec.×××
- 龙尚科技的生态秘诀:品质赢得信誉 互惠促成长久合作
- linux python保存mp4
- svg 点击 事件_使用 SVG 实现圆环日期选择器
- Python notes
- BOOST使用 proto 转换进行任意类型操作的简单示例
- python axis 0_Python之NumPy(axis=0/1/2...)的透彻理解
- Java 编程:如何提高性能?(简单总结篇)
- linux下命令行的使用:使用sed命令操作文件
- html频谱跳动效果,HTML5音频可视化频谱跳动代码
- 天下手游卡在获取服务器信息,天下手游召唤兽获取与洗练:新手必须知道的事情...
- 11.PHP-FPM pool
- 创客匠人知识付费SaaS系统功能介绍
- 网络广告公司的恐慌 XSS广告终结者(html5新特性)
- 一种用FFmpeg直接录屏并直播的方法
- java菜鸟mysql_十面阿里,菜鸟,天猫,蚂蚁金服面试精选73题:Java+Spring+MySQL+JVM.......
- 微信小程序时间轴demo_微信小程序时间轴实现方法示例
- 微软跟投,估值31.5亿美元的光量子计算公司刚刚完成4.5亿美元融资
- 不懂就问,苹果电脑格式化了能恢复数据吗?
- 过敏性鼻炎的治疗方法