卓大,我们想申请技术创新特邀进国,我们的技术创新点是避免掉采集误差,以及提高GPS数据分辨率以GPS实现精准定位,希望卓大和评委老师能够给予一个机会

简 介: 本文介绍了第二十届全国大学生智能汽车竞赛中的越野R型车模智能车系统。系统包括车模的机械结构、硬件电路和软件开发流程。车载核心控制器和驱动核心控制器均采用德国英飞凌公司生产的单片机TC264。通过引入GPS全球定位系统,车模能够依据预设的定位点进行自主运行。系统设计涵盖了车模的机械结构、无刷电源方案、传感器电路和信号处理,以及控制算法的优化。赛车利用GPS和IMU进行路径规划,通过融合GPS与IMU的角度信息,确定当前位置与规划路径的偏差,并使用PID算法控制无刷电机的功率,使用PD算法控制舵机。同时,通过编码器获取当前速度,并利用PID控制实现速度的闭环调节。

关键词 英飞凌TC264智能车越野无刷驱动PIDGPS

 

01   言


  国大学生智能车竞赛是面向全国大学生的一种具有探索性工程的实践活动,是教育补倡导的大学生科技竞赛之一。

  本竞赛以智能汽车为研究对象,以“立足培养,重在参与,鼓励探索,追求卓越”为指导思想,旨在促进高等学校素质教育,培养大学生综合知识运用能力、基本工程实践能力和创新意识。

  全国大学生智能汽车竞赛以智能汽车为研究对象,结合汽车电子技术,设立了多个组别,让参赛学生利用电子技术、图像识别、传感器技术和机械结构等知识完成任务。竞赛形式包括竞速赛和创意赛等,旨在选拔出最优秀的团队。竞赛不仅提升了参赛者的电子信息技术能力、团队合作能力以及工程实践能力,还贯彻了“政府倡导、专家主办、学生主体、社会参与”的方针,通过透明的规则和竞争机制,激发了各方的积极性,推动了比赛的风格和水平提升。

  在本届全国大学生智能汽车竞赛的全国总决赛中,共设有电磁组、镜头组、气垫组、摩托组、视觉组、模型组、越野组、轮腿组和独轮组九个组别。

  在本届比赛的极速越野项目中,我们使用了德国英飞凌公司生产的TC264单片机作为核心控制模块。通过引入GPS定位系统、声音追踪传感器、电机驱动模块以及相应的控制算法,我们在提供的越野车模上搭建了一辆智能车。这些智能车能够自主进行越野赛道的定位。项目的核心目标是实现短时间内的精确定位,通过精准的GPS定位极速,使车辆能够有效地识别赛道特征,并完成指定的越野任务。最终,我们旨在以最短的时间完成赛道,从而展示我们在智能车技术应用方面的创新与实力。

  在这份报告中,我们小组将通过小车的设计制作整体思路,其中包括电路设计、程序设计、参数调制的介绍,详尽地阐述了我们的制作过程以及思想创意。在比赛的准备过程中,我们小组成员涉猎多个方向学科包括且不限于控制、机械、电力电子、嵌入式编程等。本次比赛凝聚了全体队员和指导老师的心血与智慧,我们希望通过这份报告与其他学校的同学进行交流与讨论。

 

02 模设计


一、越野组比赛要求

  (1)主控芯片

  在越野信标组中,主控芯片限定使用英飞凌的Infineon TC264

  (2)传感器

  允许使用北斗-GPS;硅麦(Infineon);摄像头、光电管等;

  (3)任务要求

  车模从出发区出发,通过GPS导航定位,按指定的技术动作完成四个赛道并回到发车区域,包括锥桶,坡道,草地,桥洞,掉头区域,减速带,停车区。

二、机械结构设计

  本次比赛我们选用R型车模。由于越野比赛时车模需要达到一定的速度,为了保证车模在高速运行时具有一定的灵活性,我们去除一些无关紧要的零件,利于检修和布局,更好的减轻车模重量,降低了车身的重心,同时保证了车模优美的外形。

三、硅麦的安装

  硅麦作为声音定位的传感器,位置安装组合直接影响了声音识别的效果。车模采用一个硅麦传感器,将硅麦传感器通过杜邦线固定在车模上,为了保证声音识别判断准确,我们将硅麦安装在车子中部。

四、灯板

  在越野比赛中,为了完成科目四任务,我们加装了灯板。灯板采用了英飞凌TLD7002芯片作为驱动芯片,驱动一个715 的LED矩阵灯板。

五、陀螺仪的选择与安装

  在越野车模的运行中,我们需要实时了解车辆的姿态、加速度以及角速度,以便对车模进行精确的闭环控制。为了满足对高精度数据和稳定性能的需求,我们选择了IMU963九轴陀螺仪。IMU963集成了3轴陀螺仪、3轴加速度计以及3轴磁力计,并配备了先进的四元素数据处理算法,可以提供全面的运动信息和高度精确的传感数据。这使得IMU963能够支持越野车模在复杂地形中的精确控制,满足我们对数据采集和处理的高要求。

 

03 路设计


一、电路需求分析

  车模中的电路板是系统的核心部分,在拼接电路前我们需要分析车模的功能需求设计具体电路,进而再进一步地进行集成等等。

  在车模的运行中,我们需要满足这些模块功能:陀螺仪模块、电机驱动模块、GPS采集模块、硅麦声音采集模块、无线串口通信模块、按键调参模块(包括屏显、按键以及Flash储存)以及为以上所有模块供电的供电模块等等。

二、稳压电路设计

  由于我们使用的是3s航模锂电池,所以我们设计的供电模块电路需要将电池电压稳定为12V,5V,3.3V对各模块进行输出,为满足此需求我们使用多款稳压芯片完成,且通过0欧姆电阻对数字地、模拟地、功率地进行隔离。供电电源设计通常取决于负载所需的电压和不同元器件的要求。

  驱动的12V稳压,我们选择了SCT2450芯片。SCT2450是一款高功率密度的全集成同步降压DCDC转换器。SCT2450具有广泛的输入电压范围(3.8V到36V),减少了对输入端浪涌保护设计的需求,能够提供高达5A的连续输出电流。其开关频率可调,从100kHz到1.1MHz,可以根据具体应用需求优化转换效率或减少外围器件的尺寸。在静态状态下,SCT2450的静态电流仅为25μA,适合轻载高效应用。此外,它还具备过热保护、输出过压保护和输入欠压保护等多种安全保护功能,确保应用的安全性。SCT2450采用ESOP-8封装,简化了管脚设计,便于小型化。此外,它还支持低压差LDO工作模式和负电压降压转换设计。

  主板舵机部分由于需要的电压较特殊,我们采用LM2941C和电位器旋钮确定电压大小。LM2941C是一款高效的1A、26V可调节低压降稳压器,具备使能功能,并具有高电源纹波抑制比(PSRR)。它的输入电压范围为5V至20V,压差为1V(在1A输出电流下),待机电流为10mA,工作温度范围为0°C至125°C。该稳压器提供多种保护功能,包括热保护(TSD)、过流保护(OCP)、防静电保护、过压保护(OVP)、短路保护和防反接,确保了其在各种工作环境下的稳定性和可靠性。LM2941C具有正极输出和单通道输出,适用于要求高稳定性和可靠性的应用。

  主板和驱动的5V稳压,SY8120B1是矽力杰(SILERGY)公司推出的一款高效同步降压DC-DC转换器,采用PWM技术并集成了主开关及同步开关,以降低能耗。其输入电压范围为4.5V至18V,并支持使能控制功能,适用于机顶盒、便携式电视、路由器、DSL调制解调器、LCD电视、IP摄像头和网络设备等应用。该芯片提供2A的输出电流,并利用InstantPWM技术显著提高瞬态响应,同时软启动功能可防止浪涌电流冲击。其具有2%精度的0.6V基准电压,并具备逐周期电流限制保护。SY8120B1符合RoHS标准,环保无卤素,并采用SOT23-6封装。

  主板和硅麦的3.3V供电采用了RT9013,这是一款由Richtek(立锜)公司生产的固定电压稳压器,属于低压差(LDO)线性稳压器。RT9013-33GB能够提供固定的3.3V输出电压,最大输出电流为500mA,其输入电压范围为2.2V至5.5V。该稳压器具有250mV的低压差特性,并采用SOT-23-5封装,便于小型化设计。在静态状态下,其电流低至25μA,有助于延长电池寿命。RT9013-33GB的功耗为0.4W,工作温度范围为-40°C至85°C。它具有高PSRR(电源抑制比)、低噪声和快速瞬态响应等优点,非常适合用于手持无线设备应用,并支持低ESR(等效串联电阻)陶瓷电容器,从而减少电路板空间。在关断模式下,该稳压器的功耗为0.7μA(典型值),并且导通时间小于40μs。

三、电机驱动电路设计

  在电机驱动电路的设计中,我们选用了以CYT4BB7为核心的无刷电机驱动方案,并通过主板的PWM信号来控制电机速度。

  我们采用的BSC014N04LS是英飞凌推出的N通道MOSFET芯片。它耐压值为40V,25℃时连续漏极电流可达32A(Ta)或100A(Tc)。该芯片导通电阻低,在50A电流、10V电压条件下,最大导通电阻仅1.4毫欧。凭借先进薄晶圆技术,其导通电阻比同类器件低15%,品质因数(Rds(on)×Qg)改善31%。它采用SuperSO8封装,为表面贴装型,功率最大为2.5W(Ta),工作温度范围在-55°C至150°C之间。该芯片优化用于同步整流,可实现高系统效率,降低系统成本,常用于太阳能微型逆变器、隔离式DC-DC转换器等领域。

  为了驱动MOSFET,我们使用了英飞凌的AUIR2181,这是一个高压、高速的MOSFET和IGBT驱动器,具有独立的高侧和低侧参考输出通道,适用于自举操作。它能够支持最高600V的工作电压,门驱动电源范围从10V到20V,并且兼容3.3V和5V逻辑输入,增强了噪声免疫力。

  在电流放大部分,我们选择了COS8552SR,这是一款由Cosine Nanoelectronics(科山芯创)生产的双通道、高精度零漂移运算放大器。它采用SOP-8封装,工作电压范围为1.8V至5.5V,具有1.5MHz的增益带宽积(GBP)和900mV/μs的压摆率,输入偏置电流仅为3pA,工作温度范围为-40°C至85°C。

四、Flash芯片选择

  在车模运行需求中,我们需要将参数储存在外置的Flash芯片中,以通过按键和屏幕的方式实时进行参数或者方案的调整,为此我们需在主板上绘制Flash芯片存储模块。

  最终我们选择了W25Q64Flash芯片,该款芯片采用了SPI通讯方式,拥有8M的内存大小。W25Q64支持SPI数据传输时序模式0(CPOL = 0、CPHA = 0)和模式3(CPOL = 1、CPHA = 1),模式0和模式3主要区别是当SPI主机硬件接口处于空闲状态时,SCLK的电平状态是高电平或者是低电平。对于模式0来说,SCLK处于低电平;对于模式3来说,SCLK处于高电平。不过,在这两种模式下,芯片都是在SCLK的上升沿采集输入数据,下降沿输出数据。数据长度8位大小,先发高位,再发低位。在标准模式下支持80M bit/s速度,快速模式下支持160M bit/s速度,高速模式下支持320M bit/s速度。足以满足我们的需求。

五、PCB绘制

  在通过部分电路的Multisim的仿真以及通过Altium Designer的原理图绘制后,我们将开始绘制PCB,该部分包含元件封装导入,元器件摆放,走线覆铜以及检查这些步骤,而在设计PCB时,我们采用了以铜层为大地GND的设计方式。

  更多PCB细节图片见附录部分。

 

04 件设计


  设计软件过程中,我们组采用了先分别测试GPS定位,陀螺仪姿态控制,语音识别三大模块,再进而在此基础上进行整合,并逐步优化控制算法。因而在下面的软件设计介绍中,将会主要介绍三大模块和整合时主要用的速度控制PID算法和采集误差消除的软件设计。

一、软件控制流程

  智能车的控制系统是其在复杂环境中平稳运行的核心。高效且稳定的控制程序对于智能车至关重要。一个优质的控制系统应具备鲁棒性,能够在预设赛道上顺利完成任务,并在未知环境中表现良好。

  类比于KMP算法,如果我们能够将利用好所有的已知信息,例如赛道延申方向,元素摆放距离,那么我们的车模就可以有很高的速度上限,速度决策方案和很好的控制方案

二、GPS自动生成点位的数据采集

  比赛正式开始之前,我们会抱着车模到达每个任务点位进行经纬度采集,并且将数据记录进入flash模块,保证断电后,仍然可以使用经纬度,不再重新踩点。那么这里设计到一个比较严重的问题,我们都知道,GPS点位经纬度信息可能会随着时间的变化而变化,即GPS漂移,此变化我们称为准度,即是说如果采集的点位很多,最后回到发车区域发车,小车无法按照预定路线准确行驶,假设说,小车踩点时不存在点位漂移,即GPS点位经纬度不会随着时间变化而变化,当我们进行踩点时,小车踩点仍然可能不准,因为GPS定位精度1.5米,在一个地方踩点,生成的点位经纬度信息很可能距离目标点位有一定的差距,此变化我们称之为精度。如果是粗略定位,那么这种误差不会影响,但是如果要求精确定位,例如纯GPS过桥洞,这种采集方式就会有很大的误差,总而言之,在采集点位阶段,会因为时间和GPS的系统误差,造成精准度不够,导致无法进行精确定位,如果有设计到精确定位的要求还需要结合镜头等传感器。

  那么解决到采集过程的误差,就是精确定位至关重要的一步,人为抱车去任务点采集信息不仅费时费力还引入了不小的误差,基于此种情况我们对采集过程进行了改进,改进如下,

  我们不采用人为踩点,而是自动生成点位,具体操作如下:

  小车在发车点收集自身的经纬度信息,然后指定方向(GPS的方位角在0到360度),我们以263.1度为例子,指定距离(米),就可以自动生成一个点位,将这个点位的经纬度信息记录下来,具体代码如下:

  由于GPS在短时间内漂移很小,采用这种方式,准度得到了很好的保证,由于是自动生成,精度误差远小于1厘米,有效地消除了所有的过程误差,此为精确定位的前提

  依托自动生成点位,对科目一进行地图构造

三、GPS数据的高分辨率处理

  在消除掉过程误差后,仅仅只是满足精确定位的前置条件,想要真正实现使用具有精度为1.5米的GPS精准定位还需要在小车行进过程中对其提供的GPS经纬度信息进行处理,具体处理如下:

  我们使用GPS完成导航很重要的一步就是获取当前离目标点的距离与设置的阈值进行比较,如果小于阈值就判断切点,这个在低速下十分有效,但在高速下,就有很大的缺陷,举例来说,我们GPS更新频率普遍为10赫兹,那么如果车速达到了15米每秒,那么每100毫秒距离变化就会约为1.5米,想想一下这样一个场景,小车在距离目标点2.95米处,使用的阈值为3米,此刻GPS算出的距离信息为3.05米,此刻,小车本来应该切点,但是由于GPS数据差了5厘米,这100毫秒,小车就无法切点,只有等待下一个100毫秒,也就是大约1.5米处,那么如果重新在发一次车,小车仍然在距离目标点2.95米处的位置,此刻GPS记录的数据也有可能是2.93米,也就是说小车在这个地方应该切点,综上,在点位没有任何漂移的情况下,小车在高速下,很可能因为偶然的原因导致切换点位的距离误差在十分之一速度处,车速20米每秒,误差范围就在2米,这是GPS更新频率太低导致的,如果不解决更新频率,那么只能减速处理,比如降到3米每秒,那么误差度就在30厘米,到达了一个可以接收的范围,但是我们可以采用提高分辨率的方法,不用降速也能解决这个误差度的问题,方法如下:

  因为GPS更新频率为10赫兹,这个是无法修改的,但是,对于它给出的距离信息,我们可以进行处理,我们可以利用速度信息,把点位图手动连成线状图,例如,当下这个5毫秒,我们的到距离为3.75米,下一个5毫秒,GPS信息还没有更新,计算结果仍然为3.75米,但是我们可以用编码器(或者GPS速度信息)将这个5毫秒内距离算出来,例如走了10厘米,这样用3.75米去手动减去10厘米即变为了3.65米,然后每次一更新经纬度信息,这个用编码器(或者GPS速度信息)积累起来的距离立刻清零,然后重新积分,这样做做到了每5毫秒判断一次距离信息,而且每次距离都不一样,虽然这个做可能不太准确,但是在高速下,可以将很大的误差度降低到很小(理论上是直接除以20)这样就可以保证每次发车几乎是在同一个地方切换点位,使不确定度大大降低。实现短时间内的精准定位导航,和路径高度一致。(从一定程度避免了越野车的隔夜车现象)

  代码实现如下:

四、GPS的系统延时处理

  提高了分辨率之后,我们发现仍然无法满足精确定位导航,小车总是在超过目标点一定距离后才停下来,几乎没有提前停下来的情况,而且随着速度的增大超过部分就会越多,我们怀疑是GPS模块内部存在着系统延迟,固定延迟一段时间,于是我们设计方案进行测定

  经过实地测试,我们得到了一张这样的GPS距离信息表

  测试背景为上坡,上面曲线为距离目标点位的距离,变化范围是(6.14米,13.11米),横坐标一格为100毫秒, 下面折线为标志位变化,设计思路为,下面标志位变化时,小车实行反打制动,因为为紧急刹车且测试背景为上坡,故可以认为小车没有滑行距离,几乎可以认为是原地停止,在紧急制动后小车距离信息没有马上保持稳定,而是以斜率缓慢减小的方式,慢慢下降至稳定状态,最终保持稳定。

  经过以上测试,我们得到了一个结论,GPS的系统延时为400毫秒左右,也就是说,我们此刻拿到的GPS经纬度其实是400毫秒之前的实际位置的经纬度信息,在小车低速下影响很小,但在高速下影响很大,例如,小车以20米每秒速度行驶,此刻,小车实际距离目标点10.1米,但由于系统延时,GPS计算得到的信息大约为18.1米,如果不想办法去除系统延时,那么,想让小车在高速下而且稳定地在2米处切点是几乎不可能的,要想实现精准定位切点,要么降低速度,使整个系统误差减少(系统距离误差约为速度*0.4米),要么就要去除系统误差。

  我们采用的方法是手动减去小车速度*0.4的距离实现大概消除系统误差,使小车在高速下也能精准地切点从而不浪费时间也能精准定位

  代码如下:

  以上是我们对gps导航算法进行的优化。基于此,对比其他参赛队伍,我们实现了短时间内的点位零误差,使用编码器数据补偿距离信息实现距离更新的高分辨率,使用手动内减系统延时,实现高速下,gps经纬度数据与自身实际经纬度数据高度一致。使车模的速度上限大大提高。

五、转向控制处理——九轴姿态解算

  转向控制,基于硅麦算出的反馈值来设定目标值,并通过陀螺仪通过四元素算法进行调整。这种方法确保车模能够精准地调整方向,实现稳定的行驶路径。

  我们通过使用九轴陀螺仪四元数法来修正航向角度(roll)、俯仰角度(pitch)和偏航角度(yaw),实现高精度的姿态估计。四元数是一种用于表示三维旋转的数学工具,可以有效避免欧拉角表示中的万向节锁问题。首先,陀螺仪测量的角速度数据被用来计算当前姿态的四元数增量。四元数的更新依赖于角速度与时间的乘积,从而得到一个新的四元数,这个四元数表示了从当前姿态到下一时刻姿态的旋转。通过这种方式,系统可以实时更新并修正roll、pitch和yaw的角度。

  为了提高姿态估计的准确性,通常还会结合加速度计和磁力计的数据,使用传感器融合算法来补偿陀螺仪的漂移。加速度计提供了关于车辆或设备在重力方向上的加速度的信息,磁力计则提供了地球磁场的方向数据。但是由于无刷电机的原因,磁力计的数据并不准确,所以我们并没有采用,这些信息通过四元数算法与陀螺仪数据融合,生成一个更加稳定的姿态估计。具体而言,四元数算法会将这些传感器的测量值转换为四元数,并通过优化过程调整当前的姿态估计,以减小误差,从而精确地修正roll、pitch和yaw角度。这种综合应用四元数的修正方法,确保了姿态估计的高精度和稳定性,广泛应用于无人机、航天器以及智能设备的姿态控制系统中。解算代码如下:



六、IMU解算中yaw轴的GPS航向角修正

  由于IMU解算得到的yaw只能由陀螺仪得出,无法融合加速度计的数据,所以如果yaw轴数据出现漂移或者偏差,无法通过自身解决掉这个偏差,小车行驶即便获得精确的自身定位信息和目标点信息,但是由于yaw轴数据偏差,小车也无法按照预设路径准确行进,那么修正yaw数据就是很有必要的,我们可以利用小车直线行驶一段时间(如2秒),将2秒后的经纬度与2秒前的经纬度算出方方位角,然后重新解算IMU数据,这样做就将之前积累的偏差给去除掉,达到数据的相对准确,我们可以在大拐弯,上坡道,过减速带,等复杂路段后,对yaw轴数据进行重新积分,达到精确定位

七、纯GPS过桥洞(虚拟巡线)的处理方法

  由于桥洞的宽度只有短短50厘米,即便是精准定位,点位不会漂移,但是实际上还是可能因为没有对准入口导致桥洞过不去,由于普通的gps导航算法只能保证距离目标点的方向是对的,并不能保证与桥洞延申方向在一条直线上,即是“斜着进入桥洞”,如果不引入镜头,很可能无法通过桥洞,如图

  因为仅仅靠GPS导航,只能保证距离目标点的方向对了就行,无法保证与桥洞延申方向为三点共线。

  事实上,对于桥洞延申方向信息,我们在量测赛道时可以得到,那么我们可以在原来偏移量上再多引入一个角度差(此刻位置与目标点位的方位角,与已知桥洞的方位角做差)使舵机多打一个角度差,可以实现如图显示的特殊路径,用三点共线线的方法把路径“强行拉回线上”,使它必须以三点共线的姿态通过桥洞,一旦三点不共线(自身点,桥洞入口点,桥洞出口点),会产生一个较为强大的角度,我们称为extra_angle去把它拉回中线,我们也给这种强行三点共线法取了一个名字称为虚拟寻线法(事实上,这个extra_angle将小车牢牢绑定在这条经过目标点位和已知方向的直线上),无需使用摄像头也可以很好的通过桥洞

  代码如下:

  这种做法类似于室内镜头巡线时,发现图像中心不在赛道中心,从而产生偏差进而进行控制,对于室外,这个偏差源就变成了方位角与已知方向的偏差,赛道中线就变成了过桥洞点的已知中线

八、速度控制处理——PID控制算法

  我们使用单个无刷直流电机驱动车模,通过程序调节电压来控制车速。速度控制策略包括:当车距信标灯较远时,加速行驶;靠近时则减速。在转弯时,通过前置舵机调整最小转弯半径。由于车模体积较大,简单前进可能导致车围绕信标灯转圈,因此引入倒车策略来改善这一问题。通过调整PID控制器的参数,减少超调量,实现精确的转向控制。

  在车模的运行过程中,需要控制电机的转速以达到寻迹的效果,通过舵机和差速来实现转向控制,电机控制转速并通过PID进行控制。

  PID控制是一种强大的控制方法,通过合理调整比例、积分和微分参数,可以实现对舵机和电机的精确控制。通过优化这些参数,控制系统可以在各种应用中表现出良好的稳定性和响应性。

  在闭环控制越野车舵机电机的调试过程中,首先需要确保所有相关硬件设备正确连接,这包括舵机电机、传感器和控制器。接下来,在控制软件中配置初始的PID参数,并设定目标位置,以便系统可以开始运行。启动PID控制器后,观察舵机的实际响应,并根据实际表现逐步调整比例增益(P)、积分增益(I)和微分增益(D),以优化控制效果。调整过程中,需要特别注意系统的稳定性和响应速度,通过反复测试和微调这些参数,可以减少稳态误差并改善系统的瞬态响应。最后,经过长时间的运行测试,确保系统在各种操作条件下均能保持稳定和准确。而最终经过我们小组的多次试验,使用PID闭环调节小车后车模的运行效果远比直接开环输出的效果更好。因此我们采用了该方案作为电机驱动的核心控制方法。

九、GPS定位导航的具体导航方式

  收集到经纬度数据后,通过人机交互的方式,设置点位的类型速度,以及是否减速,写入一个综合的点位结构体

  发车时,传统做法是先将小车车头正对北方,开始陀螺仪解算,然后将小车转向第一个目标点方向。

  我们采用的方式为万向发车,具体操作为,先记录下当前位置,再让小车直走(借助陀螺仪做角度闭环),一段时间后,记录下当下的经纬度,利用两个经纬度信息计算得到方向角,以此为基础,再结合IMU的四元数解算,完成不用对北的发车方式。

  在while循环里检测到目标点的距离与设定的阈值,如果达到阈值就切换点位,执行相应点位的特殊任务,例如可以对yaw轴数据进行重新积分

  基于此,小车可以在准确地在设定的距离阈值处切点,并且所有的数据信息都可以修正,不会随着时间的变化而使传感器数据可信度降低,即可实现精准定位导航

十、语音识别的模糊分割

  我们采用硅麦模块进行数据采集,调用api将adc信息转换为语音信息,

  我们的具体工作在收到语音信息后,首先,由于方言,网络,等原因,我们说的和识别到的文字具有一定的差异性,例如,停进停车区2可能被识别为挺进停车区啊,所以,指望成功率百分百几乎不可能,那么就需要我们分析语句中含有的其他信息来判断归类,即为模糊分割匹配

  对于指定的十五条命令,我们可以确定哪些特殊字可以作为分割点,例如,顺时针转一圈,这个“圈”就可以作为结束分割点,再例如,向前直行10米,“向”字就可以作为向前分割点,我们采取的做法是,将五条指令一次性念完,理论上需要找到四个最佳分割点将五句话分割为五段,我将所有字分为普通字,向前切割字,向后切割字,我们定义一个二维数组,对每个字(uft8编码下,每个字认为第三个字符是有效位置)进行分数评判,这个字为向前分割字,就在这个字的位置加分,如果这个字为向后分割字,就在这个字的后一个字的位置加分,完成完整段话的分数统计后,选出四个得分最高的分割点将整个字段进行分割。即为完成了模糊分割,这种做法在很大程度上避免掉,关键字识别错误导致的分割错误。

十一、语音识别的模糊匹配

  当下,我们已经将整段话分割为了五句话,对于每一句话,我们再开辟一个二维数组,假设总共有15条语令,则大小为15乘2,将每条语令的字分为关键字(这个字为它特有),普通字,对于关键字我们就加三分,对于普通字

  我们就加1分,对于每一条分割的语令,把十五句话遍历一遍,选取得分最高的语令,作为它的识别对象。相关代码如下:

十二、语音任务的具体执行

  将识别的出来的语令与具体的执行函数绑定,即可以通过语令号找到具体执行函数,这里我们运用了函数指针

  综上,对于语音识别,我们的做法有了很强的鲁棒性,即便只识别了一部分正确的字也能较好的分割识别出正确的语令

 

05 发调试工具


一、开发环境介绍

  程序的开发是在 ADS(ARM Developer Suite)下进行的,包括源程序的编写、编译和链接,并最终生成可执行文件。

  ADS 是一款专业的集成开发环境(IDE),专为 ARM 架构微处理器及微控制器设计。该开发环境提供了一套完整的工具链和功能,以支持嵌入式系统的高效开发与调试。其核心特点包括性能优异的 ARM C/C++ 编译器,该编译器具备强大的代码优化能力,能够生成运行效率高、占用资源少的目标代码。ADS 中的 ARM 汇编器为开发者提供了灵活的汇编语言编程支持,方便进行底层硬件操作和关键代码的优化。ADS 还包含功能完善的链接器,可处理复杂的链接任务,将多个编译后的目标文件整合为最终的可执行文件,同时支持库文件的创建与管理,有助于提高项目的模块化程度和代码复用率。

  开发环境配备了高效的代码编辑器,支持 C、C++、汇编等多种编程语言的语法高亮、自动缩进和代码提示功能,有效提升开发效率。项目管理工具能够帮助用户有序组织各类项目文件,便捷地进行项目配置与管理。此外,ADS 提供的命令行工具支持脚本化操作,便于实现自动化构建和测试流程,满足大规模项目开发的需求。

二、调试工具介绍

  Vofa+是一款插件驱动的高自由度串口上位机,有着极致简约的协议设计,可以轻松推送数据、命令、参数。且拥有2D、3D数据可视化功能,我们通过Vofa+进行了单片机各项功能的不同调试。

  我们通过vofa+查看固定PWM的追踪效果从而调试PID闭环参数。运用 PID 控制的关键是调整三个比例系数,即参数整定。PID 整定的方法有两类:一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数。由于智能车整个系统是机电高耦合的分布参数系统,并且要考虑赛道具体环境,要建立精确的智能车运动控制数学模型有一定难度,而且对车身机械结构经常进行不断修正,模型参数变化较频繁,可操作性不强;二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单,采用了这种方法。在调试陀螺仪时我们也通过vofa+进行模拟,查看代码效果如何。

 

06 模主要参数


一、车模主要参数

 

07   结


  过这一次全国大学生智能汽车竞赛,我们小组在极速越野项目中积累了宝贵的经验。赛区赛是在2025年7月举行的,我们从2024年开始筹备。极速越野项目要求我们精准配合,特别是在实现小车的精准定位,并准确记录GPS数据以确保路径跟踪。

  对于越野车模型,我们首先面临了GPS信号的稳定性问题。在最初的测试中,我们发现GPS模块经常丢失信号,导致车辆导航失误。经过反复调整,我们尝试了不同型号的GPS接收器,并优化了天线位置和车辆遮挡问题。通过这些调整,车辆的定位精度显著提高,从最初的不稳定到后来的稳定导航,整个过程充满挑战,但最终实现了预期的效果。

  而在硅麦声音识别中,我们需要精确地通过声音识别,调试过程中,我们遇到了各种干扰噪声和误差问题。通过细致的算法调整和硬件优化,我们逐步提高了系统的定位准确性。经过反复测试和调整,我们成功实现了通过声音信号不丢失,这离不开团队成员和指导老师的共同努力和坚持。

  而除此之外,也有着种种的其他困难频频出现。或是PCB设计的不合理导致接线困难,或是行驶过程中主板摄像头等排线的固定方式不可靠产生短路或断路的故障,或是机械结构不够简洁导致速度效果等不理想,又或是主控芯片的突然宕机导致终止等等。但我们都逐一排查问题、面对问题最终解决了这些问题。

  在这半年多的时间内,我们不但解决了各类的怪异问题,也逐步提升了自己的综合知识,工程素质。无论是逻辑思维能力、编程语法规范或是其他各项我们都得到了不菲的提升。这也恰恰是全国大学生智能汽车竞赛“立足培养、重在参与、鼓励探索、追求卓越”的宗旨。我们的注重能力、创新能力、综合运用知识能力都逐步提升。

  我们也曾为此失落过、迷茫过,但我们也为此欢笑过、喜悦过。在小车的不断提速中,我们也不断地完善了自己。

  在此,我们衷心感谢学院提供的实验场地,感谢队员们的相互坚持、相互鼓励,感谢组委会和各比赛承办高校,组委会和各承办高校今年充分利用互联网,与各参赛队员、指导老师们频繁交流,不断完善,有效扩大了比赛影响力,感谢指导老师的辛勤教导,感谢大赛组委会给予我们去拼搏努力的平台与机会。

 

考文献 ※


[1] 董景新、赵长德、熊沈蜀、郭美凤,《控制工程基础(第2版)》,清华大学出版社,2001.8

[2] 胡寿松著,《自动控制原理(第6版)》,科学出版社,2015.12

[3]卓晴,黄开胜,邵贝贝,“学做智能车”,北京航空航天大学出版社

[4]陶永华,“新型PID控制及其应用”,2002

[5]杨延军,《嵌入式系统开发原理与实践》,北京大学出版社,2011.1.1

[6]谭浩强,《C语言程序设计》,清华大学出版社,2019.4

一、附录

1、车模外观照片

2、电路板PCB图

3、电路板原理图

4、 部分代码


Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐