02-02: "恩智浦"杯智能汽车麦克纳姆车(H车)非涉密部分详解
版权声明:Copyright © 2016-2019,Stardust Studio,All Rights Reserved
序言——凡尘
(1)笔者的驱动芯片为LPC54606,但不限于stm系列单片机、51、K6X、LPC、树莓派等单片机;
(2)欢迎各位大牛投稿补充和完善;
(3)笔者一向崇尚开源分享精神,对于关键非涉密技术除外技术将会开源分享给各位读者;
(4)本文参考自参赛队伍—工程五队“第十四届全国大学生‘恩智浦’杯智能汽车竞赛“技术报告和技术检查表,笔者为该队队长、星尘工作室室长对上述文本享有修改和撰写的权利;
(5)本文采用的是单目摄像头方案;
(6)方案主板详细电路图和驱动程序及模块详解文档等,为内部涉密文档仅供内部使用,不允予公开;

本文将从以下几个方面展开详解:
1.摘要
2.系统总体设计
3.智能小车机械结构调整与优化
3.1 车轮改装
3.2编码器安装
3.3电机增加散热片辅助散热
3.4增加双拉桅杆
3.5电机驱动板固定
3.6防撞挡板
3.7防撞侧板
4.智能车控制硬件设计说明
4.1电源稳压模块
4.2编码器驱动模块
4.3电机驱动模块
4.4.接口及外设
5.智能车控制软件设计说明
5.1信标灯提取及优化处理
5.2PID控制算法介绍
6.开发工具、制作、安装、调试过程说明
6.1开发调试工具
6.2 LCD液晶屏、按键、拨码开关调试
6.3蓝牙及调试
7.车模主要参数
1.摘要
本系统以LPC为核心,软件平台为IAR EWARM开发环境,车模为组委会统一提供的H车模(麦克纳姆车)。
本文介绍了整个智能车系统的硬件和软件设计开发过程。使用LPC作为主控芯片,用安装在车头的摄像头来采集赛场信息,用编码器检测车模速度。整个系统的工作原理是由摄像头采集赛场信息,与编码器采集的车模速度信息一起送给单片机,通过程序设计控制优化算法,控制电机的转速以达到车模在赛道上的稳定高速行驶。
2.系统总体设计
本车以LPC为核心处理器,对各个模块进行协调控制。摄像头为核心传感器,所获数据经过单片机的分析计算后对信标进行定位,所得位置以X和Y的坐标形式体现,X用与横向移动,Y则反应距离远近,是加减速的依据,Y与十字准心偏差和X与十字准心偏差的余切的绝对值W作为旋转分量的参数。此外,编码器获得对速度的反馈,通过PID算法,使速度稳定在给定值附近并能跟随给定值的变化。考虑对抗因素,智能车还能实现倒车,原地旋转等功能。
根据智能车系统的基本要求,我们设计了系统结构图,如图下图。在满足比赛要求的情况下,力求系统简单高效,因而在设计过程中尽量简化硬件结构,减少因硬件而出现的问题。

3.智能小车机械结构调整与优化
3.1 车轮改装
车轮上小套筒原先为橡胶材质,对地面摩擦力太小,导致车子跑动中会打滑,所以将材质更换为了发泡海绵。
3.2编码器安装
编码器的存在是对调速系统的重要保证,因此编码器的安装正确与否也至关重要。编码器的安装要保证齿轮完美啮合,齿轮间间隙合适,过大易打坏齿轮,过小会增大传动阻力。同时也要保证两个齿轮传动轴平行,使力的传动均衡可靠。
3.3摄像头、电池和主板的固定及改装
摄像头内加装红外滤光片,对信标的红外进行识别,而且对未亮信标进行识别,传递障碍信息。相邻被点亮信标间距离长远不同,这要求摄像头需要有足够大的视野,常用广角摄像头。在安装位置上,摄像头应尽可能高,以扩大视野,从摄像头的具体高度则在避障参数测量时确定。摄像头位置一旦确定,应牢牢固定好,确保位置不发生改变。摄像头放置在碳素杆上方,这样可增大摄像头视野,达到良好的采图效果。通过魔术贴和扎带可将电池牢固地贴附在车身上,而不至于在车体高速行进的过程中将电池甩出。余下的位置用于安放主板。
3.3电机增加散热片辅助散热
在温度不是很高时散热片作用效果比较明显。
3.4增加双拉桅杆
在小车运行过程中可能会发生侧翻情况,通过双拉桅杆可对摄像头所放置的碳素杆进行加固。
3.5电机驱动板固定
通过三根塑料柱将驱动板撑起并固定。
3.6防撞挡板
智能车在实际运行的过程中有可能会出现撞击障碍物的情况,因此在前端加装了撞击缓冲挡板(实际应当将前驱两个轮子挡住,避免对前轮造成刚性冲击)。
3.7防撞侧板
在与其它车进行竞速过程中可能会遭受侧向撞击,为防止摄像头主杆和主控板被撞坏,侧板采用曲面3d打印挡板。
4.智能车控制硬件设计说明
4.1电源稳压模块
稳压模块采用TPS 7333和TPS7350分别作为3.3V和5V的稳压电源。TPS7333为摄像头、电位器、、拨码开关提供电压。+5V为陀螺仪、编码器、单片机供电,此外还为E3Z-D62光电开关+12V提供输入电压,+12V使用B0512S DC-DC模块为驱动芯片提供电压:


4.2编码器驱动模块

4.3电机驱动模块
驱动电路功率元件为8片Infineon公司生产的opti-MOS 管IRLR7843。其具备三个关键的能效优值(FOM),行业最低的导通电阻、最低的栅极电荷以及最低的输出电容等。无论在任何负载条件下,都可使MOSFET功耗降低20%,同时达到最高的性能。通过额定工作电流可以轻易达到100A以上,大大提高了电动机的工作转矩和转速。该驱动器主要由以下部分组成:PWM号输入接口、隔离电路、逻辑换向电路、死区控制电路、电源电路、上桥臂功率 MOSFET 管栅极驱动电压泵升电路、功率opti-MOS栅极驱动电路、桥式功率驱动电路、缓冲保护电路等。电路原理图如图所示:

4.4.接口及外设


5.智能车控制软件设计说明
5.1信标灯提取及优化处理
我们的总体设计思想是:首先通过摄像头判断信标位置,通过单片机计算出的误差值并通过PID算法输出横纵向移动速度和自转速度,同时根据信标远近控制速度输出。
5.2PID控制算法介绍
在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称 PID 调节。PID 控制器问世至今已有近 70 年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用 PID 控制技术最为方便。即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用 PID 控制技术。PID控制,实际中也有 PI 和 PD 控制。
PID控制器是一种线性控制器,它根据给定值与实际输出值构成控制偏差。
将偏差的比例(P)、积分(I)和微分(D)通过线性组合构成控制量,对被控对象进行
控制,故称PID控制器:

比例调节作用(P):是按比例反应系统的偏差,系统一旦出现了偏差,比例调节作用用以减少偏差。比例作用大,可以加快调节,减少误差,但是过大的比例使系统的稳定性下降,甚至造成系统的不稳定。
积分调节作用(I):是使系统消除稳态误差,提高误差度。当有误差时,积分调节就进行,直至无误差,积分调节停止,积分调节输出一常值。积分作用的强弱取决与积分时间Ti,Ti 越小,积分作用就越强。反之Ti 大则积分作用弱,加入积分调节可使系统稳定性下降,动态响应变慢。
微分调节作用(D):微分作用反应系统偏差信号的变化率,具有预见性,能预见偏差变化的趋势,因此能产生超前的控制作用,在偏差还没有形成之前,已被微分调节作用消除。因此,可以改善系统得动态性能。在微分时间选择合适的情况下,可以减少超调,减少调节时间。微分作用对噪声干扰有放大作用,因此过强的加微分调节,对系统抗干扰不利。
我们小车采用了下面两种PID控制算法:
(1)位置式PID控制算法
用矩形数值积分代替上式中的积分项,对导数项用后向差分逼近,得到数字PID控制器的基本算式(位置算式):

其中x0为偏差信号为 0 时的控制作用,是控制量的基础。
其中T是采样时间。
(2)增量式PID控制算法
在用计算机控制的离散系统中,PID的算式为:

那么:

两式相减得增量式PID的算式:

反映的是第k 次和第 k-1 次之间的增量,而且可以看出,使用增量式 PID只需要保存前两次的误差即可。因此代码简单高效,并且无积分的累加误差。
增量型算法与位置型算法相比,具有以下优点:
(a)增量型算法不需要做累加,控制量增量的确定仅与最近几次误差采样值有关,计算误差或计算精度问题,对控制量计算影响较小。而位置型算法要用到过去的误差的累加值,容易产生大的累加误差。
(b)增量型算法得出的是控制量的增量,误动作影响小,必要时通过逻辑判断限制或禁止本次输出,不会严重影响系统的工作,而位置型算法的输出是控制量全量输出,误动作影响大。
根据我们实际情况的调试,发现单一套用PID公式并不能达到预期的效果。适当对PID公式进行优化可以达到更好的效果。根据智能车系统提出的改进方法有不完全微分、微分先行、前馈控制等。对智能车算法的采用最好是知其道,才能达到用其妙的效果,根据具体的情况使用PID,不能完全按照理论照本宣科,墨守成规。
运用PID控制的关键是调整 KP、KI、KD 三个参数,即参数整定。PID 参数的整定方法有两大类:一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数;二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。由于智能车系统是机电高耦合的分布式系统,并且要考虑赛道的具体环境,要建立精确的智能车运动控制数学模型有一定难度,而且我们对车身机械结构经常进行修正,模型参数变化较为频繁,理论计算整定法可操作性不强,最终我们采用了工程整定方法。
6.开发工具、制作、安装、调试过程说明
6.1开发调试工具
软件开发工具选用的是 Embedded Workbench for ARM。Embedded Workbench for ARM 是 IAR Systems 公司为ARM微处理器开发的一个集成开发环境(下面简称 IAR EWARM)。比较其他的ARM开发环境,IAR EWARM具有入门容易、使用方便和代码紧凑等特点。它为用户提供一个易学和具有最大量代码继承能力的开发环境,以及对大多数和特殊目标的支持。嵌入式IAR Embedded Workbench有效提高用户的工作效率,通过IAR的DeBug工具,可以大大节省软件调试时间。调试界面如图所示:

6.2 LCD液晶屏、按键、拨码开关调试
在小车的调试过程中需要不断地修改变量的值来达到整定参数的作用,对此我们选用了液晶配合按键和拨码开关的调试方法。此外,比赛的时候,修改参数我们同样用这个模块进行修改。
6.3蓝牙及调试
赛车在同样的赛道上走过的路都是不一样的,所以大家无论怎么考虑车的状态都是不够完全的,因此需要有一套完备的方案来解决对运行中的车辆进行实时监控。 为了解决这个问题,我们使用HC-05蓝牙模块配合上位机进行实时观测车模运行状态。
7.车模主要参数

后记——凡尘
时间匆忙,未能用篇幅举代码实例帮大家理解和校对错误,更多的是结构和整体压缩的内容,如有错别字和内容不合理的地方欢迎大家批评指正,如有想深入探讨或是项目需求的朋友欢迎加入QQ群:QQ群:
星尘Arduino社区:630581178
星尘STM8/32社区:700155855
笔者邮箱:fanchen995@gmail.com