分享好友 最新资讯首页 最新资讯分类 切换频道
“零前瞻”AI寻迹小车,如何跑出20厘米前瞻效果的
2024-12-28 05:22
ACE参赛队伍
2020-09-15 Tuesday
 

 

“零前瞻”AI寻迹小车,如何跑出20厘米前瞻效果的


  文详细介绍了山东大学(威海)ACE队在第十五届全国大学生智能汽车竞赛AI电磁组中的系统方案。内容包括AI小车的系统的原理、软硬件方案设计以及神经网络模型的生成过程。

  本次比赛采用大赛组委会统一指定的C型车模,AI小车以单片机MIMXRT1064DVL6A为控制核心,用电感采集赛道信息,编码器获取小车的速度。使用 IAR 及keil5集成编译环境编写C语言代码,采用PyCharm作为编译器,使用Python程序语言编写程序,搭建神经网络,实现NRF通信调试,训练车模完成赛道元素的判断,采用赛道记忆算法控制目标速度,实现长直道加速的效果,使用IPS液晶屏和按键作为辅助调试手段。

  经过大量的软硬件测试以及数据采集、测试,成功设计出 “零前瞻”AI循迹小车,跑出了长达15至20cm前瞻的效果。

  关键词 赛道记忆,元素判断,神经网络

 


  国大学生智能汽车竞赛是由教育部高等学校自动化专业教学指导委员会主办全国大学生智能汽车竞赛。该竞赛以“立足培养,重在参与,鼓励探索,追求卓越” 为指导思想,旨在促进高等学校素质教育,培养大学生的综合知识运用能力、基本工程实践能力和创新意识。智能车竞赛涉及自动控制、模糊识别、传感技术、电子、电气、计算机、机械与汽车等多个学科,为大学生提供了一个充分展示想象力和创 造力的舞台,吸引着越来越多来自不同专业的大学生参与其中,激发了大学生的创 新思维,对于其实践、创新能力和团队精神的培养具有十分最重要的价值。该竞赛分竞速赛、创意赛和技术方案竞赛三类比赛。

  人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能从诞生以来,理论和技术日益成熟,应用领域也不断扩大,可以设想,未来人工智能带来的科技产品,将会是人类智慧的“容器”。人工智能可以对人的意识、思维的信息过程的模拟。人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。

  随着人工智能的兴起,全国大学生智能车竞赛也陆续引入了与其相关的竞赛,AI电磁组与往届电磁组不同,虽然方向都是基于采集电感的电压进行控制,但是由于此次比赛前瞻基本为零,车模速度达到一定值,很难有效的提前做出控制指令,导致赛车冲出赛道。所以本次比赛我们引入了深度学习的相关方案来弥补前瞻不足的缺陷。

  正文共分为六章。第一章主要是介绍了比赛系统的整体方案;第二章从车模整体布局出发,介绍了车模各个部分安装及调整方案。第三章重点介绍了系统中所涉及的硬件设计方案和电路原理;第四章主要介绍了车模系统的软件方案包括传统PID原理分析以及着重对AI部分算法、部分核心程序进行介绍;第五章对调试过程中的一些手段进行了讲解。第六章主要介绍了车模的各方面参数。

 


  智能车系统的总体工作模式为:7个电磁传感器采集赛道信息,采用OPA4377运算放大器将信号输入到MIMXRT1064DVL6A微控制器,进行进一步处理获得主要的赛道信息;通过编码器来检测车速,并采用微控制器的输入捕捉功能进行脉冲计算获得速度和路程;转向舵机采用AI融合PID控制

  驱动电机采用 PID 控制,通过PWM控制驱动电路调整电机的功率;而车速的目标值由默认值、运行安全方案和基于AI处理的优化策略进行综合控制。

  在训练AI算法时,我们使用NRF2401采集训练数据;赛道元素的识别以及停车使用霍尔传感器实现。根据智能车系统的基本要求,我们设计了系统结构图,如图1所示。在满足比赛要求的情况下,力求系统简单高效,因而在设计过程中尽量简化硬件结构,减少因硬件而出现的问题。

 


  第十五届恩智浦智能车竞赛AI组采用的是C车模,其对称性好,舵机安装方便,有较大的改装前景。

  C车尺寸为29×18×9.8cm,轮胎尺寸为29×60mm,通过对轮胎适当的填充海绵和进行软化处理,使车模具有极好的减震性和耐磨性。

  驱动电机为RS-380,7.2V的电机功率可达19.25W,额定功率达到0.016kW,额定电压7.2V,额定电流0.5A,额定转速16200rpm,额定转矩可达10.9N·m,

  外形储存29.2×37.8mm。伺服电机为S3010舵机,6V电压时扭力可达6.5kg·cm,动作速度快。

  本次智能车大赛设计的智能车的外形大致如图2.1侧视图、2.1.1俯视图。

  为了减轻车模的重量,本团队选用带保护板的两节18650锂电池进行串联供电,我们绘制了锂电池与保护板的连接PCB,购买动力型锂电池,放电能力强可以轻松带动两个RS380电机,通过合理选择电池位置以调节车体重心,使得整个车非常轻盈,加减速响应快。

  舵机转向是整个控制系统中延迟较大的一个环节,为了减小此时间常数,通过改变舵机的安装位置可以提高舵机的响应速度。通过分析舵机控制转向轮转向的原理可以发现,在相同的舵机转向条件下,转向连杆在舵机一端的连接点离舵机轴心距离越远,转向轮的转向变化越快。这相当于增大力臂长度,提高线速度。

  舵机安装方式有立式和卧式两种,比较两种方式发现,立式安装效果更好。 舵机安装时要保证左右对称,这样可以保证舵机左右转向时力臂相等且处于最大范围,提升了舵机的响应速度。经理论分析,功率等于速度与扭矩的乘机,加大转向速度必然减少输出扭矩,扭矩过小会造成迟钝,所以安装时必须考虑到转 向机构的响应速度与舵机扭矩之间的关系,获得最佳转向效果。经过实验,本团队的舵机安装如图2.3舵机安装图所示。

 


  件是AI小车系统的基础,唯有一个良好、稳定、安全的硬件环境才能保证车能平稳快速的行驶。我们在整个系统设计过程中严格按照规范进行。本着可靠、高效的原则,在满足各个要求的情况下,尽量使设计的电路简单,PCB的外观简洁。

  单片机最小系统是智能车系统的核心控制部件。由于AI电磁组需要将神经网络部署到单片机中,为了达到更佳的效果我们采用了具有更高性能NXP I.MX RT1064芯片。原理图如图3.1所示

  电源模块为系统其他各个模块提供所需要的电源。设计中,除了需要考虑电压范围和电流容量等基本参数之外,还要在电源转换效率、降低噪声、防止干扰和电路简单等方面进行优化。可靠的电源方案是整个硬件电路稳定可靠运行的基础。

  全部硬件电路的电源由两节18650锂电池串联提供(额定电压7.4V,满电电压8.4V)。由于电路中的不同电路模块所需要的工作电压和电流容量各不相同,因此电源模块应该包含多个稳压电路,将充电电池电压转换成各个模块所需要的电压。为满足需要,本车模上存在4种供电电压

(1) 智能车使用锂电池供电,选择带均衡功能的保护板可以同时给两节电池充电,正常使用时电压在7.4~8.4V。可直接用于电机供电。

(2) 使用稳压芯片LD29150DT50R 输出电压5V,用于rt1064、隔离芯片、运放、霍尔元件、编码器等供电。原理图如图3.2.1所示

(3) 使用稳压芯片LD29150DT33R 输出电压3.3V,用于OLED、蜂鸣器、按键、等供电。

(4) 使用稳压芯片MC34063 输出电压12V,用于半桥驱动器IR2104的供电。

(5) 使用开关稳压芯片AS1015输出5.95V电压给舵机供电,用电池直接供电容易烧毁舵机,AS1015具有防止电流反灌功能有效提高舵机使用寿命。

  (6)使用芯片HY2120芯片控制MOS管的导通,来保护电路,避免反接或者电流过大。

  在栅极驱动芯片选择方面,我们选择IR2104芯片,IR2104芯片可以驱动高端和低端两个沟道MOSFET,提供较大的驱动电流,并有硬件死区,防止同桥臂导通。使用两片IR2104可以构成一个MOS管全桥驱动电路[2],如图3.3所示。

  采用简单的同向比例放大电路,电位计可用来调节放大倍数,通过对电磁信号进行放大和检波处理和可以直接供单片机的AD口读取。运放芯片使用性价比较高的OPA4377来以满足20kHz的电感采集需求。如图3.4:

  由于AI组无法使用摄像头识别停车线,我们选择用霍尔元件来识别磁标停车。

3.6.1电感

  比赛所用的电感为精确调频电感,由于今年的AI电磁组前瞻要求不超过5CM,高度不超过10CM,电感靠近舵机放置,会受到舵机工作的影响。由于传感器的信号经过后一级进一步放大,满足后面的信号检测需要,所以传感器的作用重点是在于能够将噪声滤除都多干净,这是由谐振电路决定的,所以谐振电路的带宽越窄,或者品质因素越高,过滤噪声的能力就越强。

3.6.2 编码器

  光电编码器是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器, 这也是目前应用最多的测速传感器之一。其获取信息准确、精度高、应用简单。

  采用增量式512线光电编码器,其供电电压为3.3V或5V,输出为小幅值的正弦信号。为了将此信号放大整形,设计了信号调理电路,其基本原理是使用一个运放做成比较器电路,调节参考电压,使输出变为0V-3.3V的方波信号,送入单片机进行运算。

  在本系统中我们的电路板的制作主要思想是分立工作、追求简洁,便于电路板的调试和安装等工作。主控由电源稳压电路,OLED屏与按键交互电路,单片机系统以及各个传感器接口等组成。驱动板在除了原有的电机驱动电路外,还增加了编码器接口,主要目的是方便编码器的连线,以减少编码器连线过长导致的接触不良等问题。实物图如图3.7所示。

  放板是两块OPA4377电路的八路运放、杜邦线接口、软排线接口组成,软排线相比较杜邦线,连接简单可靠,不易脱漏,最终比赛用软排线连接,运放板的实物图如图3.8。

  尔元件板是74LS30和八路霍尔元件组成,运放板的实物图如图3.13霍尔元件体板实物图。

 


  本次速度控制方案采用传统的PID控制,PID控制器是一种线性控制器,它根据给定值与实际输出值构成控制偏差。将偏差的比例§、积分(I)和微分(D)通过线性组合构成控制量,对被控对象进行控制,故称PID控制器,原理框图如图4.2所示。

【对于速度环的控制在这里进行省略,需要阅读可以参阅论文原文部分】
4.3.1 控制方案

  本次方向控制方案采用AI融合PID进行控制,AI神经网络用于赛道元素的识别。智能车在直道、弯道、十字元素处使用不同的PID参数以及不同的横竖斜电感的权值。PID控制的原理与速度环相同,在此不作赘述。

  偏差的计算使用6个电感分别为左右横电感(记为LH和RH,左右斜电感(记为LX和RX,左右竖电感(记为L和R)。偏差为各自差比和之和。即

4.3.2 PID参数整定

  运用PID控制的关键是调整KP、KI、KD三个参数,即参数整定。PID参数的整定方法有两大类:一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数;二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。

  PID参数整定我们采用的是第二种方法,按照先比例后积分再微分的原则进行PID参数整定。
  我们尝试了PID、分段PD、模糊PD、二次PD、单PD,发现单PD就可以达到设计要求。因此我们使用单PD方案。

4.4.1 多分类问题

  神经网络解决多分类问题最常用的方法是设置n个输出节点,其中n为类别的个数。对于每一个样例,神经网络可以得到的一个n维数组作为输出结果。数组中的每一个维度(也就是每一个输出节点)对应一个类别。在理想情况下,如果一个样本属于类别k,那么这个类别所对应的输出节点的输出值应该为1,而其他节点的输出都为0。

  以赛道判断为例,0~2共三个类别。识别数字1,神经网络的输出结果越接近[0,1,0]越好。交叉熵是最好的评判方法之一。交叉熵刻画了两个概率分布之间的距离,它是分类问题中使用比较广的一种损失函数。

  p代表正确答案,q代表的是预测值。交叉熵值越小,两个概率分布越接近。

  除此之外,还需要Softmax回归将神经网络前向传播得到的结果变成概率分布。

  通过softmax回归和交叉熵对神经网络进行优化就可以解决多分类问题。

  本团队使用BP神经网络对赛道信息进行分类。网络结构简化图如图4.4.1所示。输入层有7个神经元,分别对应了七个电感的数据。标签类别分别为:直道、弯道和十字。隐藏层有多层,每层均有15个以上的神经元。

4.4.2 训练

  当车运行到十字磁标位置,霍尔传感器将检测到磁场变化,根据预先设定好的程序,车辆将知道自己处于十字区域。单片机记录电感数据,并将其标签记为“十字”。这些数据被NRF实时传输至电脑端,电脑端将记录数据用于多分类训练。


  当车运行到弯道位置,霍尔传感器将检测到磁场变化,根据预先设定好的程序,车辆将知道自己处于弯道区域。单片机记录电感数据,并将其标签记为“弯道”。除了弯道和十字以外的其他区域,电感数据将被标记为“直道”送入电脑端进行训练。

  每次回传的训练数据有9个字节,数据结构图下

4.4.3 预测

  电脑端将训练好的模型部署在单片机上,车模将采集到的电感值传入神经网络中,神经网络将预测车模所处的元素类别。车模将根据所处的元素类别使用不同的方向环PD参数和目标速度。

4.5.1 传统控制部分代码说明

  (1) 方向环控制

  首先,单片机会连续对每个电感采集5次,使用冒泡法将数据从小到大排序后,去掉最大值和最小值,取平均值作为该次采集的数值。经测试,该滤波效果较好,可以滤掉部分高频噪声,获得的电感值稳定。代码如图4.5.2


  获得电感值后,对当前采集到的值进行归一化处理。归一化的基本思想是:取得当前采集值(ADget)相对于当前赛道的最大值(ADMAX)、最小值(ADMIN)的相对大小,具体公式为:

  得到归一化的电感值后,通过对多个方向的电感值融合,获得作为PID输入的偏差。在训练的过程中,我们发现在直道情况下,横电感轴向方向在磁场方向的分量大,因此横电感采集到的值大,偏差也大,横电感对于直道有很明显的效果;在弯道情况下,其中一个斜电感轴向方向在磁场方向的分量大,与其对称的斜电感在磁场方向的分量小,它们的偏差也大,因此斜电感对于弯道有明显的效果。因此,我们将横电感与斜电感通过分别赋予不同的权重,融合在一起。最终,小车相较于横电感直接差比和,有较好的直道和弯道表现,在直道和弯道间过度也非常圆滑。这为后来的PID控制打下了良好的基础。

  在得到了赛道偏差后,我们便可以将这个偏差(direct_error)作为PID的输入,得到舵机打角。经过反复调试,发现车模在高速运行状态下(3m/s左右,对PD参数非常敏感:在直道上,比例项系数(KP)随着车速的提高,合适的数值区间越来越小,KP过大则会导致直道震荡,速度下降。KP过小,响应会变慢,同样使得车模的运行状态不稳定。高速情况下,小车过弯非常依赖微分项。当微分项系数(KD)很小的时候,弯道会出现转向性能不足,甚至直接冲出赛道;当KD不断增加,小车应对快速弯道的能力越来越强,但是随着KD增大,电感采集时引入的噪声也被放大,增加了小车在小偏差情况下的不稳定性。

  最终,经过多次的反复测试,我们分别得到了小车在直道、弯道、环岛、十字的最佳参数。在经过神经网络计算出赛道类型后,对PID控制器里的PD参数进行相应调整,得到小车最终的舵机打角。代码如图4.5.3


  同时,由于斜电感在十字和环岛的特征明显,直接使用会影响到赛道偏差的正常获取,因此,在识别到十字和环岛元素时,要去除偏差控制中的斜电感的作用。

  (2) 速度环控制

  在速度环控制上,我们主要运用了差速算法和赛道记忆算法。

  假设小车在过弯的过程中没有垂直于车身运行方向上的相对移动,由于后轮的角速度相同,内侧后轮和外侧后轮的转弯半径不同,所以它们的线速度不同。如果赋予它们相同的占空比,必然会降低弯道上的转向性能。通过前轮转角,我们可以通过公式推算出后侧两轮的差速,得到两轮的目标速度,再经过PI运算,使内外两轮达到该转弯半径下对应的线速度。小车转弯差速示意图4.5.4

  在测量多组前轮转角和转弯半径的数据后,使用MATLAB拟合曲线,发现前轮转角和差速近似为线性关系,因此使用线性关系来代替上述差速公式。差速计算代码如图4.5.5


  通过赛道记忆算法控制目标速度,可以实现长直道加速的效果。因此,首先让车模在赛道上慢速运行一周,通过记录编码器脉冲数,记录下各个元素的所在位置。当正式发车时,如果当前赛道类型为长直道,则提高车速。赛道记忆代码如图4.5.6

4.5.2 AI部分代码说明

  训练结束后,网络模型将被更新,保存为名为model.h5的H5文件。由于网络部署代码闭源而且只有一个神经元输出值,因此我们需要网络重建,将分类得到的三个神经元合并为一个神经元。在名为“网络重建”的python文件中,先搭建和训练网络一样的神经网络,并在最后添加一个单个神经元,手动赋权重。三个权重w11,w21,w31分别为-84,0,84。这样将单神经元-128+127的输出范围分为了三个区域,分别为-127-84代表弯道、-83+83代表直道、+84+127代表十字。加载训练好的网络模型文件,按网络层名称导入网络参数,即可生成最终的网络。最终网络结构如图4.5.9所示

  将最终的网络保存为car_model.h5文件,并将其部署在之智能车上即可实现对赛道元素的分类

 


  于AI电磁是一个全新的组别,本组成员没有往届经验、对人工智能领域的知识比较陌生,对python这门语言也属于初入门阶段。小组成员在“一片空白”的情况下,碰触人工智能的大门,逐步摸索、查找资料、设计机构、组装车模、设计整体方案,最终完成比赛。

  对于AI电磁组,本团队在比赛最开始,采用逐飞推荐的方案,不断的采集大量数据,尝试各种神经网络,生成模型文件。但是由于数据的质量问题,导致模型出现误判或者舵机反应角度过小等等,为了解决上述问题,我们通过筛选大量的数据,人工给舵机输出乘上相应的倍数等方案来解决。通过这种方案,车模完成了由“摇头”到“丝滑”的转变。但是,采用这种方案团队调试的极限速度在2.7m/s就到达了速度的天花板,所以团队转变了方案,将AI用于训练赛道元素的提前判断,弥补前瞻不足的缺陷,实现分段PID控制,方向控制方面仍然采用传统PID方案,但是对于弯道的判断而言比传统的纯PID算法更加提前。对于硬件方面,由于团队主要一直将心思放在训练数据上,没有对车模的重心位置进行细致考究,导致车尾比车头重很多,所以在速度提升到一定程度后,车模前轮抖动与侧滑的风险大大提升,此类问题可以通过改变前轮机械结构为主销内倾来解决,但是备赛后期车模结构不能大改,团队不得不采取其他优化方案,通过增加轮胎摩擦力以及协调前轮转角与后轮差速的方法加以改善。
  在备赛期间,团队也曾尝试过强化学习+监督学习的方法让车模进行自主学习。先利用传统PID作为监督机制先教车模在赛道中运动,用Python编写了 “奖励”与 “惩罚”机制,并且将速度也加入模型中,同时速度也作为一种奖励机制,提高车模的学习进度。实行该方案中遇到的最大困难便是车模进行强化学习时,数据回传周期时间达到100ms。为了解决问题,团队成员利用另一块RT1064作为信息中转站,采用多个NRF模块同时进行通信,最终将回传周期下降到了9ms。为了加快强化学习的收敛速度,团队成员在训练前采用PID监督学习的方法来教车模进行强化学习。但也许是教导的方式不完善导致车模很容易“学坏”,一旦出现冲出赛道的情况,车模会出现很大的摆动。很遗憾的是,由于疫情耽误了太多时间,该方案短时间没有带来好的效果,本团队无法继续研究强化学习的方案。本团队成员一致认为,利用强化学习的方法让小车自主学习,这样才是真正意义的智能车,而且强化学习的方法在小车控制中有很好的前景。希望未来的智能车竞赛中AI方面的组别能有参赛者可以利用强化学习,让小车跑出不错的成绩。

最新文章
灵感迸发!如何让Logo设计脱颖而出?AI免费神器带你走向专业
还在找人花钱做logo设计?当然这里申明下,小编还是建议大家尊重设计劳动力尽量选择付费不过小编就是喜欢免费的,今天就给大家带
小米手机用华为手表有影响吗 华为手表用在小米有什么功能
  最近电子设备等的问题越来越多,很多小伙伴对于自有的设备的问题总是找不到解决方法,有很多用户购买的智能手表和手机不是同
掌阅科技选择亚马逊云科技为重要云服务供应商 应用生成式AI打造数字阅读体验新范式
掌阅科技选择亚马逊云科技为重要云服务供应商,应用生成式AI技术为掌阅AI阅读项目提供助力,为用户打造数字化与沉浸式创新阅读体
网站新闻发稿怎么做?分享新手发稿全攻略!
网站新闻发稿怎么做?分享新手发稿全攻略!网站新闻发稿怎么做?分享新手发稿全攻略!标题:网站新闻发稿怎么做?分享新手发稿全
用AI绘画生成高清美女写真,轻松一键打造你的照片女友!
限时免费,点击体验最近超火的AI生图神器,坐拥3000美女的大男主就是你! https://ai.sohu.com/pc/generate/textToImg?_trans_=0
湖南安化黑茶十大排行榜:品味千年匠心,探寻茶界精髓
湖南安化黑茶,是中国传统名茶之一,历史悠久,源远流长。其特点独具匠心,以其独特的制作工艺和醇厚的口感而闻名于世。安化黑茶
SEO ���������Ż���������ȫ����
�ڵ������ֻ�ʱ����SEO��Search Engine Optimization�����������Ż���������վ�ijɹ���
谷歌邮箱登录技巧分享:保障账户安全的5个必须知道的方法
简介:在数字时代,确保您在线账户的安全性尤为重要,尤其是像谷歌邮箱(Gmail)这样频繁使用的服务平台。一个不安全的账户可能
网易B站SLG在灵犀互娱大本营广州开战;小游戏与APP游戏用户重合规模近3.5亿丨每日竞报
2024/12/10:海彼B站两款新游进入11月出海收入排行榜;黑神话更新登顶B站热搜榜首;堡垒之夜推出5V5爆破模式网易B站SLG在灵犀互