实验一 无人驾驶汽车系统实验
一、实验目的
1.了解无人驾驶系统的主要设备;
2.熟悉无人驾驶系统的构成;
3.理解无人驾驶系统的工作原理。
二、实验原理
无人驾驶系统基本结构如图1-1所示,主要由感知系统、决策系统和执行系统组成。感知的任务是利用摄像头、激光雷达、毫米波雷达和超声波等车载传感器以及V2X通信系统感知周围环境,通过提取路况信息、检测障碍物、红绿灯状态和交通标志等信息,为无人驾驶提供决策依据。决策系统的任务是根据全局行车目标、自车状态 及环境信息等,决定采用的驾驶行为及动作的时机。执行系统主要包括线控转向、线控油门和线控制动等系统组成,主要完成各种控制指令的执行。

图1-1无人驾驶系统基本结构图
三、实验仪器设备和器材
1.无人驾驶电动实验车1辆
四、实验要求
1.预习要求:
阅读、理解实验指导书的实验原理,并思考回答以下问题:
a)无人驾驶系统的基本组成?
b)无人驾驶系统的关键设备?
2. 实验内容:
通过对无人驾驶汽车实车的观摩,画出该无人驾驶汽车的结构图,了解无人驾驶系统的主要设备,熟悉无人驾驶系统的构成,理解无人驾驶系统的工作原理。
五、实验步骤
1.了解无人驾驶电动实验车的主要设备;
2.熟悉无人驾驶电动实验车的构成;
3.理解无人驾驶电动实验车的工作原理。
六、实验思考题
无人驾驶电动实验车如何实现对行人和红绿灯的识别?
七、实验报告要求
实验报告在内容栏应主要包括如下几部分:
1、实验要求
2、实验目的
3、所需设备(要求图文并茂,并有对应的文字说明。)
4、实验步骤(逐项记录调试过程)
5、实验结果(对实验数据统计、整理,将实验结果用图表和文字进行分析,并给出结论。)
6、程序流程图和实验程序(严格按照流程图撰写规范进行撰写)
7、实验心得(可以提出该实验存在的问题、本人尚不明白的问题、建议和意见等)
实验二 无人驾驶汽车的路径规划实验
一、实验目的
1.了解无人驾驶系统路径规划的原理;
2.熟悉无人驾驶路径规划的几类主要算法
3.掌握无人驾驶路径规划A*算法。
二、实验原理
无人驾驶系统中全局路径规划是根据已知地图搜索一条从起点到终点无碰撞的最优全局路径。其中最优可以是时间,也可以是距离。A*算法是一种很常用启发式的路径查找和图形遍历算法。由于A*算法的搜索具有方向性,它有较好的性能和准确度。它的核心方法过设计搜索函数f(s)来计算每个节点的优先级,数学表达式为:f(s)=g(s)+h(s)。其中g(s)表示初始节点到当前节点的距离,h(s)表示当前节点到目标节点的距离。函数之间的关系可以由图2-1表示。

图2-1搜索函数之间的关系
A*算法的伪代码可表述如下:
*初始化open_set和close_set;
*将起点加入open_set中,并设置优先级为0(优先级最高);
*如果open_set不为空,则从open_set中选取优先级最高的节点n:
*如果节点n为终点,则:
*从终点开始逐步追踪parent节点,一直达到起点;
*返回找到的结果路径,算法结束;
*如果节点n不是终点,则:
*将节点n从open_set中删除,并加入close_set中;
*遍历节点n所有的邻近节点:
*如果邻近节点m在close_set中,则:
*跳过,选取下一个邻近节点
*如果邻近节点m也不在open_set中,则:
*设置节点m的parent为节点n
*计算节点m的优先级
*将节点m加入open_set中
三、实验仪器设备和器材
1.安装Matlab或者其它编程软件的电脑1台
四、实验要求
1.预习要求:
阅读、理解实验指导书的实验原理,并思考回答以下问题:
a)无人驾驶车辆的路径规划的分类以及两种类型适用的场景?
b)常用的全局路径规划算法主要有哪几类?
2. 实验内容:
通过对无人驾驶车辆路径规划算法的深入学习,了解几种常见的路径规划算法的发展过程及相互之间的关系,熟练掌握A*算法,通过编程用A*算法解决一个小场景下的路径规划问题。
五、实验步骤
1.熟练掌握A*算法的原理;
2.构建一个不小于10*10的栅格结构地图,设定一个起始点坐标O(ox,oy),D(dx,dy);
3.在地图上采用A*算法,求解从O点到D点的最短距离路径;
六、实验思考题
有其它什么方法可以解决无人驾驶汽车在运行过程中对于路径规划实时性的需求?
七、实验报告要求
实验报告在内容栏应主要包括如下几部分:
1、实验要求
2、实验目的
3、所需设备(要求图文并茂,并有对应的文字说明。)
4、实验步骤(逐项记录调试过程)
5、实验结果(对实验数据统计、整理,将实验结果用图表和文字进行分析,并给出结论。)
6、程序流程图和实验程序(严格按照流程图撰写规范进行撰写)
7、实验心得(可以提出该实验存在的问题、本人尚不明白的问题、建议和意见等)
实验三 无人驾驶的路径跟踪实验
一. 实验目的
1.了解无人驾驶运动控制的基本内容和常用算法;
2.熟悉无人驾驶汽车运动学模型的构建方法;
3.掌握纯跟踪算法的基本原理和实现方法。
二. 实验原理
无人驾驶汽车的运动控制根据路径规划结果和车辆内部的各种传感器信息,生成对车辆油门、制动和方向等的控制命令,其目的是在保证车辆操纵稳定性的前提下,不仅使车辆精确地跟踪期望道路,同时使车辆具有良好的动力性和乘坐舒适性。无人驾驶汽车的运动控制可以分为纵向控制和横向控制。横向控制主要是指通过对方向盘转角的控制,实现无人驾驶汽车的路径跟踪。无人驾驶汽车横向控制(路径跟踪)的常用算法主要包括纯跟踪算法、Stanley算法、PID算法和MPC算法等。
车辆根据转向方式不同,可分成阿克曼转向型和差速转向型,其中大部分车辆采用阿克曼转向。阿克曼转向型车辆底盘示意图如图3-1所示,通过几何关系可得
左前轮转角:

右前轮转角:

其中,L为车辆轴距,R为转弯半径,B为车轮距

图3-1阿克曼转向底盘示意图
通过模型简化,可将双轨车辆模型简化成如图3-2所示的单轨自行车模型,前轮转角
求解公式如下:


图3-2单轨自行车模型
阿克曼转向车辆因为是前轮转向,会受到最大前轮转角(对应车辆最小转弯半径)等约束。在阿克曼转向车辆特性的基础上建立运动学模型,如图3-3所示,根据几何关系可得


图3-3基于阿克曼转向的车辆运动学模型
进一步求解车辆运动学模型的横摆角速度,如图3-4所示,可得


图3-4车辆运动学模型
将车辆运动学模型改写成矩阵形式,可得

纯跟踪算法是基于阿克曼转向车辆运动学模型,以期望路径上距后轮中心点前方一定距离(前视距离)的某一目标点为预瞄点,根据几何关系计算出车辆的前轮转角。纯跟踪算法算法简单,容易实现,但大曲率路径的跟踪效果较差,高速度时跟踪效果较差。
纯跟踪算法示意图如图3-5所示,车辆采用单轨自行车模型,点
为预瞄点,
为后轮中心点到预瞄点的距离,
为后轮中心点与预瞄点连线和车辆当前航向的夹角。通过控制前轮转角
可以使车辆后轮中心点沿一条半径R且连接车辆后轮中心和预瞄点的圆弧行驶。
根据几何关系和正弦定理,可得

即

根据单轨自行车模型,前轮转角
的求解公式为:


图3-5纯跟踪算法示意图
三、实验仪器设备和器材
1. 安装Matlab(2018b以上版本)及CarSim2019.1的电脑 1台
四、实验要求
1.预习要求:
阅读、理解实验指导书的实验原理,并思考回答以下问题:
a)无人驾驶汽车的运动学模型如何构建?
b)在纯跟踪算法中无人驾驶汽车的角速度如何计算?
2. 实验内容:
使用CarSim提供仿真场景和对象,利用Matlab仿真软件,构建无人驾驶汽车(或轮式移动机器人)运动学模型,仿真采用纯跟踪算法,实现指定期望路径的路径跟踪。
五、实验步骤
1.定义期望路径,并显示出期望路径,期望路径数学表达式如下:

2.构建无人驾驶汽车(或轮式移动机器人)的运动学模型;
3.设计基于纯跟踪算法的路径跟踪控制器;
4.使用Matlab编写纯跟踪算法控制器。控制器的输入应包含基本车辆状态及期望路径信息(如车速、车辆位置、当前位置与期望路径偏差等),输出可以是前轮转角和车速或车辆加速度增量等;
5.使用CarSim设置仿真对象及仿真环境。需要设置仿真车辆的车型,然后在Precedure中设置道路环境;
6.使用Simulink搭建仿真系统模型。需要包含CarSim导入的车辆对象(在Simulink中点击库浏览器,搜索CarSim,找到CarSim S-Function并拖入Simulink)、控制器(新建S-Function模块,双击打开S-Function在S-Function名称中填入步骤4编写好的控制器名称)、观测器Scope;
7.进行CarSim和Simulink联合仿真。在CarSim首页“Run Control with Simulink”的Models选项中选择Models: Simulink,点击进入,在“Import Channels”和“Export Channels”中设置仿真模型的输入及输出(CarSim的输出为纯跟踪控制器的输入)。最后回到首页点击“Send to Simulink”,在CarSim界面点击“Run Now”或在Simulink界面中点击“运行”;
4.调整至少3个前视距离的值,对比跟踪效果,分析前视距离对跟踪效果的影响。
注:具体操作和程序请参考:
“https://ww2.mathworks.cn/help/robotics/examples/path-following-for-differential-drive-robot.html”。
六、实验思考题
1.前视距离对跟踪效果的影响。
2.车辆速度对前视距离的影响。
七、实验报告要求
实验报告在内容栏应主要包括如下几部分:
1、实验要求
2、实验目的
3、所需设备(要求图文并茂,并有对应的文字说明。)
4、实验步骤(逐项记录调试过程)
5、实验结果(对实验数据统计、整理,将实验结果用图表和文字进行分析,并给出结论。)
6、程序流程图和实验程序(严格按照流程图撰写规范进行撰写)
7、实验心得(可以提出该实验存在的问题、本人尚不明白的问题、建议和意见等)