第17届全国大学生智能汽车竞赛已经开放英飞凌芯片的申请啦!(点击此处查看详情)
本届大赛将继续由英飞凌特别支持,以“立足培养,重在参与,鼓励探索,追求卓越”为指导思想,促进高等学校素质教育,培养大学生创意性科技竞赛。
如何在强者如云,竞争激烈的大赛中脱颖而出?
英飞凌特别带来武功秘籍:第16届获奖团队分享系列第四期——紫丁香,电磁AI越野组
大家好,我们是”紫丁香三队”的队员,在16届全国大学生智能车竞赛中使用Infineon的AURIX™ TC377芯片参加了电磁AI越野组的比赛,并且取得了全国第三名的成绩。在这个过程中一点点的接触并了解了Infineon公司的TriCore™系列芯片,接下来给大家简单分享一下我们的项目经历。
图 1 赛场合照
电磁寻迹的原理是按照预先设定的行驶路径埋设导线,当高频电流流经导线时,导线周围产生电磁场,再通过车身安装的电磁感应器采集电磁信号,它们所接收的电磁信号的强度差异可以反映车体偏离路径的程度。因此今年室外电磁AI越野组为了凸显AI(Artificial Intelligence)控制的优势,限定了前瞻长度只有4cm,并且选在了环境更不确定的室外,这对控制算法提出了更高的要求。
车模结构的微调与传感器的安装
为了满足赛题要求,充分保证电路板的稳定性和发生故障时的容错性,我们摒弃了一体板的想法,而是采用了主控板、驱动板和运放板分离的方式来搭建电路。这样做的好处是能够充分利用L车模车身大的优点,采用以主控板为中心的分布式的电路结构设计,极大地降低了电路板的故障率和维修成本。驱动板采用了BTN7971B驱动芯片来驱动电机,其优点是布局简单,性能好,发热小;运放板使用了OPA4171这款四通道高精度运放芯片;主控板是控制枢纽,而在我们主控板上面的TC377核心板更是枢纽的核心,TC377芯片高达300MHz的主频充分地保证了我们对信号处理高速运算性能的要求,面对众多微小电磁信号的变化(经过运放板放大)它能帮助我们迅速识别并做出响应,从而及时地帮助我们调整车身姿态,保证车模运行的稳定性。
图2 MCU引脚图
当然,光有稳定可靠的电路还不够,想要突破瓶颈获得一个好成绩就必须对车模结构做出改变。为此我们也做出了如下几点调整:
增大前轮打脚。由于此次比赛限制了对于L车模后轮转向的改装,前轮打脚的大小便直接决定了车模的过弯能力。因此我们对车模前轮附近一些重要零件进行了适当打磨和调整,以此来增大车模极限情况下的打脚,减小转弯半径。
降低底盘高度。虽然对于室外越野组别来说,不能过分追求低底盘,因为那会影响车模的过颠簸能力,但是适当降低底盘带来的好处便是显著提高了车模在高速下的过弯性能,尤其对过直角弯有很大的帮助。
改善电磁杆的安装方式。此次比赛引入了AI控制,想要训练出一个好的AI模型,首先需要保证电感在训练前后的状态的一致性,只有当电感的状态(包括高度、角度和位置)越稳定,AI模型才能充分发挥出它的优势,跑出好成绩。因此,我们本着稳定至上的原则根据我们的车模量身定制了一个铝合金支架,并借助碳杆进行可拆卸式的电磁杆安装。这一安装方式在保证了稳定性的同时,还便于拆卸,能够将长前瞻和短前瞻分离,十分方便。
图 3 改造后的L车
图4 陪我们过生日的车车
妙用主控芯片TC377
在主控芯片方面,我们选用了TC377,BGA封装使其能够有更多的扩展口,并且具有高达300MHz的主频,6 MB的flash,1136 kByte的RAM。这些优点使得控制策略有更多的可能,由于车模较大,并且赛道由折线组成,为了满足更好的控制性能,我们用到了多达30路AD采集通道,一般单片机并不会具备如此多的AD转化口,需要通过外接芯片扩展口的方式来实现,不仅安装繁琐,可靠性也会大大下降。
图5 主控板实物图
而TC377帮我们解决了难题,除了多达三十路AD口还有多路PWM驱动,丰富的片上资源能够完美满足项目的要求。
我是负责控制算法及底层开发的周京,参加智能车比赛时刚接触到单片机,并且大部分靠自学,对于一个新手来说,有一个简单并且可靠的底层库是非常重要的,不然很容易被繁琐的驱动程序劝退,而英飞凌官方的ILLD底层库很好的做到了既简介明了,又具实用价值,相比于之前芯片需要为底层驱动程序头秃,Infineon真正做到了为开发者考虑。
软件及算法策略
除了普通的电磁寻迹,今年的赛题还加入了十分有趣的AI(Artificial Intelligence)控制方面的内容。我们采取离线训练训练的方式,即:采集数据后,在利用NNOM工具进行转换成单片机支持的C代码和权重信息,并部署到单片机上。我们队只尝试了几种可能的神经网络方法,主要分为时间无关和时间相关的两类。大体包括:纯神经网络方案,使用神经网络,直接获得当前时刻电感-舵机对应关系;赛道种类划分,利用神经网络提取赛道特征,针对可能的直道和弯道进行特殊处理。由于分类在电磁越野中的作用并不明显,最终我们采取了第一种方案,由于模型比较轻量化,所以采用直接转化为C代码的形式,并且由于TC377高达300M的主频,执行模型仅需要1ms,和普通的PID控制基本没有差别,完全满足了实时控制的需要。虽然比逐飞科技的方案执行时间稍长,但相比于逐飞的方案,NNOM可以做到更改模型结构,尝试TCN、RNN等不同的网络类型。
图6 DNN网络结构示意图
对于传统的PID控制,经过多年以来工业的验证,其稳定性值得肯定,具体表现在当车模距离电磁线较远即将冲出赛道时能够比较稳定的控制车模重新运行到赛道上来,而PID控制也有其局限性,其数学模型是通过人工建立起来的,数学模型的好坏直接决定了控制效果的上限。而AI模型是通过数据驱动的方式建立起来的数学模型,其模型好坏更取决于数据的质量,对于其模型我们只需给出其基本结构。这样的优势是直接连接了输入量与输出量,使输出量对输入量更加敏感,能够比人构建出来的数学模型更加灵敏;但是正是由于其对数据敏感的特性,我们暂时没有经历仿真出所有可能出现的情况,这导致其对数据盲区有不可控的随机性,因此如何利用好这两者的优点是有一个很重要的问题。在我们车上的具体表现是靠PID算法运行的轨迹并没有AI算法得到的轨迹好,但是AI会在没有数据的地方出现不稳定性,例如冲出赛道。为此我们尝试了很多种方法,最终综合了我们车模在运行中的实际情况,在不同赛道类型中,给与了PID计算结果和AI计算结果不同的权重,达到了既改善轨迹又能保证一定稳定性的效果。
图7 备战国赛中的越野车
总的来说,电磁越野组作为尝试把数据驱动加入到控制当中来的组别,是对去年电磁AI越野组的继承与发展,同时这也对MCU提出了更高的要求,选用一款合适的MCU至关重要。
图 8 紫丁香车队准备的甜点
但由于室外环境的不确定性导致AI控制效果更难保证,需要在数据处理方面花费更多的精力!今年赛题要求实现的任务还是较为简单的,遇到的情况相对可控,因此与PID结合来提升AI的稳定性是一个更方便并且更快捷的方法。
当然任何方法都没有捷径,这需要我们在实践中一点点探索,不要害怕失败与被否定,因为不尝试永远没有发言权,要万一成功了呢?
暂无评论哦,快来评论一下吧!