单车技术方案

单车技术方案

▲ 图1.1.1 稚晖君的平衡自行车

因此,我组以《竞赛》规定的K型车模为基础,设计开发了基于Infineon Aurix平台的自平衡自行车系统,以较低的成本和较高的安全性,验证实现了自行车的自平衡与摄像头赛道循迹。

1.2 项目方案总述

单车技术方案

▲ 图1.3.1 室内循环赛道示意图

1. 车模单车使用K型车模。在车模上允许使用动量轮,动量杆维持车模平衡。如果采用无刷电机驱动动量轮,则需要使用基于Infineon的驱动方案。车模作品制作完毕后,对于车模外形尺寸没有限制。

2. 微控制器与传感器车模微控制器采用Infineon单片机。传感器允许使用摄像头、CCD、光电管、电磁等。

3. 赛道与比赛任务比赛赛道采用室内循环赛道,赛道上铺设有电磁引导线。车模从车库出发,在赛道上运行一周后,最终驶入车库。计时标准:车模从车库驶出到重新驶入车库之间的时间差。

单车技术方案

▲ 图2.2.1 车模裁剪部位

裁切完成之后,我们在车模底部位置粘贴了魔术贴,以此方便地进行电池的安装与更换。

2.2.2 动量轮与支架的安装

为了使剪裁后的车模更加稳定,我们使用了龙邱的动量轮支架和的直流电机,实现车体、电机、飞轮、编码器和齿轮的配合。

动量轮支架分为上下两部分,上部用于连接车模,下部用于固定电机和编码器,上下两部分之间使用三角体连接块连接。上半部分支架有多个螺丝安装孔,可以直接安装在车模原有孔位上,无需再对车模打孔。

单车技术方案

▲ 图2.2.3 合金舵机支架

2.3 电路板的安装

考虑到 K 车模上并没有较多的空间来安装电路板,因此采用极简的设计风格,放弃供应商提供的主控核心板,而采取全4层PCB+SMT的工艺。我组将电路板上所需的部分分为了2个模块,分别是:

1. 主控板,包含主控芯片以及各种电源模块,同时也有部分传感器接口。

2. 电机驱动板:包含电机驱动模块。

电路板的安装需要考虑各种因素,所以我组对此也尝试了好几种方案,并且在最终选出了最适合我们车模的安装方式。

2.3.1 主控板PCB安装

单车技术方案

▲ 图3.1.1 系统外设模块总表

3.2 系统供电单元

3.2.1 供电方案分析

智能车竞赛一般使用2芯或3芯串联的锂电池作为供电电池,这种电池额定电压为7.4V,在满电状态下最高不超过8.4V。因此必须使用降压电路,将电源电压降到3.3V才能正常驱动MCU和其他绝大部分外设,模块。事实上,考虑到一些外设需要5V供电加之5V也是常用的逻辑电平,我们常用的方案是将电源电压先降到5V,再从5V降到3.3V。

单车技术方案

3.3 主控板电路设计与实现

智能车的主板是承载了MCU的最小系统,各种常用的板载外设,外设接口以及设备供电电路。作为一个复杂系统工程的硬件核心,主板可以说是智能车一切的基础。主板的设计,我们采用分而治之的策略,即将各种功能电路高度解耦,保证每一部分的正常工作,便可以得到一个完整主板。

单车技术方案

▲ 图3.3.2 主控板方案简图

3.3.1 TC264D的供电输入与核心电压配置

TC264D是英飞凌AURIX系列嵌入式芯片中典型的一款,片上集成两个核心。AURIX系列芯片主要是面向汽车电子的各种控制类应用,集成了各种各样的复杂功能,因此对TC264D的供电,也不能想一般芯片那样,一正一负就可以正常工作。

TC264D的供电主要分为3类,第一类是支持5V-3.3V宽电压输入的,比如说IO的供电和ADC的电源,第二类是只支持3.3V电压输入,在芯片中主要负责给Flash供电,最后是核心的1.3V电压,这与电脑CPU的供电类似,需要精确且高效的供电支持。

单车技术方案

▲ 图3.3.4 SMSP模式为TC264D提供1.3V核心电压

TC264D内部还支持多种方式产生1.3V的核心电压,这里主要分为LDO和SMSP模式,正好对应了上文提到的两种降压方式。在本方案中,我们使用了较为稳定的SMSP模式产生1.3V电压,并使用了英飞凌的BSL215C P+N MOS管芯片作为上下管。

3.3.2 TC264D与主控板外设的连接

TC264D的引脚大致可以分为,电源引脚(VCC,VSS等),功能引脚(如晶振,复位,JTAG等),IO(可以直接指定高低电平,也可以做片上外设输出),模拟输入引脚(默认作VADC的输入引脚)这四类。

因为TC264D的应用场景是汽车电子,芯片内部大部分片上外设可以认为是面向功能的,这就导致了其片上外设经常将不同功能器件比如定时器,ADC等封装成一个外设。所以我们在后续编程的过程中,很重要的一步是将这些外设配置成我们希望的功能。

单车技术方案

▲ 图3.4.1 DRV8701性能参数表

3.4.2 桥臂mos管选型

下表列举了三种容易买到的贴片mos管,在驱动能力方面,都可以满足竞赛需要,可以根据具体需求,如厂家限制,封装选择,驱动板面积等可自行选择,最终我组选择TPH1R403NL作为实装的驱动mos管。

单车技术方案

▲ 图3.4.3 DRV8701设计全桥驱动电路

04 软件设计

4.1 系统软件框架

对于一个多任务的,涉及运动平衡、图像处理、存储等功能的复杂系统,良好健康的软件框架尤其重要。

4.1.1 4-Layers架构

因为本项目的相关功能代码从嵌入式底层到实时操作系统均有涉及,跨度较大。因此,我组将工程代码抽象为4层:

Hardware(硬件层)→Peripheral(外设层)→Algorithm(算法层)→Thread(线程层)

单车技术方案

▲ 图4.2.1 RT-Thread系统线程调度示意图

Thread Balance负责车辆的姿态解算、平衡控制与其他各类运动学控制。系统接收到由IMU ICM20602发出的125Hz中断信号即发出信号量将Thread Balance添加到就绪队列进行运动学处理与控制。

Thread Camera主要接收来自协处理器CPU1处理、提取完成的图像信息,进而进行方向控制。同时在也查询接收按键信号量来进行拍摄任务。

Thread Key 负责对系统的8个按键开关进行扫描,只要检测到按键从release跳转到press或者long press状态就发送对应的信号量供其他线程接收。

Thread Life 负责对系统状态进行监测,若系统长时间无法切入Life线程,则发出提示信号,是调试代码时,检验系统稳定性的保障。

单车技术方案

▲ 图5.2.1 ICM20602内部结构图

对于动量轮的控制,除了使用合适的驱动来控制电机还需要安装编码器来实时测量动量轮的转速,使其向我们的目标转速(0rad/min)趋近。在此我们使用的是1024线正交编码器。实际使用只要4根线电源、地、A相、B相。由于动量轮的转速变换范围较大,如果使用96线或更小的编码器会导致在低转时量化误差较大。1024线时在经济和性能考虑下较为合适的选择。

5.3 自行车运动学建模与仿真

对自行车平衡控制,需要对系统进行建模来分析系统的各类性能。为了建模的方便,我们将自行车的车身近似为刚体处理,动量轮为偏移车身重心的提供动量的刚体。于是,我们化用倒立摆系统对自行车的运动学进行分析。

5.3.1 简化系统的建模分析

我们常见的倒立摆或单摆系统如图一所示。若要对其进行控制,需要在转轴出基于摆杆一个力矩,如下图:

单车技术方案

但对于我们的单车模型来说,虽然也可近似为一个倒立摆模型,但其控制输入量来源于动量轮,而非转轴支点处的力矩简化如图二。这极大的增加了系统的复杂程度。

单车技术方案

单车技术方案

▲ 图5.3.3 倒立摆系统的SIMULINK仿真结构

或者也可以建立物理模型进行仿真:

单车技术方案

▲ 图5.3.5 运动仿真系统3D模型

如此,可以建立其作为被控对象的子系统,在创建一个控制部分的子系统即可完成控制:

单车技术方案

▲ 图5.3.7 摆杆角度变化(时间单位s)

5.4 姿态传感器数据获取与卡尔曼滤波

虽然,上文提到的ICM20602 IMU和1024线编码器可以得到我们需要的数据。但直接由传感器获得的数据往往具有很多噪音,需要进行滤波处理。

对于编码器数据可以采用滑动滤波,这相当于一个低通滤波。由于微分对突变量十分敏感故滑动滤波可以在一定程度上消减突变的干扰。

对于车辆倾角测量,icm20602可以得到实时的角速度与倾角。由角速度积分可以得到倾斜角度,但其具有误差累积的特性。而加速度计可以直接解算出倾角,但其受多方影响,十分敏感,数值跳动剧烈。所以需要利用卡尔曼滤波得到更逼近真实值的倾角估计。

5.4.1 卡尔曼滤波理论分析

单车技术方案

5.4.2 IMU的建模与应用卡尔曼滤波

单车技术方案

▲ 图5.4.2 卡尔曼滤波前后实测数据波形
紫色为Kalman Filter,红色为 Raw

5.5 PID平衡控制算法

PID的控制对象是动量轮,其接收icm20602和编码器的反馈将单车角度稳定在目标倾角。在此,采用串级PID控制,角度环作内环,而速度环作为外环。也就是说速度环的输出是角度环的输入,直观理解速度环江改变设定的目标角度,从而达到自适应平衡的目标。在此速度环采用了增量式PID,其输出叠加在我们预先设定的目标角度上。如此在保证平衡的前提下,使动量轮的速度趋近于0,如此更有利于单车的动态控制。

5.5.1 传统分立式PID控制

直立车传统控制系统下所示。为使其具有速度控制与姿态平衡能力,利用2个单独的闭环分别进行控制,输出电机控制信号为各环输出的叠加。该控制方案虽简单但存在一定问题,如:仅单独施加直立控制,其车身平衡效果虽能满足要求,但此时如果在该基础上额外施加速度控制,速度控制势必会打破直立车的平衡姿态,使得速度与直立控制互相耦合,此时如果再施加转向控制,就会导致高速时转向控制实时性和姿态的平衡性欠佳。

单车技术方案

▲ 图5.5.2 串激PID系统框图

当系统受到多级噪声时,内环会先进行调整,再由外环进行调整,所以控制的精度和稳定性都优于单极PID控制[2]。通过实际小车运行状态来看,如图十一所示。传统算法围绕中线产生了较大过调;串级PID算法过调明显较小,且跟随能力远强于传统算法,可以看出常规PID 的稳定时间比串级控制短。串级PID控制器比常规PID 控制系统具响应迅速,稳定性高等优点[3]。

单车技术方案

▲ 图6.1.1 图像处理方案

6.2 灰度图像处理

通过MT9V032 摄像头我们得到了120*80大小的灰度图像,而处理图像的第一步就是处理灰度图像,主要有以下几种思路实现:

6.2.1 固定阈值法

二值化图像算法中最为基础的算法,即通过给定一个阈值,将每个像素点与之进行比较,从而确定出来这个像素点是黑或白,之后的图像处理就使用这个二值化后的数组进行处理。

这种方法在图像处理的过程中仅需遍历一次图像,处理速度极快。但其对于光线的鲁棒性较低,在实际的运行过程中,会由于光线不均匀使得设定的单一阈值在每段赛道的效果层次不齐。

单车技术方案

▲ 图6.2.2 OTSU算法需要分析图像的直方图寻找阈值

OTSU算法实现的伪代码如下:

单车技术方案

▲ 图6.2.4 原灰度图与OTSU二值化图像

6.2.3 Sobel动态阈值二值化

Sobel算子为边缘检测的手段之一,通过对图片进行卷积,得到当前像素在四个方向上的梯度信息,在梯度变化明显的区间图像会出现很明显的高值,因此能够检测出完整的边沿。

单车技术方案

▲ 图6.2.6 原灰度图与Sobe了边缘检测图像

6.3 八邻域跟踪算法

在本项目中,我们主要采用八邻域跟踪算法实现巡线。

单车技术方案

▲ 图6.3.2 原始二值化图像与八邻域发得到的边线图

可以看到通过八邻域搜线能够完整保留边界信息,得到每一段边线的所有像素,有了这个可靠基础,我们下一步进行拐点的搜寻。

6.4 拐点搜索

在拐点搜索上,我们采用比较基础的平面几何思想来进行求解,在上一阶段,我们获取了赛道的各段边线以及起始终止点信息,通过连接每段边线的起始终止点,我们计算该段边线中距离这条直线距离最大的点,即为该段边线的拐点。

单车技术方案

▲ 图6.5.1 原始二值图像与补线之后的图像

②十字中

十字中段,找到两个后拐点,并利用最小二乘法向前拉线。

单车技术方案

▲ 图6.5.3 原始二值图像与补线之后的图像

6.5.2 环岛元素

①入环前

当识别到一边为直线,另一边出现了前后两个拐点时,进行环岛前补线。

单车技术方案

▲ 图6.5.5 原始二值图像与补线之后的图像

6.5.3 小弯道

当存在边线值方差相差不大时,判定为小弯道,进行最小二乘拟合。

单车技术方案

▲ 图7.1.1 上位机主界面

单车技术方案

▲ 图7.1.3 上位机边线调试主界面

单车技术方案

▲ 图8.1.1 系统静止平衡状态

单车技术方案

▲ 图8.1.3 车身姿态角曲线

同时,也可以发现,车身在静止后的一段时间出现了姿态的波动,这是由于串级PID中速度环的K_i较小导致的。实际使用中,较大的积分值能够在高动态的环境下较好地工作,因此对静态的系统性能有一定程度上的影响。

09 结论

9.1 智能车主要技术参数

本次设计开发的Infineon Aurix平台的自平衡自行车系统,以Infineon Tricore架构的TC264D双核MCU为主控,搭载RT-thread实时操作系统。成功地验证并实现Kalman Filter-串级PID算法。在动量轮-舵机协同控制下的实现了车身自平衡功能。

单车技术方案

▲ 图9.1.1 车模参数简表

9.2 不足与改进

我们自身还是存在一些不足。例如,准备初始阶段,由于自身知识积累不够,我们遇到很多困难,走了不少弯路,也犯了不少错误。我们在系统建模与仿真方面的能力还是略显不足。但我们在不断学习中、在实践中熟练操作 MATLAB,逐渐对建模、仿真等有了进一步的了解。

由于上海市和同济大学疫情防控要求,在本学期后阶段嘉定校区实施足不出宿舍等形式的封闭管理,项目开发不幸陷入停滞状态。原本对车模的3D建模,异型PCB,无刷电机驱动控制等更进一步的功能开发,甚至完整赛道运行调试均无法正常进行。希望能在未来,使用机理建模的方法,采用主流的先进控制方法如LQR、MPC等等。

9.3 致谢

由于上海市疫情,在本学期后阶段项目开发不幸陷入一连数月的停滞状态。原本对车模的3D建模,异型PCB,无刷电机驱动控制等更进一步的功能开发,甚至完整赛道运行调试均无法正常进行。所幸,在学院和指导老师的大力支持下,我们积极应对现状,通过线上渠道进行沟通,在家附近租用场地进行调试,在临近比赛前几天,我们更是在宾馆中夜以继日的赶进度。在这个过程中,是队员的齐心协力,攻坚克难,才让小车从开始的颤颤巍巍到如今的坚强屹立。

在本文结束之际,特向同济大学智能车及机器人竞赛实验室的全体参赛队员、助管学长、指导老师以及所有给予我们帮助、建议和意见的朋友表示衷心的感谢!而这个过程中,离不开老师,学长和同学的帮助。也向筹备华东赛区和全国总决赛的南京信息工程大学表示感谢。感谢张志明、徐和根老师的教导和支持,感谢助管学长方少腾、韩子奇、曾宪坤、赵师兵、冯翊的无私帮助,感谢实验室同学的相互支持和帮助。最后要感谢实验室的队友,道路是坎坷的,感谢大家的彼此陪伴和支持,一路走到了最后。我们一直相信,是团队协作的一个个夜晚,是遇到bug的一次次思考,是赛场调试的一场场分析,才最终造就了智行·YYYDS!正如我们队伍的logo,只有三人彼此支撑,才能屹立不倒,做彼此的YYDS!

作者:TsinghuaJoking
文章来源:同济大学单车组
欢迎大家点赞留言,更多Arm技术文章动态请关注极术社区IC比赛技术方案专栏欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。

来源:极术社区

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年9月21日
下一篇 2022年9月21日

相关推荐