智能车竞赛技术报告 | 智能视觉组 -哈尔滨工业大学 - 紫丁香七队
Posted 卓晴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了智能车竞赛技术报告 | 智能视觉组 -哈尔滨工业大学 - 紫丁香七队相关的知识,希望对你有一定的参考价值。
简 介: 本文详细介绍了哈尔滨工业大学紫丁香七队在第十六届全国大学生智能汽车竞赛智能视觉组中的系统方案。本次比赛采用大赛组委会统一指定的
C
型车模,以飞思卡尔半导体公司生产的32
位单片机MK66FX1M0VLQ18
为核心控制器以及逐飞科技公司开发的OPENART
为主要识别处理器,要求智能车识别白色赛道中的三叉、环岛、坡道等多个元素,同时要求其额外能在直道上通过OPENART
识别图片内容完成相应的动作。本次比赛的循迹部分要求自行设计赛道并根据元素进行累加计分,识别部分根据识别动作的正确与否进行计分,要求智能车在一定的时间内完成循迹与识别任务并取得满意的分数。智能车采用C
MOS摄像头对赛道信息检测,根据提取连通域得到赛道中线;通过编码器检测智能车的实时速度,使用电感采集电磁信息辅助判别是否出赛道,起到保护车模的作用,利用陀螺仪完成小车出入库,通过红外测距模块实时测距辅助判断坡道等元素;使用PID
控制算法调节电机的转速和舵机的打角,实现智能车在运动过程中速度和方向的闭环控制;为了提高模型车的速度和稳定性,使用上位机、按键、OLED
模块等调试工具,进行了大量硬件与软件测试。实验结果表明,该系统设计方案可行。
关键词
: MK66FX1M0VLQ18,OPENART,AI图像分类,图像处理,PID
队伍名称:紫丁香七队
参赛队员:王雪松
赖芷璇
高宇昊
带队教师:张依
第一章 绪 论
1.1 智能车研究背景
智能车是一种高新技术密集型的新型汽车,以汽车电子为背景涵盖控制、模式识别、传感技术、电子、电气、计算机、机械等多科学的科技创意性设计,一般主要由路径识别、速度采集、角度控制及车速控制等模块组成。可实现自动驾驶、自动变速及自动识别道路等功能,是现代电子产业发展中一项重要的组成部分。
在我国,教育部为了加强大学生实践、创新能力和团队合作精神的培养,委托教育部高等学校自动化专业教学指导分委员会主办了每年一度的全国大学生智能汽车竞赛。全国大学生智能汽车竞赛是在竞赛组委会提供的统一汽车模型平台上,使用飞思卡尔半导体及其他赞助公司的8位、16位、32位微控制器作为核心控制模块,通过设计道路识别传感器和电机驱动电路、编写相应软件及装配模型车,制作一个能够自主识别道路的模型汽车,按照规定路线行进,以完成时间最短者为优胜。但在十六届,出于疫情反复的考虑,智能车回归初心,以考究智能车的工程性与稳定性,调整国赛的比赛规则,由未知赛道以及最短时间完成,变为自行设计赛道并在一定的时间内积分最多者为优胜,以充分发挥车模的优点,考究车模的稳定性与工程性。
1.2 方案总体介绍
比赛跑道为表面白色,两边有连续黑线作为引导线,黑线宽为25mm。车模通过采集赛道图像进行路径检测比赛规则限定了跑道宽道区宽度40cm,拐角最小半径50cm,并且规定了各赛道标志的具体指标。参赛队员的目标是利用自身车模的优势自行设计赛道并使智能车按照规则在一定时间内累计更多的分数。
根据竞赛规则相关规定,本智能车系统采用大赛组委会统一提供的C
型车模,以恩智浦公司生产的32
位微控制器MK66FX1M0VLQ18
作为核心控制器,在MC
UXpresso集成开发环境中进行软件开发。通过C
MOS图像传感器拍摄赛道图像,将图像信号输入到MK66FX1M0VLQ18
微控制器,进行进一步处理获得主要的赛道信息;通过编码器来检测车速,并通过单片机进行正交解码进行脉冲计算获得速度和路程;转向舵机采用PD
控制;驱动电机采用PI
控制,通过PWM
控制驱动电路调整电机的功率;而车速的目标值由默认值、运行安全方案和基于图像处理的优化策略进行综合控制;本次比赛中元素繁多,为了更好得采集赛道元素的信息增加传感器是必然的,我们选择红外模块进行测距,利用陀螺仪获取车身姿态实现出车库,此外使用两横电感加强环岛的判断稳定性。
根据比赛的基本要求,我们设计了系统总体思路如图1.1所示。
▲ 图1.1 系统结构图
1.3 本文结构
本文共分为六章。第一章主要是介绍了比赛的背景及智能车系统总体方案的介绍;第二章从智能车系统的机械结构出发,详细阐述了智能车系统各部分机械结构的安装和调整;第三章重点介绍了系统中所涉及的硬件设计方案和原理;第四章是介绍了智能系统的软件算法包括图像处理以及电机舵机的控制策略;第五章对调试过程中的一些手段进行了讲解;第六章则是对智能车一些物理参数进行了简单的汇报。
第二章 机械结构设计及调整
智能车的核心是控制策略和算法,但是,机械结构也是限制赛车速度的巨大瓶颈,如果一辆赛车的程序架构很好,但是机械部分做的不好的话,其速度也会被大大的限制。即当车速较高的时候,车模有明显的甩尾和侧滑现象,此时对车的机械结构要求很高。除了对车身姿态的影响外,机械性能影响车的加减速响应速度,运行的对称性和稳定性等,因此,我们在不违反规则的情况下对小车进行了多方面的改造以使小车具有良好的运行性能。
2.1 整车布局
在第16
届智能车比赛智能视觉组中规定采用C
车模,C
车模对称性好,尺寸为290*184*196mm
,轮胎尺寸为29*61mm
,通过对轮胎合适地填充海绵和进行软化处理,具有极好的减震性和耐磨性。驱动电机为RS-380
,7.2V
的电机功率可达19.25W
,额定功率达到0.016
kW,额定电压7.2V
,额定电流0.5A
,额定转速16
200rpm,额定转矩可达10.9N*m,
外形储存29.2*37.8mm
。伺服电机为S3010
舵机,6V
电压时扭力可达6.5kg*cm
,动作速度快,车模整体质量较轻。智能车的外形大致如图2.1
。
1. 车模底盘降低,用来降低重心。
2. 舵机采用竖直姿态,方便控制。
3. 对前轮倾角进行调节,保证车直线行驶的稳定性。
4. 调整电池位置使重心尽量在车体中心
5. 用轻便坚固的铝杆作为摄像头传感器的支撑材料。
▲ 图2.1 智能车外形图
2.2 电池选型与安装
原装车模使用的是NiCd电池,由于其体积大,质量大,在前期的使用过程中造成车在速度快产生甩尾和侧滑现象,此外NiCd电池质量分布不均,相当于增加车身不对称因素。本届比赛支持使用带保护板的两节18650锂电池进行串联供电,经过尝试,我们绘制了锂电池与保护板的连接PCB,购买动力型锂电池,放电能力强可以轻松带动两个380电机,由于前期智能视觉组需要有转向云台来进行识别图片以及激光打靶任务,我们把电池板形状设计成如图所示的形状,将两节锂电池放置在车模靠后位置的两端,并稍微倾斜,使得整个车非常轻盈,加减速响应快,重心靠近中心,为转向云台省出空间。小车俯视图如图2.2所示。电池板形状如图2.3所示。
▲ 图2.2 俯视图
▲ 图2.3 电池板形状
2.3 转向舵机安装
舵机转向是整个控制系统中延迟较大的一个环节,为了减小此时间常数,通过改变舵机的安装位置可以提高舵机的响应速度。通过分析舵机控制转向轮转向的原理可以发现,在相同的舵机转向条件下,转向连杆在舵机一端的连接点离舵机轴心距离越远,转向轮转向变化越快。这相当于增大力臂长度,提高线速度。
舵机安装方式有立式和卧式两种,比较两种方式发现,立式安装效果更好。 舵机安装时要保证左右对称,这样可以保证舵机左右转向时力臂相等且处于最 大范围,提升了舵机的响应速度。经理论分析,功率等于速度与扭矩的乘积,加大转向速度必然减少输出扭矩,扭矩过小会造成迟钝,所以安装时必须考虑到转 向机构的响应速度与舵机扭矩之间的关系,获得最佳转向效果。经过实验,我们的舵机安装如图2.4所示。
▲ 图2.4 转向舵机安装
2.4 前轮倾角调节
为了使汽车直线行驶稳定,转向轻便,转向后能自动回正,减少轮胎和转向系零件的磨损等,在转向轮、转向节和前轴之间须形成一定的相对安装位置,叫车轮定位。本系统所采用的智能车通过四条轮胎与地面接触,两个后轮同轴受到限位,无法调整,与智能车的前进方向保持平行,因此要改变智能车与地面的接触方式,调试出利于车转向、直线的四轮定位,只能通过调整前轮倾角各定位参数来实现。它的安装位置由主销内倾、主销后倾、前轮外倾和前轮前束四个项目决定。
2.4.1 主销后倾、内倾
主销后倾如图2.5 所示,是指在纵向平面内主销轴线与地面垂直线之间的夹角,向前为负,向后为正。它在车辆转弯时会产生与车轮偏转方向相反的回正力矩,使车轮自动恢复到原来的中间位置上。所以,主销后倾角越大,车速越高,前轮自动回正的能力就越强,模型车通过增减黄色垫片的数量来改变 主销后倾角。
▲ 图2.5 主销后倾示意图
由于竞赛所用的转向舵机力矩不大,过大的主销后倾角会使转向变得沉重,转弯迟滞。所以我们修改主销后倾大致1~2°。
主销内倾是将主销(即转向轴线)的上端向内倾斜。从车前方看去,主销轴线与通过前轮中心的垂线之间形成一个夹角,即主销内倾角。轮胎调整为倾斜以后直线行走的时候是轮胎内侧着地,而当过弯的时候,由于惯性车体会要向弯道外侧倾斜,而这时候的外侧轮胎如果倾斜角度事先调整得当则正好可以胎面着地,从而使车辆在弯道获得最佳抓地力。使车轮转向后能及时自动回正和转向轻便。主销内倾如图2.6所示。
▲ 图2.6 主销内倾示意图
调节后的主销内倾、后倾如图2.7所示
▲ 图2.7 翘筝后的主销后倾、内倾示意图
2.4.2 前轮前束
车轮前束如图2.8所示。是指两轮之间的后距离数值与前距离数值之差,也指前轮中心线与纵向中心线的夹角。从上往下看,两个车轮指向的方向在前端指向内称为车轮前束,指向外的则称为车轮后束。前轮前束的作用是保证汽车的行驶性能,减少轮胎的磨损。前轮在滚动时,其惯性力自然将轮胎向内偏斜,如果前束适当,轮胎滚动时的偏斜方向就会抵消,轮胎内外侧磨损的现象会减少。
▲ 图2.8 车轮前束示意图
2.5 底盘高度调节
降低车模底盘可以降低重心,车模重心低可以使车模运行更加稳定,获得 更好的转弯特性。所以,在保证车模可以通过灯盘的情况下,底盘尽可能的降低,可以使车更加快速稳定。对于C车模,修改前轮滚动的轴心和车模底盘的高度差,可以修改车模底盘的高度,所以通过在前轮固定处垫垫圈来降低车模底盘高度,如图2.9所示。
▲ 图2.9 底盘高度调节
第三章 硬件电路设计
智能车的硬件电路的稳定性、可靠性将直接影响智能车在高速运动状态下的性能,所以,我们在设计硬件电路的过程中充分考虑各种因素对车模运行的影响。本着可靠高效的原则,我们使PCB形状合适、布局合理、布线简单,使整个车模更加简洁高效。
3.1 单片机系统设计
单片机最小系统是智能车系统的核心控制部件。我们采用了M4内核32位的K66芯片。原理图如图3.1所示:
▲ 图3.1 单片机系统
3.2 电源模块设计
智能车各项外设需要不同的工作电压,常用的有5V和3.3V。两节18650锂电池电压在7.4-8.4V之间,驱动电路可以直接用电池电压供电。因此在主控板需选用相应的降压芯片或稳压芯片来提供外设工作的合适的电压。
选取转压方案时应充分考虑转压芯片的最大承载电流,发热情况,输入电压范围要求以及输出电压纹波大小等。只有选择合适的转压芯片和设计合理的外围电路才能保证电路正常工作。
我们的车模总共有以下四种供电电压:
(1) 智能车使用锂电池供电,选择带均衡功能的保护板可以同时给两节电池充电,正常使用时电压在7.4~8.4V。可直接用于电机供电。
(2) 使用DC/DC降压芯片MP1584EN输出电压5V和3.3V电压,来为电路中单片机、陀螺仪、编码器、OLED屏幕、以及OPENART等供电。MP1584EN可满足4.5V到28V的电压输入,具有较宽的输入电压范围,因而对于两节18650输出的7.4~8.4V电压是可以使用的。而输出电压则可根据外围电路具体参数而定,所以具有非常灵活的调节范围。MP1584EN具有输出电压稳定,纹波小,可承载电流大等特点,最大可承载电流3A,对于智能车主控板各项外设供电完全够用,所以需要两个MP1584EN芯片分别转压5V和3.3V即可。如下图分别为输出5V和3.3V的电路设计。
▲ 图3.2 降压电路5V
▲ 图3.3 降压3.3V
MP1584EN的电压输出满足以下关系:
反馈电压VFB在输入电压为4.5V~28V时为0.8V,所以设定相应的值就可以达到目的。
(3) 我们使用稳压芯片MIC29302输出6V电压给舵机供电。由于18650锂电池满电电压为4.2V,这样两节电池串联就会达到8.4V电压。而智能车指定舵机S3010额定电压为6V,若没有稳压措施,则很容易将舵机烧坏。同时MIC29302具有防止电流反灌功能有效提高舵机使用寿命。
▲ 图3.4 转压电路
(4) 运放工作需要正负5V供电,这里使用低压差线性稳压器AMS1117和稳压芯片LM2663来获得正负5V电压。AMS1117芯片具有结构和电路简单的特点,但可载电流较小,发热较严重。这里仅仅用于为三路电磁运放供电,电流满足要求。这里正5V电压并没有采用与电路中OPENART相同的电源,目的是使模拟5V电源和数字5V电源分开,避免造成电路电压不稳,纹波较大的不必要的影响。
3.3 电机驱动电路
在驱动电路部分中,我们选用了集成化更好的BTN8962芯片。BTN8962芯片工作电压为4~40V,输出电流峰值为77A,相对于智能车来说已绰绰有余。下图3.6为我们设计的电机驱动电路。
3.4 电磁运放电路
采用简单的同向比例放大电路,电位计可用来调节放大倍数,通过对电磁信号进行放大和检波处理和可以直接供单片机的AD口读取。运放芯片使用性价比较高的NE5532,10M的通带带宽足以满足20kHz的电感采集需求。
3.5 传感器的选择
3.5.1 摄像头
比赛所用的摄像头可以分为两类:一类为CCD摄像头,另一类为CMOS摄像头。
CCD摄像头图像对比度高、动态特性好,但供电电压比较高,需要12V的工作电压。在智能车的实际运行中,电机加减速时会产生很大的冲击电流,会对12V的升压模块造成冲击。同时CCD摄像头的耗电也比较严重,这会使拍摄的图像稳定性不高。
CMOS摄像头,体积小,图像稳定性较高,只需3.3V供电,耗电量低,但动态性能不如CCD摄像头好。智能车高速运行时,摄像头拍摄的图像可能会变得模糊。但为了保证系统的稳定性,最终决定选用CMOS摄像头。
3.5.2 编码器
光电编码器是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器, 这也是目前应用最多的测速传感器之一。其获取信息准确、精度高、应用简单。
采用增量式512线光电编码器,其供电电压为3.3V或5V,输出为小幅值的正弦信号。为了将此信号放大整形,设计了信号调理电路,其基本原理是使用一个运放做成比较器电路,调节参考电压,使输出变为0V-3.3V的方波信号,送入单片机进行运算。
3.5.3 红外测距模块
红外测距模块是一款小型测距模组。主要实现实时、无接触式的距离测量功能,具有测量准确、 稳定、高速的特点。
红外测距基于时间飞行原理。具体为产品周期性的向外发出近红外光调制波,调制波遇物体后反射。产品通过测量调制波往返相位差,得到飞行时间,再计算出产品与被测目标之间的相对距离。
其供电电压为5V,平均电流0.12A,峰值电流可达0.8A,对电源性能要求较高,平均功率低于0.6W。
3.6 主控板
在本系统中我们的电路板的制作主要思想是分立工作、追求简洁,便于电路板的调试和安装等工作。主控由电源稳压电路,OLED屏,单片机系统以及各个传感器接口等组成。整个板子形状合理,可以充分利用C车模底板空间同时使重心降到最低。实物图如图3.8所示
3.7 驱动板
驱动板在除了原有的电机驱动电路外,还增加了编码器接口,主要目的是方便编码器的连线,以减少编码器连线过长导致的接触不良等问题,同时主控板的人机交互拨码和按键放在了驱动板上,以上通过一个24PIN排线与主控板相连,这样既节省了主控板的空间,同时在位置靠后的驱动板上进行参数调节也更加方便。驱动板的实物图如图3.9
图3.9 驱动板实物图
3.8 电磁运放一体板
将电磁接口与运放画在一个板子上可以减少主控的元件数量,方便主控布局,使主控的电源性能良好,接口减少冲突,使用操作方便;同时缩短电磁信号与运放的走线至几毫米,减少走线或飞线阻抗造成的误差,电磁一体板的实物图如图3.10
▲ 图3.10 电磁运放一体板
第四章 软件控制设计
高效的软件程序是智能车高速平稳自动寻线的基础。我们设计的系统采用CMOS摄像头进行赛道识别,图像采集及处理是整个软件的核心内容。在智能车的转向和速度控制方面,我们使用PID控制算法,使智能车能够稳定快速在赛道中循迹并完成比赛。
4.1 基础图像处理:赛道中心线提取及优化处理
4.1.1 原始图像的特点与原始图像的校正
在单片机采集图像信号后需要对其进行处理以提取主要的赛道信息,同时,由于交叉道、起跑线的存在,光线不均匀、赛道外反光点、赛道远处图像不清楚的干扰,图像效果会大打折扣。因此,在软件上必须排除干扰因素,对赛道进行有效识别,并提供尽可能多的赛道信息供决策使用。
在图像信号处理中提取的赛道信息主要包括:赛道位于图像的位置、赛道边界点信息,赛道宽度信息,赛道中心线位置,赛道类型识别。
由于智能视觉组并未对摄像头高度进行限制,本组将摄像头调整为距离地面23cm的位置,限制视野内的元素在一个左右,以追求车模图像识别的稳定性。
由于摄像头自身的特性和远小近大的视觉原理,图像会产生梯形式变形,这使得摄像头看到的赛道信息和实际真实的赛道信息有所区别。因此我们利用赛道进行测量和标定,得到一系列的参数,将摄像头采到的原始图像还原出真实赛道信息。原始图像是一个将模拟图像经模拟电路转换得到的二维数据矩阵,矩阵的每一个元素对应一个像素点,图像的第一行对应最远处,距摄像头固定杆大约150cm,图像的最底部一行对应最近处,距固定杆10cm。远处的图像小,近处的图像大,黑线为梯形状,如图4.1-图4.3。
摄像头返回的这个矩阵中,每一个像素点都有一个从0至255的灰度值,值越大表示该像素点越亮,相反,越暗的像素点值就越小。同色间的灰度差很小,而不同色间的灰度差很大。同时,同一赛道不同灯光条件的情况会使得灰度值差变化,普通的二值化适应的场景较为单一,同时无法避免反光等其他外界因素。本组使用偏振片来避免反射光线的影响,并采用底部动态阈值的方法应对多种情况,通过底部小区域得到全局合适的阈值,以满足灯光条件不同的赛道阈值的自行调节将像素矩阵二值化,得到黑白图像,将赛道与背景区别开来,此方法可达到自适应性,同时缩短了函数的运行时间。
我们对摄像头高度与俯角进行了标定,得到一系列参数,对原始的透视图像进行逆透视变换,得到了用于单片机处理的基本图像。
由于我们采用了140度的广角镜头,这对于赛道信息的判断会产生偏差,为了克服这种误差,我们对摄像头进行了标定,这样对于赛道信息的判断,准确地寻找中心线起到非常大的作用。
由图4.1-图4.3可以看出,原始图像反映了安装在智能车上的摄像头直接看到的图像,包含了图像的畸变,因此图像上的信息不能够反应赛道的真实信息,图像上相邻两像素行间的实际距离会随着离摄像头的距离变化而变化。
为了方便对摄像头采到的图像信息进行处理,我们对原始图像进行逆透视变换,使用一个逆透视变换矩阵实现原始图像到俯视图的映射。图4.4-图4.7是经过变换后的原始图像,可以看出它们都还原了真实赛道的信息。
4.1.2 赛道搜线算法
单片机在对原始图像进行二值化之后,再通过逆透视变换得到单片机处理的基本赛道图像,然后用搜线算法来对其进行处理,从而确定出赛道两边的黑线在哪儿,并计算出相对应的赛道中线,从而指导舵机转向和电机的加减速。搜线算法的基本思想如下:
1. 对赛道图像进行连通域提取,找出正常赛道对应的连通域位置;
2. 遍历图像,对赛道对应的连通域提取边界信息以及宽度信息,并对边界进行滤波处理,储存在数组中;
3. 搜线完毕后,就得到了处理好的能够进行赛道分析的完整的矩阵。
4.1.3 赛道中心的计算
得到完整的赛道信息矩阵后,即可通过一定的算法计算出赛道的中线,由PID控制算法的思想,我们利用智能车的图像中心与赛道的实际中心的偏移量来控制舵机的转动和电机的驱动力度。赛道中线算法:
1. 由图像底部向顶部扫描,将左右边界进行映射,得到一个映射关系,当赛道连通域结束,扫描结束;
2. 通过步骤(1)得到的映射关系,取对应左右边界的中点,求出中点的位置,保存在数组中。
4.2 出入车库策略
4.2.1 入车库位置判定
我们小队通过图象识别来判定车库位置,主要通过对斑马线最低行的判断来限定开始入库时车的位置,经过我们的尝试,这种判断方法在低速时很稳定,对入库时机把握良好,速度越快,对应入库时机会有所偏差。
4.2.2 出入车库方案
对于出库,只需要简单的给出舵机一个打角,并且利用陀螺仪记角度,便可以实现稳定的出库,但是对于入库来说,则需要图象与控制相配合,由图象确定入库实际,再通过舵机给出一定打角实现入库。
4.3 PID控制算法介绍
4.4 转向舵机的PD控制算法
对于舵机的闭环控制,我们采用了位置式PD控制算法,根据往届的技术资料和实际测试,将每场图像中线上部分中点加权平均值与舵机PD参考角度值构成非线性关系。
在较低速(2m/s以下)试验时,在偏离黑线很大的某个范围,将Kp直接置100%,在偏离黑线较少的某个范围,将Kp值减小为原来的一半。取得的实际效果在弯道较多、直道较短的赛道上,车子转弯流畅,直道也能基本保持直线加速,车身左右抖动较小。
在提高车速至高速(2.5m/s以上)时,我们发现车身在直道上特别是长直道上时,车身左右震荡比较严重,究其原因,硬件上,我们认为首先是轮轴本身的松动并且转向机构左右转向性能可能存在不对称性,设计有待改进,软件上,是小偏差时放大倍数偏大导致稳定性较差在从弯道到直道的过程中,由于小车寻赛道本质上是一个随动系统,因为没有积分项,造成在进入直道时转向不够准确,跑直道时虽然能跟踪黑线,但是转向调整往往超调,导致车身在直道上左右震荡,这种震荡严重影响了车的整体速度。此外,我们对S弯的控制也过于简单,没有特别的处理,导致车在跑S弯的时候,几乎完全沿弯走,没有明显的直冲S弯的效果,原因是在前瞻有限的情况下,在采集的图像中S弯入弯和普通弯道是一样的,导致小车开始转向,由于中间一直检测到弯道,小车会沿S弯道左右震荡,同时相应会减速。
经过反复调试PD参数,我们发现只调整PD参数很难使车在跑S弯和长直道时都选择最佳路径,同时不影响在普通弯处的转向。这就要求系统能够智能地识别出当前赛道是哪种类型,我们没有选择赛道记忆等方法,而采取在不降低远处分辨率的情况下,尽量让摄像头看得更远的方法。最后,在MCU超频的条件下,在透视问题影响远处分辨率的制约下,使视场长度(视场最远处和最近处的距离)达到1.6m多,最远前瞻达到2.0m,足以覆盖赛道中的各种赛道类型,使得我们在程序中并没有加入了对S弯、长直道以及大弯进行可靠识别的算法,仅仅根据中心位置动态改变PD参数,就得到了较好的控制效果。
经过反复测试,我们选择的PD调节策略是:
1. 将微分项系数置零,单独调节Kp,发现在
2. 4m/s以下单独调节Kp就能取得一个良好的跑车效果; 2.5m/s以上微分项系数Kd随速度增大而增大,原因是速度越快舵机在一般赛道中越需要较好的动态响应能力;
4.5 驱动电机的PI控制算法
对于速度控制,我们创新性的采用了位置式PI控制算法,基本思想是直道加速,弯道减速。经过反复调试,将每场图像得到的黑线位置与速度PI参考速度值构成二次曲线关系。在实际测试中,我们发现小车直道和弯道相互过渡时加减速比较灵敏,与舵机转向控制配合得较好。
但是,该方法存在一定的局限。一方面是车在从弯道入直道时加速和从直道入弯道时减速达不到最好的控制效果,直道入弯道减速不够快速,弯道出直道加速的时机不够及时。因此我们做了进一步的改进,加速的曲线与减速的曲线分开形成滞回的效果,结果表明,控制效果更好。另一方面是没有考虑到实际比赛中长直道急速冲刺的情况,赛前在程序中人为设定直线速度不够灵活不够合理,所以我们在程序中根据图像识别长直线提高了直线速度,使车能够在长直道上充分发挥潜能。
4.6 Openart mini搭载程序
Openart mini是逐飞科技联合恩智浦公司,共同基于openmv开源代码实现的摄像头模块。
其本身具有性能强大,计算速度快等优点。在内置的microPython加持下可以实现对于神经网络的加载和实现,本身支持tflite与nncu两种神经网络,为了增加效率,我们在这里使用了tflite的神经网络作为程序主要的模型。
由于赛制任务的要求,我们向penart mini中植入了两个模型:全局分类器模型以及动物水果模型。
其中,全局分类器模型可以实现对于数字和奇数偶数的直接分类、动物水果、Apriltag、以及空白图片的识别。大大提高了识别效率。
对于识别难度比较大的动物水果模型,我们采用单独的神经网络进行处理,这样极大的提高了我们识别的准确率,减少了误判的情况。
在模型的搭建上,我们没有使用现有的例如VGG16等模型结构。因为输出的结果与运算量较大、并不适合作为单片机上的应用水准。经过多次尝试、我们最后仿照VGG模型的多次卷积原理,实现了对于图片很好的学习效果。
第五章 系统调试
5.1 开发调试工具
软件开发工具选用的是MCUXpresso。是恩智浦公司为自家微处理器开发的一个集成开发环境。比较其他的ARM开发环境,MCUXpresso具有入门容易、使用方便和代码紧凑等特点。它为用户提供一个易学和具有最大量代码继承能力的开发环境,以及对大多数和特殊目标的支持。嵌入式MCUXpresso有效提高用户的工作效率,通过MCUXpresso工具,可以大大节省软件调试时间。调试界面如图5.1所示:
▲ 图5.1 MCUXpresso 调试界面
5.2 人机交互工具
在调试过程中需要不断地修改变量的值来达到整定参数的作用,对此我们选用了液晶屏配合按键和拨码开关的调试方法。此外,比赛的时候,修改参数我们同样用这个模块进行修改。
其中液晶屏我们选用OLED液晶,该液晶具尺寸小,高分辨率等特点。界面如图5.2所示。按键采用五向按键便于操作。设计一个五向按键以及6个拨码开关进行调参,显示,方案选择等部分
▲ 图5.2 液晶屏显示界面
5.3 WIFI及上位机调试
车在同样的赛道上走过的路都是不一样的,所以无论怎么考虑车的状态都是不够完全的,因此需要对运行中的车进行实时监控。为了解决这个问题,我们使用WIFI模块配合上位机进行实时观测车模运行状态。
第六章 模型车主要技术参数说明
结论
自报名参加全国大学智能汽车竞赛以来,我们小组成员从查找资料、设计机构、组装车模、编写程序一步一步的进行,最后终于完成了最初目标,定下了现在这个设计方案。
在此份技术报告中,我们主要介绍了准备比赛时的基本思路,包括机械、电路以及最重要的控制算法的创新思想。在机械结构方面,我们分析了舵机转向系统的改进办法,对前轮倾角进行一系列的改动。在电路方面,我们以模块形式分类,在最小系统、主板、电机驱动、电池使用、电磁采集等模块分别设计,经过不断实验,最后决定了最终的电路图。在程序方面,我们使用C语言编程,利用开发工具调试程序,经过小组成员不断讨论、改进,终于设计出一套比较通用稳定的程序。在这套算法中,我们结合路况调整车速,做到直道加速、弯道减速,保证实现在两分钟以内最多的积分获取。同时在单独的AI识别环节中,小队成员团结一致、在短时间内实现了比赛的要求,并且得分效率较高。
在备战过程中,我们遇到了很多挫折,一次次的校内比赛见证我们这个小队艰难的蜕变。非常感谢哈工大智能车创新俱乐部这个像家一样的地方,同时也感谢在场地和经费方面都得到了学校和学院的大力支持,更要特别感谢一直支持和关注智能车比赛的学校和学院领导以及各位指导老师、指导学长,同时也感谢比赛组委会能组织这样一项有意义的比赛。
参考文献
[1] 卓晴,黄开胜,邵贝贝.学做智能车 [M].北京:北京航空航天大学出版社.2007.
[2] 王淑娟,蔡惟铮,齐明.模拟电子技术基础 [M].北京:高等教育出版社.2009
[3] 张军.AVR单片机应用系统开发典型实例 [M].北京:中国电力出版社,2005.
[4] 张文春.汽车理论 [M].北京.机械工业出版社.2005.
[5] 殷剑宏,吴开亚.图论及其算法 [M] .中国科学技术大学出版社,2003.
[6] 夏克俭.数据结构及算法 [M] .北京:国防工业出版社, 2001.
[7] 邵贝贝.单片机嵌入式应用的在线开发方法 [M].北京.清华大学出版社.2004.
[8] 蔡述庭.“飞思卡尔”杯智能汽车竞赛设计与实践 [M].北京:北京航空航天大学出版社. 2012.
● 相关图表链接:
以上是关于智能车竞赛技术报告 | 智能视觉组 -哈尔滨工业大学 - 紫丁香七队的主要内容,如果未能解决你的问题,请参考以下文章
智能车竞赛技术报告 | 智能视觉组 - 大连海事大学 - 菜鸡啄米
智能车竞赛技术报告 | 智能车视觉 - 上海工程技术大学 - 萌鸡小队
智能车竞赛技术报告 | 智能车视觉 - 中国海洋大学 - The Waves
智能车竞赛技术报告 | 智能车视觉 - 扬州大学 - 这辆盲车不吃水果