“零远见” AI Trace Car,如何运行20厘米的前瞻性效果
概括
本文详细介绍了山东大学()在第15届国家大学学生智能汽车比赛中的AI电磁小组中的ACE团队的系统计划。内容包括AI汽车系统的原理,软件和硬件解决方案的设计以及神经网络模型的生成过程。
该竞赛使用竞争组织委员会统一指定的C型汽车模型。 AI汽车使用微控制器作为控制芯,使用电感器来收集轨道信息,并使用编码器来获得汽车的速度。使用IAR和KEIL5集成的编译环境来编写C语言代码,用作编译器,使用程序语言编写程序,构建神经网络,实现NRF通信调试,训练汽车模型以完成轨道元素的判断并使用轨道内存算法控制目标速度。为了达到长直加速度的效果,请使用IPS LCD屏幕和按钮作为辅助调试方法。
在大量的软件和硬件测试,数据收集和测试之后,成功设计了“零前看起来” AI跟踪车,并且具有高达15至20厘米的前瞻性效果。
关键字:跟踪记忆,元素判断,神经网络
01简介
全国大学学生智能汽车比赛是由教育部自动化主要教学指导委员会赞助的全国大学学生智能汽车比赛。竞争以“基于耕种,专注于参与,鼓励探索和追求卓越的指导”。它旨在促进高等教育机构的优质教育,并培养大学生的全面知识应用能力,基本的工程实践能力和创新意识。智能汽车竞赛涉及多个学科,例如自动控制,模糊识别,传感技术,电子,电气,计算机,机械和汽车,为大学生提供一个舞台,以充分展示他们的想象力和创造力,吸引越来越多的人吸引大学生的人从不同的专业参与其中,这激发了大学生的创新思维,并且是培养其实践,创新能力和团队精神的最重要价值。比赛分为三类:速度竞争,创意竞争和技术解决方案竞赛。
人工智能是计算机科学的一个分支,它试图理解智能的本质并产生一种新的智能机器,该机器可以以类似的方式与人类智能做出反应。该领域的研究包括机器人,语言识别,图像识别,自然语言处理和专家系统等。由于人工智能的诞生,理论和技术已经变得越来越成熟,并且应用领域也在不断扩大。可以想象,未来人工智能带来的技术产品将是人类智慧的“容器”。人工智能可以模拟人类意识和思维的信息过程。人工智能不是人类的智力,而是像人类一样思考,可能会超越人类的智慧。
随着人工智能的兴起,全国大学学生智能汽车比赛也引入了与之相关的比赛。 AI电磁基与以前的电磁基团不同。尽管该方向是根据采集电感的电压控制的,但该竞争的前景基本上为零,但汽车型速度达到了一定的价值,并且很难提前有效地进行控制指示,从而导致汽车急忙赶出曲目。因此,在这场比赛中,我们引入了相关的深度学习解决方案,以弥补前景不足的缺点。
主要文本分为六章。第1章主要介绍竞争系统的整体计划;第2章主要根据汽车模型的整体布局介绍了汽车模型每个部分的安装和调整计划。第3章重点是介绍系统中涉及的硬件设计方案和电路原理;第4章主要介绍了车辆模型系统的软件方案,包括传统的PID原理分析,并专注于引入某些算法和AI的一些核心程序;第5章解释了调试过程中的一些方法。第6章主要介绍汽车模型的各种参数。
第1章系统解决方案设计概述1.1系统框图
图1.1系统结构框图1.2系统简介
智能车辆系统的总体工作模式是:7个电磁传感器收集轨道信息,使用OP放大器输入微控制器,并进一步获取主要轨道信息;通过编码器检测到车速,并使用微控制器。设备的输入捕获函数执行脉冲计算以获得速度和距离;转向伺服器采用AI PID控制;
驱动电动机采用PID控制,并通过PWM控制驱动电路调节电动机的功率;车速的目标价值由基于AI处理的默认值,操作安全方案和优化策略全面控制。
训练AI算法时,我们会使用培训数据的获取;使用霍尔传感器实现了轨道元素和停车位的识别。根据智能汽车系统的基本要求,我们设计了系统结构图,如图1所示。在满足竞争要求时,我们努力使系统简单高效,因此我们尝试简化硬件结构在设计过程中尽可能减少硬件引起的问题。
第2章汽车模型2.1汽车模型布局的整体结构设计
第15届NXP智能汽车竞赛的AI组使用了C车型,该车型具有良好的对称性,易于安装伺服器,并且具有良好的修改前景。
C车辆的尺寸为29×18×9.8厘米,轮胎尺寸为29×60mm。通过适当地用海绵填充轮胎和软化处理,汽车模具具有极好的冲击吸收和耐磨性。
驱动电动机为RS-380,电动机功率为7.2V,达到19.25W,额定功率达到0.016kW,额定电压为7.2V,额定电流为0.5A,额定速度为额定值,额定扭矩为可以达到10.9n·m。
形状存储29.2×37.8mm。伺服电动机是S3010伺服器,扭矩可以在6V电压下达到6.5kg·cm,并且操作速度很快。
图2.1汽车模型的侧视图
在此智能汽车比赛中设计的智能汽车的外观大致如图2.1侧视图和2.1.1顶视图所示。
图2.1.1汽车型号2.2电池选择和安装的最高视图
为了减轻汽车型号的重量,我们的团队选择了两个18650锂电池,并带有保护板的串联电源。我们在锂电池和保护板之间进行了PCB连接。我们购买了电力锂电池。放电能力很强,可以轻松驱动两个RS380电动机。 ,通过合理地选择电池位置以调整汽车的重心,整个汽车非常轻,加速度和减速响应很快。
2.3伺服安装
伺服器的转向是整个控制系统中有大延迟的链接。为了减少这个时间常数,可以通过更改伺服器的安装位置来提高伺服器的响应速度。通过分析方向盘方向盘控制的原理,可以发现在相同的转向条件下,转向链路一端的转向链之间的距离越远,距伺服轴的轴线很快,方向盘变化。这相当于增加力臂的长度并增加线性速度。
伺服安装方法有两种类型:垂直和水平。与这两种方法相比,发现垂直安装效果更好。安装伺服器时,应确保左右对称性,以使力臂相等,并且在伺服器向左和向右转向时的最大范围,从而提高了伺服器的响应速度。根据理论分析,当功率等于速度和扭矩时,提高转向速度将不可避免地降低输出扭矩。太小的扭矩会导致钝度。因此,必须在安装过程中考虑转向机构的响应速度与伺服扭矩之间的关系,以及最大的良好转向效果。实验后,该团队的伺服安装在图2.3的伺服安装图中显示。
图2.3伺服安装图
第3章硬件电路设计
硬件是AI汽车系统的基础。只有一个良好,稳定且安全的硬件环境才能确保汽车可以平稳而快速行驶。我们严格遵循整个系统设计过程中的规格。根据可靠性和效率的原则,在满足各种要求的同时,尝试使设计的电路变得简单,并且PCB的外观简单。
3.1微控制器系统设计
微控制器最小系统是智能车辆系统的核心控制组件。由于AI电磁组需要将神经网络部署到微控制器中,因此为了取得更好的结果,我们采用了更高的性能NXP I.MX芯片。示意图如图3.1所示:
图3.1系统核心板3.2电源模块设计
电源模块为系统的其他模块提供所需的电源。在设计中,除了考虑电压范围和当前容量之类的基本参数外,还必须优化功率转换效率,降低降噪,预防和电路简单性。可靠的电源解决方案是整个硬件电路的稳定操作的基础。
所有硬件电路的电源由两个18650锂电池(额定电压7.4V,全电压8.4V)串联提供。由于电路中不同电路模块所需的工作电压和电流容量不同,因此电源模块应包括多个电压稳定电路,以将可充电电池电压转换为每个模块所需的电压。为了满足需求,该汽车型号有4种类型的电源电压:
(1)智能汽车使用锂电池为电源供电。选择一个具有均衡功能的保护板同时为两个电池充电。在正常使用过程中,电压在7.4和8.4V之间。可直接用于电动电源。
(2)使用电压调节芯片进行输出电压5V,该电压用于供应隔离芯片,运算放大器,霍尔组件,编码器等的功率。示意图如图3.2.1所示。
5V示意图“ />
图3.2.1电压转换7.4V-> 5V示意图
(3)使用电压调节芯片进行输出电压3.3V,该电压用于OLED,蜂鸣器,按钮等的电源。
图3.2.2电压转换电路
(4)使用电压调节的芯片输出电压12V向半桥驱动器提供电源。
图3.2.3电压转换电路7.4V→12V
(5)使用开关电压稳定芯片输出5.95V电压以供电伺服器。用电池直接电源很容易燃烧伺服器。它的功能是防止当前的后退并有效地改善伺服器的使用寿命。
图3.2.4伺服电源电压稳定电路
(6)使用芯片芯片控制MOS管的传导以保护电路并避免反向连接或过度电流。
图3.2.5保护板示意图3.3电动机驱动电路
在门驾驶芯片选择方面,我们选择一个芯片。芯片可以在高端和低端驱动两个通道,提供较大的驾驶电流,并具有硬件死区以防止同一桥梁进行进行。如图3.3所示,使用两块可以形成Mos Tube全桥驱动电路[2]。
图3.3全桥驱动示意图3.4电磁操作放大器电路
使用简单的均匀比例放大电路,可以使用电位计来调整放大因子,并且可以通过直接读取微电控器的AD AD端口来直接读取和检测电磁信号。运算放大器芯片具有成本效益,可满足20kHz电感的采集需求。如图3.4所示:
图3.4电磁信号连接和放大图的示意图3.5 Hall组件电路
由于AI组无法使用相机识别停车线,因此我们选择使用大厅组件来识别磁性停车。
图3.5大厅停车标识电路3.6传感器选择3.6.1电感器
竞争中使用的电感器是准确的频率调制电感器。由于今年的AI电磁组潜在客户的高度不超过5厘米,高度不超过10厘米。如果将电感器放置在伺服器附近,则将受伺服器的操作影响。由于传感器的信号在后一个阶段进一步扩增以满足后续信号检测需求,因此传感器的焦点是干净地滤除噪声。这是由谐振电路确定的,因此谐振电路的带宽越窄。或质量因子越高,过滤噪声的能力越强。
3.6.2编码器
光电子编码器是一种传感器,可通过光电转换将输出轴上的机械几何位移转换为脉冲或数字量。这也是使用最广泛的速度测量传感器之一。它的信息准确,准确且易于使用。
使用增量512线光电编码器,其电源电压为3.3V或5V,输出是一个振幅值较小的正弦信号。为了放大和塑造此信号,设计了一个信号调节电路。基本原理是使用OP放大器形成比较器电路,调整参考电压并将输出转换为0V-3.3V的方波信号,然后将其发送到微控制器进行计算。
3.7主控制板和驱动程序集成板
在这个系统中,我们电路板生产的主要思想是将工作简化,并促进电路板的调试和安装。主要控制由电源电源稳定电路,OLED屏幕和纽扣相互作用电路,微控制器系统和各种传感器接口组成。除原始电动机驾驶电路外,驾驶员板还具有编码器接口。主要目的是促进编码器的连接,以减少问题,例如由过长的编码器连接引起的接触不良。实际图片如图3.7所示。
图3.7主驱动板真实对象图3.8 OP放大器板
OP放大器板由两个电路组成的八向OP放大器,杜邦线接口和软电缆接口组成。与杜邦电线相比,软电缆简单可靠,并且不容易泄漏。最后,游戏是通过软电缆连接的,这是OP放大器板的真实对象。图片如图3.8所示。
图3.8 OP放大器板的实际对象3.9电磁板
集成了7个电磁界面,软电缆和杜邦电缆界面,以促进调试过程中的更多选择。电磁板的实际图像如图3.9所示。
图3.9现实生活中的电磁板3.10大厅组件板
霍尔组件板由八向大厅组件组成。 OP放大器板的实际图片如图3.13所示。大厅组件车身板的实际图片。
图3.10大厅组件车身面板的真实图表
第4章软件设计4.1软件框图
图4.1软件框图4.2速度环控制
该速度控制方案采用传统的PID控制,该控制器是一个线性控制器,它根据给定值和实际输出值形成控制偏差。将偏差的比例§,积分(I)和差分(d)组合在一起以通过线性组合形成控制量以控制受控对象,因此称为PID控制器。原理框图如图4.2所示。
图4.2 PID控制器原理框图[此处省略了速度环控制。如果您需要阅读,请参阅本文的原始部分] 4.3方向戒指控制4.3.1控制计划
该方向控制解决方案使用AI融合PID进行控制,AI神经网络用于识别轨道元素。智能汽车在笔直的曲线和交叉元素下使用不同水平和垂直电感器的不同PID参数和权重。 PID控制的原理与速度环的原理相同,因此我不会在这里详细说明。
该偏差计算使用6个电感器作为左右水平电感器(表示为LH和RH),左右倾斜电感器(表示为LX和RX),左右垂直电感器(称为L和R)。偏差是相应差异比的总和。现在
error = l -rl+ r+ lh -rhlh+ rh+ lx -rxlx+ = {{l -r} \ over {l+ r}}}}+ {{lh -rh -rh} \ over {lh+ rh}} lx -rx} \ over {lx + rx}} error = l+rl -r+lh+rhlh -rh+lx+rxlx -rx
4.3.2 PID参数调整
使用PID控制的关键是调整KP,Ki和KD的三个参数,即参数调整。设置PID参数的方法有两个主要类别:一种是理论计算调整方法。它主要通过理论计算基于系统的数学模型来确定控制器参数。第二个是工程调整方法,该方法主要依赖于工程经验,并在控制系统的实验中直接进行。该方法简单易懂,并且在工程实践中广泛采用。
在PID参数设置中,我们使用第二种方法,该方法基于比例原理,然后积分和差异。
我们尝试了PID,分段PD,Fuzzy PD,次级PD和单个PD。我们发现单个PD可以满足设计要求。因此,我们使用单个PD方案。
4.4 AI轨道元素判断4.4.1多类别问题
神经网络解决多分类问题的最常见方法是设置n个输出节点,其中n是类别的数量。对于每个示例,神经网络可以作为输出结果获得N维数组。数组中的每个维度(即每个输出节点)对应于类别。理想情况下,如果样本属于类别K,则与此类别相对应的输出节点的输出值应为1,而其他节点的输出值为0。
以轨道判断为例,总计0〜2中有三个类别。识别数字1,神经网络的输出越近是[0,1,0],越好。跨凝结是判断的最佳方法之一。跨凝性表征了两个概率分布之间的距离,并且它是一个广泛用于分类问题的损耗函数。
h(p,q)= - ∑p(x)logq(x)h \ left({p,q} \ right)= - \ sum \ \ {}^{} {} {p \ left(x \ right) \ log q \ left(x \ right)} h(p,q)= - ∑ p(x)logq(x)
P表示正确的答案,而Q表示预测值。交叉熵值越小,两个概率分布越接近。
此外,还需要回归来将通过神经网络向前传播获得的结果转变为概率分布。
通过回归和跨凝结优化神经网络可以解决多分类问题。
图4.4.1网络结构
该团队使用BP神经网络对轨道信息进行分类。简化的网络结构图如图4.4.1所示。输入层具有7个神经元,对应于七个电感器的数据。标签类别是:直,曲线和交叉。有多层隐藏层,每一层都有15个以上的神经元。
4.4.2培训
图4.4.2十字架上的磁性标记
当车辆运行到跨磁铁位置时,霍尔传感器将检测到磁场的变化,并且根据预设程序,车辆将知道它在跨区域。微控制器记录电感数据,并将其标签标记为“交叉”。这些数据由NRF实时传输到计算机终端,计算机终端使用记录的数据进行多分类培训。
图4.4.3弯曲的磁标记
当车辆运行到拐角位置时,霍尔传感器将检测到磁场的变化,根据预设程序,车辆将知道它在拐角处。微控制器记录电感数据并将其标记为“弯曲”。电感数据将被标记为“直线”,并将其发送到计算机进行训练,除了曲线和十字架。
每次返回的训练数据都有9个字节,数据结构图是:
4.4.3预测
计算机将经过训练的模型部署在微控制器上,而汽车模型将收集的电感值转移到神经网络中,而神经网络则预测了汽车模型的元素类别。 CAR模型将根据其所在元素类别使用不同的方向环PD参数和目标速度。
4.5部分代码简介4.5.1传统控制部分代码的描述
控制部件主要由两个部分组成:1。方向环2。速度环控制,它们分别放在两个5ms计时器中以执行。该代码如图4.5.1所示
图4.5.1定向环和速度环
(1)方向控制:
首先,单芯片机会连续5次收集每个电感器。使用气泡方法对数据从小到大的数据进行排序后,删除最大值和最小值,并将平均值作为收集的数值作为收集的平均值。测试后,过滤效果很好,并且可以滤除一些高频噪声,并且获得的电感值稳定。该代码如图4.5.2所示
图4.5.2电压软件过滤
获得电感值后,当前收集的值将标准化。归一化的基本思想是获得相对于当前轨道的最大值(ADMAX)和最小值(ADMAX)和最小值(ADMAX)的相对大小。特定公式是:
vreg = -adminadmax -adminv_{reg} = {{ad_ {ad_ {get} - ad _ {\ min}} \ over {ad _ {ad _ {\ max} - ad ad _ ad _ {\ min}}}} -admin odget -admin
在获得归一化电感值后,通过将电感值融合在多个方向上,从而获得了作为PID输入的偏差。在训练过程中,我们发现在直道的情况下,磁场方向沿轴向方向横向电感器的成分很大,因此横向电感器收集的值很大,偏差也很大,并且偏差也很大大的。横向电感器对直道具有非常明显的影响。在通道的情况下,其中一个倾斜电感器在轴向方向的磁场方向上具有很大的成分,并且对称的倾斜电感器在磁场方向上具有很小的成分,并且它们的偏差也很大。因此,倾斜电感器对曲线具有显着影响。因此,我们通过分别给出不同的权重来整合横向电感器和倾斜电感器。最后,与横向电感的直接差异相比,该汽车的直曲线和曲线的性能更好,并且在直曲线和曲线之间过度使用它也非常平滑。这为以后的PID控制奠定了良好的基础。
获得轨道偏差后,我们可以将此偏差()用作PID的输入来获取伺服的角度。重复调试后,发现汽车模型以高速运行(约3m/s),并且对PD参数非常敏感:在直线上,比例任期系数(KP)随着车辆的增加而增加速度,适当的数值范围越来越小。太大会导致振荡的直路,速度将降低。如果KP太小,响应将减慢,这也将使汽车模型的运行状态不稳定。在高速时,小型汽车在转弯时严重依赖差异术语。当差异术语系数(KD)很小时,转向性能在角落不足,甚至直接赶出轨道。当KD继续增加时,汽车应对快速曲线的能力越来越强,但是随着KD的增加,汽车处理快速曲线的能力越来越强,但汽车能够处理快速曲线的能力正在增加。 ,在电感采集期间引入的噪声也被放大,在小偏差的情况下增加了小型汽车的不稳定性。
最后,经过重复测试,我们分别在直路,曲线,回旋处和横码中获得了汽车的最佳参数。通过神经网络计算轨道类型后,对PID控制器中的PD参数进行了相应的调整以获得CAR的最终伺服角度。该代码如图4.5.3所示
图4.5.3轨道类型采集和PD控制
同时,由于倾斜的电感器在十字架和回旋处具有明显的特征,因此直接使用将影响轨道偏差的正常采集。因此,当识别横盘元素和回旋元件时,必须去除倾斜电感器在偏差控制中的作用。
(2)速度环控制
在速度循环控制中,我们主要使用差分算法和跟踪内存算法。
假设汽车在转弯期间的车身方向不移动,因为后轮的角速度相同,内部后轮和外部后轮的转动半径是不同的,它们的线性速度是不同的。如果给出相同的占空比,则曲线上的转向性能将不可避免地降低。通过前轮角度,我们可以通过公式在后侧的两个车轮之间的差异,获得两个车轮的目标速度,然后使用PI计算使内和外部车轮在下方的线性速度达到相应的线性速度转弯半径。小型汽车转动差速器的示意图4.5.4
图4.5.4汽车转弯差的示意图
在测量了多组前轮角度的数据并使用拟合曲线的旋转半径后,发现前轮角度和差异大致是线性的,因此使用线性关系代替上述差分公式。差分计算代码如图4.5.5所示。
图4.5.5差分计算公式
轨道内存算法可以控制目标速度,并且可以实现长时间加速的效果。因此,首先让汽车模型在轨道上缓慢运行一周,并记录编码器脉冲的数量并记录每个元素的位置。当汽车正式启动时,如果当前的轨道类型是长期的,则速度将会提高。轨道内存代码如图4.5.6所示
图4.5.6轨道内存算法4.5.2 AI部分代码描述
在称为“数据分类”的文件中,我们构建了一个分类的BP神经网络。培训数据保存在data.txt中。该网络具有7个神经元的输入层,四个隐藏层和三个神经元的输出层。 The 7 to the data of 7 , the of in the three is 32, 64, and 32 , and the 3 in the layer to three : , , and . The is shown in 4.5.7:
4.5.7
Use a cross to . The is shown in 4.5.8:
4.5.8
After , the model will be and saved as an H5 file named model.h5. Since the code is and only one value is , we need and merge the three from the into one . In a file " ", first build the same as the , and add a at the end to . The three w11, w21, w31 are -84, 0, and 84, . This the range of -128+127 into three , -127-84 curve, -83+83 , and +84+127 cross. Load the model file and the to the layer name to the final . The final is shown in 4.5.9:
Save the final as a .h5 file and it on the smart car to track
※ 综上所述
Since AI is a brand new , the of this group have no and are with in the field of , and are also in the stage of this . In the case of "a blank", the group the door of , , for , , , plans, and the .
For AI group, at the of the , our team the by , a large of data, , and model files. , due to the of the data, the model is or the servo angle is too small. In order to solve the above , we solve the by a large of data and the servo by the . this , the car model has the from " its head" to "silky". , the speed of team with this the speed at 2.7m/s, so the team the and used AI to train track in to make up for the of and In terms of PID and , PID are still , but the of is more than pure PID . As for , since the team has been on data, and has not the of of the car model, the rear of the car is much than the front of the car. , after the speed has to a level, the front of the car model are and side-. The risk is . Such can be by the front wheel to the main , but the car model be in the later stage of the game. The team has to adopt other , by tire and the front wheel angle. The of speed with the rear wheel is .
the , the team also tried + to let the car learn . First, we use PID as a to teach car to in the track, and write "" and "" , and add speed to the model. At the same time, speed is also used as a to the of car . The in this plan is that when the car model , the data cycle time 100ms. To solve the , the team used block as an and used NRF to at the same time, the cycle to 9ms. In order to speed up the of , team used PID to teach car for . But it is of the that the car model is easy to "learn badly". Once it out of the track, the car model will swing . , due to the too much time, the plan has not good in a short of time, and the team is to to study the plan. The of this team agree that using to allow cars to learn is the real smart car, and the has good in car . I hope that in the smart car , there will be in the AI that can use to make the car good .
"The sword is by , and the of plum comes from the cold." The have the of the ACE team. We are very to Smart Car for this home-like place, and we also thank the , and who have been funds to the team, , . We also thank the for such a game. , we hope that will in the smart car and make smart cars .