17届智能车竞赛技术报告 | 北京科技大学无线充电组
Posted 卓晴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了17届智能车竞赛技术报告 | 北京科技大学无线充电组相关的知识,希望对你有一定的参考价值。
学 校:北京科技大学队伍名称:北京科技大学无线充电组
参赛队员:杨凯宁、 屈琛涛、王冠尧
指导教师:赵鑫鑫、李 勇
随着信息技术的发展,汽车的电子化模块越来越多,智能汽车领域受到了大量的关注。受教育部高等教育司委托(教高司函[2005]201号文),高等学校自动化专业教学指导分委员会主办“恩智浦”杯全国大学生智能汽车竞赛,以迅猛发展的汽车电子为背景,涵盖了控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科交叉的科技创意性比赛。
参赛选手须使用竞赛秘书处统一指定并负责采购竞赛车模,自行采用 32 位微控制器作为核心控制单元,自主构思控制方案及系统设计,包括传感器信号采集处理、控制算法及执行、动力电机驱动、转向舵机控制等,完成智能汽车工程制作及调试,于指定日期与地点参加场地比赛。参赛队伍之名次(成绩)由赛车现场成功完成赛道比赛时间为主,技术方案及制作工程质量评分为辅来决定。
本届“恩智浦”杯全国大学生智能汽车竞赛比赛分为基础四轮组、节能信标组、电磁越野组、双车接力组、全向行进组、单车拉力组、专科基础组七个组别,分别进行比赛,我队参与全向行进组比赛。此次比赛按照官方规定需使用H 型车模,使用指定WCH系列单片机,完成本次比赛设计。
本篇技术报告主要包括机械系统、硬件系统、软件系统等,详尽地阐述了我们的设计方案,具体表现在硬件电路的设计以及控制算法的部分想法,希望能和其他学校的同学交流沟通,更进一步。
01 设计概述
1.1 机械设计概述
根据本届大赛组委会对无线充电组的规定,无线充电组对车模的选择限制为F/G车模。G车模采用更轻的材料,与F车模同等条件下相比,速度更快,同时对于赛道的适应性高,而且稳定易于控制,整体车模鲁棒性更好。由于采用摄像头作为主要的传感器,因此对车模速度稳定性会有更高的要求,所以机械结构对于整车的性能至关重要,只有在车模拥有较好机械结构的前提下,控制算法才能发挥出其应有的效果。使智能车可以更好的适应高速运行的情况,保证其在高速时仍然具有较高的机械强度与灵活度,是本次比赛研究重点。本文将介绍根据实际情况对车模机械做出的改进。
1.2 硬件电路设计概述
硬件电路的可靠性是车模正常运行的前提,在尝试使用多种硬件电路后,最终确定了一套可靠、高效的设计方法,并可满足强劲的性能需求。实现硬件电路可靠、高效的要求后,再将电路设计尽量简洁,尽量减少元器件使用数量,以缩小电路板面积,减轻电路重量,从而减轻整车重量,降低车模重心。
1.3 软件系统设计概述
完善的软件控制系统是智能车高速稳定运行的核心。通过使用数字式摄像头采集赛道信息,并对采集的图像进行矫正处理,以获取准确的道路信息。通过分析采集到的图像数据,对智能车的转向和速度进行控制,使用经典 PID 控制算法,并结合实际情况不断完善修改,实现对摄像头智能车的精确控制。
02 设计方案
2.1 机械设计部分
2.1.1 车模的选择
本次比赛选用组委会指定的G车模。
2.1.2 防撞及电路板安装
由于无线充电组使用电容驱动,速度不快,且防撞装置会增加车模的重量,因此我们取消防撞的设计。此外,主板与驱动、灯板合成一块,减少板子的重量利于布局和调整重心。
2.1.3 摄像头安装
摄像头作为最重要的传感器,因此摄像头的安装要求很高。考虑到本次赛题应用的单片机内存较小,因此我们采用单摄+差速实现循迹。摄像头安装在底板上,利用后轮两电机的差速来实现对不同方向的循迹。出于安装精度和摄像头稳定性的考虑,采用较低的高度。
2.1.4 编码器安装调整
为使智能车能够平稳地沿着赛道运行,需要对车速进行精确控制,使赛车在急转弯时速度不至过快而冲出赛道。理论上,通过控制驱动电机上的平均电压即可控制智能车速度,但是如果开环控制电机转速,会受很多因素影响,例如电池电压、电机传动摩擦力、 道路摩擦力和麦轮触地情况等。 这些因素会造成赛车运行不稳定,需要检测出智能车当前速度。通过速度检测,对车模速度进行闭环反馈控制,即可消除上述各种因素的影响,使得车模运行得更稳定。
本次使用龙邱1024编码器,安装在车模上自带的编码器安装位。在使用时注意到,安装支架的孔径较小,拧紧后会造成编码器轴卡住,我们将编码器支架进行适当打磨,调整编码器的安装位置,解决了卡轴问题。
2.1.5 车模重心调整
车模重心位置对车模的加减速性能、转向性能和稳定性都有较大影响,重心调整主要包括重心高度和前后位置的调整。智能车车身较轻,重心较高时会引起车身的侧倾和打滑;重心较低时可以增加智能车高速运行时的稳定性。除此之外,车辆重心前后方向的调整,对赛车行驶性能也有很大的影响。
根据车辆运动学理论,每个轮子的附着力与重心的分布有直接关系,又因为G车模为两轮差速驱动,所以因尽量保证重心靠后。
基于以上思路,对智能车车模重心进行调整。首先,通过不断简化主板、驱动等自行制作的电路板的面积,并根据安装实际情况,设计电路板接线位置和接线长度,减少车模不必要的车重。同时,将主板等部件尽量排布在车尾并靠近底盘,使得重心降低并减小车模自转时的转动惯量。最终使车模除摄像头安装较高,其他各个部件安装高度都很低。从而尽可能的降低重心。
▲ 图2.1.1 车模俯视图
2.2 硬件电路设计部分
2.2.1 电源管理电路设计
关于电源,目前主要使用的电源分为开关电源和线性电源。线性电源的电压反馈电路是工作在线性状态;开关电源是指用于电压调整的管子工作在饱和区和截止区即开关状态的。线性电源一般是将输出电压取样然后与参考电压送入比较电压放大器,此电压放大器的输出作为电压调整管的输入,用以控制调整管使其结电压随输入的变化而变化,从而调整其输出电压。而开关电源是通过改变调整管的开和关的时间即占空比来改变输出电压的。从其主要特点上看:线性电源技术很成熟,制作成本较低,可以达到很高的稳定度,波纹也很小,而且没有开关电源具有的干扰与噪音,开关电源效率高、损耗小、可以降压也可以升压,但是交流纹波稍大些。
电源管理模块是智能车控制系统的基础,因此选择使用可靠、合理、实用的电源管理模块在设计控制系统时至关重要。根据需求,系统中电源稳压电路分别有+3.3V、+5V供电。其中,单片机供电、键盘供电供电使用+3.3V;+5V给电机驱动电路中驱动芯片和陀螺仪供电。供电模块电路原理图分配表如图 2.2、表2.1所示。
▲ 图2.2.1 供电模块原理图
▲ 图2.2.2 供电管理模块分配
2.2.2 单片机最小系统电路设计
本次比赛使用英飞凌公司的TC264。
本次自行设计主板和驱动板,主板上将所用到的引脚引出,与其他模块在主板上直接连接。单片机引脚图如 2.3所示。该芯片上许多引脚具有复用功能。这些引脚在复位后,立即被配置为高阻状态,且为通用输入引脚。需要注意的是,为了避免来自浮空输入引脚额外的漏电流,应用程序中的复位初始化例程需尽快使能上拉或下拉,也可改变不常用引脚的方向为输出,以使该引脚不再浮空。同时,为方便使用,将单片机与键盘设计在一起。
▲ 图2.2.3 TC264引脚图
在使用自行设计的主板电路时,会遇到有某些功能无法使用的情况,如原理图没有错误,需要注意在电路制作时可能出现的错误。先要确保使用元器件可靠易用,尽量不多次重复使用某一元器件。
在绘制 PCB 时,布局布线最好都手动完成,不使用自动布线,开始布局时就要考虑到器件的位置,PCB叠层的安排,重要连线的走法,元器件封装选择等问题。布局时,模拟电路和数字电路要分区域放置,使得模拟电路在模拟电路区域,数字电路在数字区域内,这样就不会相互影响。模拟地和数字地处理的出发点是类似的,不能让数字信号的回流流到模拟地上去。模拟电路对地的主要要求是,完整、回路小、阻抗匹配。数字信号如果低频没有特别要求;如果速度高,也需要考虑阻抗匹配和地完整。使用高速逻辑器件或布置差分线,走线不对称或者有比较大的差时,容易因为时延造成错误的逻辑。
2.2.3 电机驱动电路设计
本次电机驱动电路设计时尝试使用了MOSFET和栅极驱动集合而成的驱动电路方案。 驱动电路原理图如图2.4所示。
▲ 图2.2.4 驱动电路设计原理图
由于流过电机的电流相对较大,在绘制驱动电路 PCB 时,通过大电流的线路要尽量短粗,并且尽量避免经过过孔,如果要经过过孔的话要把过孔做大一些(>1mm)。
2.3 软件系统设计
高效的软件程序是智能车高速平稳自动寻线的基础。我们设计的智能车系统采用CMOS摄像头进行赛道识别,图像采集及校正处理就成了整个软件的核心内容。
在智能车的转向和速度控制方面,我们使用了鲁棒性很好的经典PID控制算法,配合使用理论计算和实际参数补偿的办法,使智能车能够稳定快速寻线。
2.3.1 图像采集处理
我们需要在单片机采集完图片之后对其进行处理以得到赛道特征,并排除光线、杂点、赛道远处图像等干扰,有效识别赛道,并提供尽可能多的赛道信息供决策使用。
在图像信号处理中我们提取的赛道信息主要包括:赛道两侧边沿点坐标、通过校正计算的赛道中心坐标,中心点规划面积,赛道元素判别。
由于摄像头自身的特性,图像会产生梯形式变形,这使得摄像头看到的信息不真实。因此我们利用赛道进行测量,创建函数还原出了真实赛道信息。原始图像是一个将数字图像经模拟电路转换得到的二维数据矩阵,矩阵的每一个元素对应一个像素点,近处的图像大,黑线为梯形状。
程序上将每一行的黑白跳变点(跳变点按从右到左的顺序)记录下来,保存到两个二维数组里(分别表示上升沿、下降沿)。通过遍历上升沿和下降沿可以完成赛道边沿的提取。
摄像头采集到几种典型赛道图像如图2.5~图2.7所示。
▲ 图2.3.1 圆环原始图像
▲ 图2.3.2 弯道原始图像
▲ 图2.3.3 十字交叉原始图像
然后进行赛道边沿提取,边沿提取算法的基本思想如下:
(1) 直接逐行扫描原始图像,根据设定的阈值提取黑白跳变点;
(2) 判断跳变点之间的距离是否符合赛道宽度,在确定的赛道宽度范围内提取有效赛道边沿,以此来滤除不在宽度范围内的干扰;
(3) 由于赛道是连续的,根据上一行白块的位置和边沿的位置来确定本行的边沿点;
(4) 求边沿点时,因为近处的图像稳定,远处图像不稳定,所以从近到远遍历图像进行处理;
(5) 进出十字的时候,通过校正计算出边沿角度并根据角度补线,还可以防止误判。
(6) 三岔元素是整个赛道边沿角度是尖锐角的部分,根据这个特征通过计算边沿的角度以及内侧两条边沿包络形成的面积可以有效的识别出三岔;为了排除赛道方向的突变对控制造成干扰,将三岔建模成为具有一定曲率的弯道,并进行补线;
边沿提取算法的程序流程如图2.8所示。
▲ 图2.3.4 边沿提取算法的程序流程图
处理后得到的黑线中心如图2.9~2.11所示。
▲ 图2.3.5 圆环处理后的图像
▲ 图2.3.6 弯道处理后的图像
图
▲ 图2.3.7 十字交叉处理后的图像
通过之前提取的赛道边沿数据推算中心:当左右边沿点总数较少时返回;若只有单边有边沿点数据,则通过校正对单边数据按法线平移赛道宽度一半的距离;当能找到与一边能匹配上的另一边沿点时则直接求其中心作为中心点。推算完中心点后,对中心点进行均匀化,方便之后的控制。计算出的中心点效果如图2.12~2.14所示。
▲ 图2.3.8 圆环处理后的图像
▲ 图2.3.9 弯道处理后的图像
▲ 图2.3.10 十字交叉处理后的图像
2.3.2 速度控制处理
我们选用的是G车,对它的电机速度控制都选用闭环PID控制方式。通过闭环反馈使系统的精确度提高,响应时间缩短,控制稳定性高。而开环控制没有反馈环节,稳定性、精确度不高。为了达到好的速度控制效果,速度控制要选用闭环控制方式。
2.3.3 转向控制处理
转向的控制主要时通过PID的控制来进行,主要依靠的是后轮编码器的返回值作为反馈值,并且通过这个反馈值来设定设定值,最后进入PID的控制器,通过后轮差速实现转向。
2.4 系统开发及调试工具
2.4.1 开发工具
程序开发在 AURIX Development Studio下进行, AURIX Development Studio 是英飞凌公司开发的一个集成开发环境(下面简称 ADS)。ADS内置了TC264/TC364等芯片,以及通用的模板工程,也提供了模板自由添加接口。选择不同芯片类型,自动生成相应工程名、显示对应芯片说明,也可自定义工程名及保存位置。
▲ 图2.4.1 ADS开发环境
2.4.2 MATLAB 数据处理
MATLAB 是矩阵实验室(Matrix Laboratory)的简称,是美国 MathWorks 公司出品的商业数学软件 , 用于算法开发、 数据可视化、 数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括 MATLAB 和 Simulink 两大 部分。本次主要使用 MATLAB 完成数据的可视化处理以及算法仿真。
▲ 图2.4.2 MATLAB 调试环境
03 车模参数
3.1 模型汽车基本技术指标
▲ 图3.1.1 模型车基本技术参数
3.2 总结
在此份技术报告中,我们主要介绍了准备比赛时的基本思路,包括机械结构、电路设计以及最重要的控制算法。在机械结构方面,我们分析了车身结构的改进办法,齿轮啮合的调整以及其他细节方面的优化。在电路方面,我们以模块形式分类,主板和电机驱动分别设计,经过不断实验,最后确定了我们最终的电路图。在程序方面,我们使用 C 语言编程,利用 ADS开发工具调试程序,经过小组成员不断讨论、改进,终于设计出一套比较通用稳定的程序。
参考文献
[1]邵贝贝.单片机嵌入式应用的在线开发方法[M].北京.清华大学出版社. 2004
[2]张军.AVR 单片机应用系统开发典型实例.北京:中国电力出版社,2005
[3] 王晓明.电动机的单片机控制[M].北京:北京航空航天大学出版社.2002
[4]ProtelDXP 电路设计与制版实用教程.2 版 李小坚[等]编著. 人民邮电出 版社 2009
[5]竞赛秘书处:第十二届“恩智浦”智能车大赛比赛规则.2016.
[6]孙炳达:自动控制原理. 北京:机械工业出版社,2011.
[7]TinkuAcharya 等. 数字图像处理——原理与应用.清华大学出版社,2007
[8]姜明国.阿克曼原理与矩形化转向梯形设计.长春汽车研究所.2009 [7]鲍然.智能车底盘与机械结构设计.北航智能车创新基地
附录(源程序)
int core0_main(void)
disableInterrupts();
get_clk();
gpio_init(P15_7, GPO, 0, PUSHPULL);
gpio_init(P33_5, GPO, 0, PUSHPULL);
gpio_init(P33_4, GPO, 1, PUSHPULL);
gpio_init(P00_6, GPO, 0, PUSHPULL);
System_Init();
Running_Init();
enableInterrupts();
while(1)
LED_control();
void core1_main (void)
uart_init(UART_0, 115200, UART0_TX_P15_2, UART0_RX_P15_3);
SD_Sync_PinInit();
SD_Send_Data_Init();
enableInterrupts(); IfxScuWdt_disableCpuWatchdog(IfxScuWdt_getCpuWatchdogPassword());
while (1)
if(img_num>1)
Running();
● 相关图表链接:
- 图2.1.1 车模俯视图
- 图2.2.1 供电模块原理图
- 图2.2.2 供电管理模块分配
- 图2.2.3 TC264引脚图
- 图2.2.4 驱动电路设计原理图
- 图2.3.1 圆环原始图像
- 图2.3.2 弯道原始图像
- 图2.3.3 十字交叉原始图像
- 图2.3.4 边沿提取算法的程序流程图
- 图2.3.5 圆环处理后的图像
- 图2.3.6 弯道处理后的图像
- 图2.3.7 十字交叉处理后的图像
- 图2.3.8 圆环处理后的图像
- 图2.3.9 弯道处理后的图像
- 图2.3.10 十字交叉处理后的图像
- 图2.4.1 ADS开发环境
- 图2.4.2 MATLAB 调试环境
- 图3.1.1 模型车基本技术参数
以上是关于17届智能车竞赛技术报告 | 北京科技大学无线充电组的主要内容,如果未能解决你的问题,请参考以下文章
17届智能车竞赛技术报告-极速越野 | 南昌大学-闪电小飞侠