智能车竞赛技术报告 | 双车接力组 -哈尔滨工业大学 - 紫丁香六队

Posted 卓晴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了智能车竞赛技术报告 | 双车接力组 -哈尔滨工业大学 - 紫丁香六队相关的知识,希望对你有一定的参考价值。

简 介: 本文详细介绍了哈尔滨工业大学紫丁香六队在第十六届全国大学生智能汽车竞赛双车接力组的系统方案。我队选择使用官方指定的D车模和F车模来搭建直立和三轮两辆车模,以灵动微电子公司生产的32位单片机 MM32F3277G9P为核心控制器,要求智能车识别道路两边黑线,能够在三岔区完成接力任务,并以尽可能快的速度稳定完成整个比赛。智能车采用CMOS摄像头对赛道信息检测,根据黑色边线提取赛道中线,通过WIFI通信模块实现两车的通信,通过编码器监测车的实时速度;使用PID控制算法调节电机的转速,实现了车模在运动过程中速度和方向的闭环控制;为了提高模型车的速度和稳定性,使用上位机、按键、OLED 模块等调试工具,进行了大量硬件与软件测试。实验结果表明,该系统设计方案切实可行。

关键词 MM32F3277G9总钻风灰度摄像头PID陀螺仪

学 校:哈尔滨工业大学
队伍名称:紫丁香六队  
参赛队员:吴新奥 谢建山  
张佳闪 程若思  
带队教师:张依     

 

第一章


1.1本文结构

  本文共分为九章。第一章主要是比赛背景及第十六届双车接力组规则的介绍;第二章是我队双车接力系统的总体方案概述;第三章重点介绍了系统中所涉及的硬件设计方案和原理;第四章从智能车系统的机械结构出发,详细阐述了智能车系统各部分机械结构的安装和调整思路;第五章介绍了智能车系统所使用的PID控制系统;第六章对图像处理进行讲解;第七章主要对测试系统进行介绍;第八章则是对智能车一些物理参数进行了简单的汇报;第九章为自身对于智能车竞赛的一些总结和展望。

1.2本届双车接力组竞赛规则简介

  双车接力组要求制作两个车模,两个车模分别使用三轮车模(F车模)和两轮车模(D、E车模)允许使用各类电磁、红外光电、摄像头、激光传感器、超声传感器器件进行赛道和环境检测。

  一辆车模在三岔路口一条岔道中间停止。一辆车模从车库出发,到达中间车模位置时,将车上的一个尺寸不小于40毫米见方的球体传递给第二辆车模,然后停止在原地等待。第二辆车模带着球体重新绕赛道一周停在三岔路口的另外一条岔道上,只要距离三岔路口一米距离以上之后。第一辆车模便可以重新启动返回到车库。在两车接力过程中,直立车模允许暂时倒地。如图1.1。

▲ 图1.1 双车接力组任务示意图

  比赛计时以第一辆车驶出车库开始计时,直到第一辆车重新回到车库停止计时。如果第一辆车没有最终返回车库,则按照比赛最长用时(120秒)来记录成绩。

  传递的球体可以使用用标准的乒乓球,或者高尔夫球。也可以另外自制其他材质的球体,只要其直径不小于40毫米即可[1]。
  受疫情影响,决定采用线上比赛的模式完成第十六届智能车竞赛东北赛区以及全国总决赛比赛进程,根据统一线上比赛成绩同时确定东北赛区奖项以及对应国赛奖项。遵循易铺设、积分制、创新性等基本原则,自行设计线上比赛赛道。对于赛道元素所形成的任务分别赋予一定计分标准,并给出完成赛道运行的标准。对于没有完成赛道元素,不进行扣分。

  赛道铺设所占据的场地面积必须能够使用一个矩形进行覆盖。矩形的面积不超过35平方米。必须具有三岔路口、十字路口、环岛、坡道、车库。

  这些元素通过直道,弯道连接成一个封闭赛道。赛道元素之间距离没有限制,赛道元素之间的顺序没有限制。这些元素个数最多出现两次[2,3]。

▲ 图1.2 赛道设计示意图[2]

  最终通过计算从比赛发车开始到2分钟结束,或者车模故障中止比赛位置所有得分之和,确定最终比赛成绩。

 

第二章 统总体设计方案


  章主要介绍双车接力系统的总体方案设计。在后面的章节中将从硬件系统实现、机械结构设计、软件系统调试、图像策略方案及调试工具等五部分对智能汽车控制系统进行深入详细的介绍和分析。

2.1总体方案介绍

  双车接力组的任务由两部分组成,其一为两车完整稳定的跑完全程,其二为双车能够稳定接力。受疫情影响,更改后的规则允许策略更加多元,基于这样的背景,我们设计了系统总体思路框图如图2.1所示。

▲ 图2.1 双车接力系统整体思路

 

第三章 统机械设计方案


3.1三轮车机械结构

3.1.1 重心

  三轮车模的重心影响该车模的加减速性能与过弯最大速度,采用锂电池并适量增加配重,能够将车辆自身重心尽可能的降低且靠后,同时能提供足够的加速度来满足转急弯的需求。三轮车的加减速来源于其机械结构的重量分配,重心靠后时,有利于转弯,但容易抬头,所以权衡重心的位置对于三轮来说尤其重要。我们三轮车模的重心位于电机附近。

3.1.2 重量

  对于三轮车来说,重量越轻便越好。同时为了满足重心低的需求,我们将主控和驱动分开,尽可能的减少使用复杂的外部接线,尽可能使用铝制螺丝螺母而不是钢制材料,尽可能减小PCB 板体积,同时接球装置尽可能使用轻质材料。

3.2直立车机械结构

3.2.1 重心

  直立车模的重心高低同样影响车模的加减速性能与过弯最大速度,尤其是会影响过弯是否抬轮。我们采用了第十届重庆大学“不慢队”的电池支架方案,并适当的掰折,配合使用的锂电池,能够将车辆自身重心尽可能的降低,同时能满足高速状态不撞坡的要求,在此基础上,我们将发球装置简化为一块磁铁,既简洁美观又不会过多地影响结构。

3.2.2 重量

  对于直立车来说,重量越轻越好,这样其转动惯量小过弯将更加迅速。同时为了满足重心低的需求,我们将主控和驱动分开,尽可能的减少使用复杂的外部接线,尽可能使用铝制螺丝螺母而不是钢制材料,尽可能减小PCB 板体积。

3.2.3 重量分配

  直立车的加减速来源于其机械结构的重量分配,有无零位决定了该车模能否静止站立。一般来说无零位的车模加速会快,但是这样的车模无法在运行时适当减速以保证安全,所以我们的车模具有机械零位。

3.3轮胎处理

  要把速度提升到2.5m/s以上,轮胎是不可避免的一个环节。我们对于轮胎的处理是将胎纹磨浅以增大接触面积,并在其上涂抹软化剂,对轮胎边缘用硅橡胶进行了密封。

 

第四章 统硬件设计方案


4.1 总钻风灰度摄像头

  如图4.1为我队使用的摄像头:总钻风灰度摄像头。相比于黑白摄像头,灰度摄像头能够提供更多的赛道信息,且对于不同的比赛环境,适应性较强。

  由于今年内的规则规定车模外轮廓高度不能超过20cm,使得摄像头的前瞻距离显著的下降,为了应对这种情况,我们选择使用了140度广角镜头来解决视野太小的问题。

▲ 图4.1总钻风摄像头   

4.2 MM32单片机

  如图4.2所示为本小组采用的 MM32 单片机。

▲ 图4.2 MM32 单片机   

4.3 ESP8266通信模块

  ESP8266拥有两个 UART 接⼝,2 个 UART 接⼝的数据传输均由硬件实现。数据传输速度可达 115200*40(4.5 Mbps)。与NRF模块相比较,通信更加快速,但较长时间的通信会引起芯片发烫,从而停止工作,接收不到信号。使用如图4.3所示WIFI模块。

▲ 图4.3 ESP8266通信模块

4.4 测距模块

  TFmini_S 是一款小型激光雷达模组。主要实现实时、无接触式的距离测量功能,具有测量准确、稳定、高速的特点。TFmini_S有四根连接线,分别是5V电源线、GND、接收线(RXD)、发送线(TXD),其中开关量信号通过发送线(TXD)给出,与GND间形成参考电压。

▲ 图4.4 TFmini_S

  TFmini Plus 是基于 TFmini 的升级项目,它是一款小型化,单点测距的产品,基于 TOF(飞行时间)原理,配合独特的光学、电学、算法设计,主要实现稳定、精准、高灵敏度和高速的距离测量的功能。产品本身除了具有 TFmini 的低成本、小体积、测距远等特点外,还增加了 IP65 等级防护,测距精度更高,对于室外强光、不同温度、不同反射率等不同环境下适应性更强,更低功耗,探测频率也更加灵活。产品同时兼容 UART 和 I2C 通信接口,可通过指令进行切换。

▲ 图4.5 TFmini Plus

4.5 PCB绘制

  对于pcb的绘制,智能车要求较为简单,基本不用考虑各类的信号干扰、热功率等问题,但是为了提高调车、跑车的效率,在pcb绘制中应该考虑各类交互设备的布局,固定孔的位置,接插口的稳定性,并在此基础上尽可能的减小板子大小,做到小巧精干。

4.6 pcb电路原理介绍

4.6.1 7.2V转5V

  本小组使用稳压芯片 TPS 76850 输出5v电压,用于激光、单片机等供电。原理图如图4.6所示。

▲ 图 4.6 转压电路 7.2v-5v 原理图

4.6.2 5V转3.3V

  如图 4.7 所示,本小组使用稳压芯片 TPS 76833 输出电压 3.3v,用于 OLED、蜂鸣器、陀螺仪、编码器、摄像头、WIFI模块等供电。

▲ 图4.7 转压电路 7.2v-3.3v 原理图

4.6.3 双驱动电路

  选择已做好的集成IC的电机驱动芯片:BTN7971。使用两片 BTN可以构成一路驱动电路,如图 4.8所示。

▲ 图 4.8 电机驱动原理图

 

第五章 PID控制


5.1 PID控制概述

  在工业控制过程中,按被控对象的实时数据采集的信息与给定值比较产生的误差的比例、积分和微分进行控制的控制系统,简称PID控制系统。PID 控制具有原理简单,鲁棒性强和实用面广等优点,是一种技术成熟、应用最为广泛的控制系统。

  在实际应用中根据实际工作经验在线整定PID的参数,往往可以取得较为满意的控制效果。数字PID控制则以此为基础,结合计算机的计算与逻辑功能,不但继承了PID 控制器的这些特点,而且由于软件系统的灵活性,使PID算法可以得到修正更加完善,变得更加灵活多样,更能满足生产过程中提出的多种控制要求。

  在实际应用中,可以根据被控制对象的特性和控制要求灵活地改变其结构,取其中一部分环节构成控制系统。如比例控制、比例积分控制、比例微分控制等。PID 控制从 20 世纪 30 年代末期出现以来,已成为模拟控制系统中技术最成熟、应用最广泛的一种控制方式。技术人员和操作人员对它也最为熟悉。在工业过程控制中,由于难以建立被控对象精确的数学模型,系统的参数经常发生变化,所以运用控制理论分析综合代价比较大。PID 控制技术结构简单,参数调整方便,其实质是根据输入的偏差值,按比例、积分、微分的函数关系进行运算,运算结果用以输出进行控制。它是在长期的工程实践巾总结出来的一套控制方法,实际运行经验和理论分析都表明,对许多工业过程进行控制时,这种方式都能得到比较满意的效果。

  在计算机用于工业控制之前,气动、液动和电动的PID模拟控制器在过程中占有垄断地位。在计算机用于过程控制之后,虽然出现了许多只能用计算机才能实现的先进控制策略,但资料表明,采用PID的计算机控制回路仍占 85%以上。用计算机实现PID控制,形成了数字PID控制技术。它并非只能简单地重现模拟PID控制器的功能,而是在把模拟PID控制规律数字化的同时,结合了计算机控制的特点及计算机逻辑判断功能,增加了许多功能模块,使传统的PID 控制更加灵活多样,更能满足生产过程提出的要求。数字PID控制器的设计是一种连续化设计方法,这种连续化设计技术要求在采样周期化比较短的情况下,才能达到满意的控制效果。

5.2 PID原理

【通用原理部分,此处省略3000字...】

5.5 PID在智能车中的应用

  首先,电机的控制是通过编码器返回的实时速度与期望速度进行PID调节,实现速度上的闭环,从而实现小车的速度与期望的速度实现真正的相同。这里我们采用了增量式PID进行调节如图5.1,当小车比期望速度慢时,通过计算给出一个比较大的占空比,使电机加速旋转,当小车比期望速度快时,通过计算输出一个小的占空比,使电机减速,从而实现速度上的跟随。为了提高小车的速度,我们采用了直道加速弯道减速的策略,通过图像给回来的偏差进行分段,当偏差比较大时,认为此时为弯道,需要减速,此时将期望速度放慢,当偏差较小时,认为此时为直道,从而加大此时的期望速度,从而实现直道的加速。在一些特殊元素处,实现速度的特殊控制,如在环岛处,将速度设定为恒定速度,从而使小车的运行更加流畅。

 

第六章 统图像处理


6.1图像预处理

  精细的硬件构造赋予小车“健康的体魄”,是小车跑起来的基础,软件设计则赋予了小车以“灵魂”。我们的小车通过灰度摄像头采集赛道图像信息,通过图像处理算法提取出道路的中线信息,从而使小车沿着道路行驶。

  第十六届双车接力组别要求摄像头高度不超过20厘米。20厘米摄像头采集到的赛道信息很有限,因此我们采用广角灰度摄像头以获得更多的赛道信息。我们的图像预处理部分主要包括将灰度图二值化,去除车头,除去噪点,判断出有效路径。单片机运算速度有限,我们采用固定分块阈值将图像二值化,并通过滤波算法消去噪点,获得一副客观的黑白图片。

6.2 直道处理赛道中心线提取

6.2.1 原始图像的特点

  由于摄像头自身的特性,图像会产生畸变,这使得摄像头看到的信息不真实,同时由于摄像头高度较低,图像失真较严重。同时因为电路及摄像头本身特性,图像会产生很多噪点,因此我们在采集完图像信息后进行简单的软件去噪处理。图像大小为120行188列。

6.2.2 直道赛道边沿提取

  边沿提取算法的基本思想如下:

(1) 首先判断边沿的初始位置,即近处某行左右边沿。
(2) 根据初始位置进行爬边操作。
(3) 对爬边得到的边沿信息构造中线。
(4) 进出圆环和岔路的时候,进行特殊处理。

6.2.3 赛道中线提取

  对于已经提取出两条边线的情况下,我们采用赛道两边映射法,提取出不失真的中线。处理图像如图6.1。

▲ 图6.1 提取出的中线(红色)

6.2.4 弯道偏差获取策略

  在弯道中的赛道获取中心线比较困难,若处理不好会在连续弯道中造成串道或者转弯不连续的问题。所以我们对此另辟蹊径。
  因为图像本身具有梯形失真,并且会有丢边现象,我们采用单边平移的方式进行弯道处理。即将爬边得到的单边按照一定方向按照赛道宽度平移。

6.2.5 特殊元素处理

(1)圆环

  对于圆环,我们采取了“入口识别、单边寻迹”的方法。在满足电感的条件下,通过一侧是直线,另一侧有折点的方式判断圆环,然后单边循迹,若某侧是直线,循迹则按照直线。

(2)十字

  通过爬边得到的边沿,对其进行找折点的处理,由于摄像头限制,可能无法准确找到十字对面的折点,对于这种情况,按照折点附近几行的斜率给出中线。

(3)岔路

  岔路与十字同样具有两个折点,所以在近处找到折点后,继续向远处搜寻对面的分叉点,并用近处折点附近的赛道边界形状以及电感辅助判断。正确识别后,采用单边循迹的方式给出中线。

 

第七章 统调试


7.1 开发调试工具

  软件开发工具选用的是 Embedded Workbench for ARM。是 IAR Systems 公司为ARM 微处理器开发的一个集成开发环境(下面简称IAR)。比较其他的ARM开发环境,IAR 具有入门容易、使用方便和代码紧凑等特点。它为用户提供一个易学和具有最大量代码继承能力的开发环境,以及对大多数和特殊目标的支持。嵌入式 IAR Embedded Workbench 有效提高用户的工作效率,通过IAR工具,可以大大节省软件调试时间。调试界面如图7.1所示:

▲ 图 7.1 IAR 调试界面

7.2 人机交互工具

  在调试过程中需要不断地修改变量的值来达到整定参数的作用,对此我们选用了液晶屏配合按键和拨码开关的调试方法。此外,比赛的时候,我们同样用这个模块进行对参数的修改。

  其中液晶屏我们选用 OLED 液晶,该液晶具尺寸小,高分辨率等特点。界面如图 7.2 所示。按键采用五向按键其便于操作并且节省空间。设计五向按键以及4个拨码开关进行调参,显示,方案选择等部分。

▲ 图 7.2 液晶屏显示界面   

7.3 上位机调试

  车在同样的赛道上走过的路都是不一样的,所以无论怎么考虑车的状态都是不够完全的,因此需要对运行中的车进行实时监控。为了解决这个问题,我们使用wifi模块配合上位机进行实时观测车模运行状态。如图 7.3 所示。

▲ 图 7.3 上位机示波器图像

 

第八章 能车主要参数说明


8.1 直立车模

  • 模型车基本参数 长 20.5cm
  • 宽 20.5cm
  • 高 19.9cm
  • 车重 853.5g
  • 功耗 空载 10w
  • 带载 大于12w
  • 电池容量 2200mah
  • 传感器 编码器 2个
  • cmos摄像头 1个
  • 陀螺仪 1个
  • 激光测距模块 1个
  • 电磁杆 1个
  • 除了车模原有的驱动电机、舵机之外伺服电机个数 0个
  • 赛道信息 视野范围 30-150cm
  • 精度 2/13mm
  • 频率 50hz

8.2 三轮车模

  • 模型车基本参数 长 27.5cm
  • 宽 18.5cm
  • 高 19.9cm
  • 车重 1152g
  • 功耗 空载 10w
  • 带载 大于12w
  • 电池容量 2200mah
  • 传感器 编码器 2个
  • cmos摄像头 1个
  • 陀螺仪 1个
  • 电磁杆 1个
  • 激光测距模块 1个
  • 除了车模原有的驱动电机、舵机之外伺服电机个数 0个
  • 赛道信息 视野范围 30-150cm
  • 精度 3/6mm
  • 频率 50hz

 

第九章 结与展望


9.1总结

  要实现对高速行驶汽车的自主智能控制并不是一个简单的自动控制问题,它涵盖了控制、模式识别、力学、光学、电磁学、传感技术、电子、电气、计算机、机械及车辆工程等多个学科。本文采用的控制核心是一款灵动公司生产的 32 位微控制器——MM32F3277G9P,利用了微控制器的强大功能实现了智能小车对路径的自主寻迹,以及在未知环境下,结合一定的算法,实现了对智能小车的高速导航控制,从最终测试结果来看,本系统具有较好的控制性能与对未知环境的适应能力。

  对智能小车系统的自主控制,可以分为三大部分:首先是对路径信息的提取与识别,即智能小车的寻迹;然后是计算并规划路径,得出可以安全行驶的路径;最后是对车模车速的控制,即智能小车的驱动控制。

  此份技术报告中,我们主要介绍了准备比赛时的基本思路,包括机械、电路以及最重要的控制算法的创新思想。在机械结构方面,我们分析了直立车车模设计的一些注意点。在电路方面,我们以模块形式分类,在最小系统、主板、电机驱动等模块分别设计,经过不断实验,最后决定了最终的电路图。在程序方面,我们使用C语言编程,利用开发工具调试程序,经过小组成员不断讨论、改进,终于设计出一套比较通用稳定的程序。在这套算法中,我们结合路况调整车速,做到了直道加速、弯道减速,保证在最短时间内稳定地跑完全程,以及在规定时间内获得尽可能多的分数。

9.2 展望

  能够实际应用的智能车系统的研究十分复杂,需要解决的问题很多,任务非常艰巨,不是一蹴而就的,必须经过长期的理论研究和实践探索才能够取得突破和进展。展望未来,对于我们所研究的这类智能小车,我们认为今后还可在以下几个方面做进一步的研究和提升。
  (1)优化直立车模的结构,今年使用锂电池之后,车模整体重量降低了许多,这也就导致之前的祖传结构并不是最优解,如果权衡重心高低前后与加速度的关系,这点更值得后辈去研究。
  (2)在图像处理方面,可以研究更先进的算法,不过,这需要配合微控制器性能的提升,如果MM32微控制器能够具有更强大的运算能力,可以为之后处理更加贴近真实环境的情况提供了基础。

 


  准备参加第十六届全国大学生智能汽车竞赛开始,我们全队从机械、硬件、控制、图像等多方面点点积累,逐步提高,一点点完成比赛任务,应对比赛规则的变动,日臻完善。在备战过程中,场地和经费方面都得到了学校和学院的大力支持,在此特别感谢一直支持和关注智能车比赛的学校和学院领导以及各位指导老师、指导学长,特别感谢哈尔滨工业大学往届紫丁香六队张舜智、陈永哲、韩轩、刘悦等学长学姐,没有你们就不会有十六届紫丁香六队。同时也感谢比赛组委会能组织这样一项有意义的比赛,祝愿之后的比赛能够更加的公平合理,在赛事组织上能更具有适应性,更加富有趣味性和竞争力。

  我们每一个人从最初的盲目参与,逐渐变成真正的热爱。从比赛流程到比赛规则,从硬件到软件,虽然曾多次遇到困难,但我们不曾想过放弃。面对即将到来的大赛,也许我们的知识还不够丰富,考虑问题也不够全面。但是小车见证了我们努力的过程,凝聚着我们组每个人的心血和智慧,同时在备赛期间这份经验将永伴我们一生,成为我们最珍贵的回忆。

 

考文献


  [1]卓晴.第十六届全国大学智能汽车竞赛竞速比赛规则[EB/OL]. https://blog.csdn.net/zhuoqingjoking97298/article/details/110253008,2020.
[2]卓晴. 第十六届全国大学生智能车竞赛线上比赛-赛前开题[EB/OL]. https://blog.csdn.net/zhuoqingjoking97298/article/details/119529837,2021.
[3]卓晴. 第十六届智能车竞赛总决赛线上比赛赛道设计[EB/OL]. https://blog.csdn.net/zhuoqingjoking97298/article/details/119387104,2021.
[4] 王盼宝. 智能车制作: 从元器件、机电系统、控制算法到完整的智能车设计[M]. 北京: 清华大学出版社, 2017.
[5] 王淑娟,蔡惟铮,齐明.模拟电子技术基础 [M].北京:高等教育出版社.2009
[6] 卓晴,黄开胜,邵贝贝.学做智能车 [M].北京:北京航空航天大学出版社.2007.

■ 附录1 主函数程序:

int main(void)
{
  BOARD_Init();
  Peripheral_Init();
  Ctrl_Init();
  while(true)
  {
    if (ctrl_start == 0)
    {
      if (imageDispFlag == 0)
      {
        if (clearMenuFlag == 0)
        {
          clearMenuFlag = 1;
          oled_fill(0x00);
        }
        HITSIC_Menu_Disp();
      }
    }

    Main_Beep();
    
    if(mt9v03x_finish_flag)
    {
      fullBuffer = mt9v03x_image[0];
      THRE();
      image_main();
      mt9v03x_finish_flag = 0;
    }
  }
}


● 相关图表链接:

以上是关于智能车竞赛技术报告 | 双车接力组 -哈尔滨工业大学 - 紫丁香六队的主要内容,如果未能解决你的问题,请参考以下文章

智能车竞赛技术报告 | 双车接力组 - 黑龙江工程学院 - 睿龙二队

智能车竞赛技术报告 | 双车接力组 - 沈阳航空航天大学 - 精神小车成双 - 双轮车

智能车竞赛技术报告 | 双车接力组 - 沈阳航空航天大学 - 精神小车成双 - 三轮车

第16届智能车竞赛双车接力组—直立车经验语录

全国大学生智能车竞赛双车接力组芯片申请汇总

RT-Thread在16届智能车竞赛双车接力组中的应用