基于 RT-Thread赛车控制算法开发
Posted 卓晴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于 RT-Thread赛车控制算法开发相关的知识,希望对你有一定的参考价值。
队伍名称:逐鹿—希望车没事
参赛队员:张恒基、王金龙、彭晓辉
§01 引言
本文以第十六届全国大学生智能汽车竞赛为背景,该比赛受教育部高等教育司委托,由教育部高等自动化专业教学指导分委员会(以下简称自动化教指委)主办全国大学生智能汽车竞赛。
全国大学生智能汽车竞赛是一项以“立足培养、重在参与、鼓励探索、追求卓越”为指导思想,面向全国大学生开展的具有探索性的工程实践活动。它以设计制作在特定赛道上能自主行驶且具有优越性能的智能模型汽车这类复杂工程问题为任务,鼓励大学生组成团队,综合运用多学科知识,提出、分析、设计、开发并研究智能汽车的机械结构、电子线路、运动控制和开发与调试工具等问题,激发大学生从事工程技术开发和科学研究探索的兴趣和潜能,倡导理论联系实际、求真务实的学风和团队协作的人文精神。
本次比赛中,我们使用大赛组委会统一提供的 B车模,以 TC264单片机为核心控制器,采用 MOS管驱动车模电机,MT9V034摄像头作为传感器,自主构思速度控制和转向控制方案引导车模,按照规定路线识别行进。在报告中,我们通过对整体方案、机械、硬件、算法等方面的介绍,详细阐述了我们在此次只能汽车竞赛中的思想和创新。包括电路设计、算法、机械结构等等,详尽地阐述了我们的思想和创意,具体表现在电路的创新设计,以及算法方面的独特想法,和遇到而对于赛道新增元素的挑战,也让我们付出了不少的努力和汗水。这份报告凝聚着我们的心血和智慧,是我们共同努力后的成果。在此,分享给大家,希望能够给广大智能车爱好者提供一定的帮助。
RT-Thread,全称是 RealTime-Thread,顾名思义,它是一个嵌入式实时多线程操作系统,基本属性之一是支持多任务,允许多个任务同时运行并不意味着处理器在同一时刻真地执行了多个任务。事实上,一个处理器核心在某全国大学生智能汽车邀请赛技术报告
一时刻只能运行一个任务,由于每次对一个任务的执行时间很短、任务与任务之间通过任务调度器进行快速地切换(调度器根据优先级决定此刻该执行的任务),给人造成多个任务在一个时刻同时运行的错觉。在 RT-Thread系统中,任务是通过线程实现的,RT-Thread中的线程调度器也就是以上提到的任务调度器。 RT-Thread是一个集实时操作系统( RTOS)内核、中间件组件和开发者社区于一体的技术平台,具有极小内核、稳定可靠、简单易用、高度可伸缩、组件丰富等特点。 RT-Thread拥有一个国内最大的嵌入式开源社区,同时被广泛应用于能源、车载、医疗、消费电子等多个行业,累积装机量达数千万台,成为国人自主开发、国内最成熟稳定和装机量最大的开源 RTOS。
本技术报告共包括七章内容,其中第一章引言部分主要介绍了智能车赛事的主题思想以及该技术报告所涉及的内容;第二章介绍了本车的机械结构设计以及机械原理;第三章阐述了本队伍的系统设计方案;第四章诉述了本队伍的程序框架以及所用算法;第五章介绍了准备比赛中本队伍使用的系统开发以及调试工具;第六章介绍了本车的主要参数;第七章列写了对本报告进行了最后的总结以及本团队参与比赛来的经验之谈,希望能给大家带来帮助。
§02 车体基本结构
一、车模舵机位置的安装
按照比赛规定,本次大赛使用 B车模配套的 S-D5数字舵机,工作电压4.5-5.5v,带堵转保护电路,力矩 5.0kg,回中更准确,定位更精确,动作速度 ≤0.14±0.02sec/60°。具体参数见下图 2.1
▲ 图2.1 SD-5舵机参数
舵机直接控制着小车的转向,对于小车的转向,它是通过舵机带动左右横拉杆来实现的。由于舵机的转动速度和功率是一定,要想加快转向机构响应的速度,唯一的办法就是优化舵机的安装位置和其力矩延长杆的长度。因此舵机的安放位置就显得至关重要了。我们采用的是中置立式的安装方式。对于舵机的拉杆,为了使当摆角最大的时候舵机给的推力是最大的,拉杆采用偏 V字安装。
二、前轮定位
经过多番尝试与查阅资料,对于前轮的定位,我们最终采用“前轮外倾,主销内倾”的结构。、
主销后倾角指车体纵向平面和地面垂直线的夹角,如图 2.1所示,主销后倾角可以产生一个与转向相反的力矩使得车轮具有自动回正的能力,一般主销后倾角越大,车速越高,前轮的自动回正能力就越强。但是主销后倾角太大,将会引起前轮回正过猛,导致转向沉重。调试中发现,我们发现车速加快后,增加主销后倾角未必是好事,但是通过适当调整,能在一定程度上稳定车身。
前轮前束是指从汽车的正上方向下看,由轮胎的中心线与汽车的纵向轴线之间的夹角称为前束角。轮胎中心线前端向内收束的角度为正前束角,反之为负前束角。总前束值等于两个车轮的前束值之和,即两个车轮轴线之间的夹角。
前束的作用是用来消除车轮外倾造成的不良后果。车轮外倾使前轮有向两侧张开的趋势 ,由于受车桥约束不能向外滚开,导致车轮边滚边滑增加了磨损。有了前束后可使车轮在每瞬间的滚动方向都接近于正前方,减轻了轮毂外轴承的压力和轮胎的磨损。
前轮的外倾是保证车辆操纵稳定性所必需的,也使前轮在汽车的任何工作条件下都不致产生负外倾,保证安全运转。在前轮有外倾角的情况下,地面对车轮的垂直反力将产生一个轴向分办,其目的是消除各种间隙,使转向节轴上内外两个大小不同的锥形滚柱轴承受力尽量往内礴大轴承上,减少转向节螺母的轴向力,防止该螺母松脱而导致前轮飞出危险。车轮有了外倾后,两侧车轮有向外分开的趋势。由于车桥的约束,车轮将不断地相对路面作侧向滑动,从而加速轮胎的磨损。为了抵偿外倾后带来的不良后果,故前轮有前束,有了前轮前束,可使车轮在每一瞬间的滚动方向都接近正前方,这样既能保证车辆直线行驶的稳定性,又能保证轮胎正常磨耗。
三、后轮差速调整
经过试验我们发现:如果差速过紧,即两轮胎的速度很接近时,转弯的时候内侧轮很容易打滑,从而产生侧滑,使赛车滑出赛道。当差速过松时,会使直道的时候两轮打滑(电机不是处于后轴中央),大大的减小了赛车的驱动能力。所以差速调整要适当,才会使直道驱动能力强且稳定,弯道转弯容易。
由于小车转弯时,内侧车轮和外侧车轮的转弯半径不同,外侧车轮的转弯半径要大于内侧车轮的转弯半径,这就要求在转弯时外侧车轮的转速要高于内侧车轮的转速。差速器的作用就是满足汽车转弯时两侧车轮转速不同的要求,如下图2-2所示。
▲ 图2.2 后轮安装
四、电池的摆放与底盘的调整
在高速过弯时则所需向心力比较大,同时由于惯性车很容易向一侧翻倒。为了避免这类事情的发生,我们把车的后轮底盘放低,从而降低整车的重心,防止车翻倒。但是由于比赛时可以有坡面道路,包括上坡与下坡道路,所以后轮的底盘高度不能太低,这是为了使车能顺利的上坡而不至于由于底盘过擦到赛道。
我们把摄像头放在了整个车的车头位置。电池放置在靠近电机的位置,为什么将电池放在这是因为为了让整个车的重心靠近中间,我们将电路板固定在底盘上,整个主控上面包含了所有的模块,节省了空间降低了重心。如图 2-3。
▲ 图2.3 电池摆放图
五、编码器安装
编码器供电电压不得超过允许的电压,不得对编码器转轴施加过大的力从而导致转轴变形,编码器信号线最好使用胶带固定在编码器外壳上避免长期使用过程中的拉扯导致信号线脱落。
六、摄像头安装
摄像头作为传感器,它的安装是最重要的。经过多次安装实验,,我们把摄像头放在了整个车的车头位置,由于规则要求摄像头高度不超过 10cm,所以只用了一根比较粗的碳素杆固定摄像头,为了防止视野畸变严重。我们选用的是130°的摄像头镜头。如图 2-4所示。
▲ 图2.4 摄像头安装
七、轮胎的保养与使用
本届比赛 B2车模采用材料为橡胶的刻有花纹轮胎,在使用的过程中主要暴露出的问题有:轮胎材料较硬,抓地力不够强。所以我们更换了轮胎质地更软的、抓地力更强的 B3车模的轮胎。
由于规则中不允许对轮胎进行任何改变轮胎性能的处理,因此在调试过程中,我们尽量选择对称、圆的轮胎;尽可能改变前轮倾角,使轮胎与地面的接触面积在各个工况下综合最大;在不调试的时间里尽量避免四轮与地面接触,用保鲜膜包裹,保证轮胎的形状不发生改变。
八、车模外观
1、车体外观
2、本智能车采取的控制策略
由于本次大赛基础四轮组的要求,本车最终决定以摄像头为主,并辅以电磁控制。由于担心赛场环境以及摄像头的适应性差的特点,也准备了纯粹电磁控制的程序。
九、摄像头的选择
摄像头采用了 MT9V03X总钻风数字智能车摄像头,此摄像头拥有全局快门高动态,自动曝光,帧数可调等优点,输出为灰度图像。
图像通过 MT9V03X摄像头进行采集,采集回来的图像为 50188,截取为5094,并通过大津法进行二值化处理,帧数通过最大曝光时间进行调整,最终调整帧率约为 200帧/秒;设置自动曝光和自动增益以适应不同光照强度的环境。
十、电磁
本车安装了五个电感,感应赛道交变磁场,产生感应电动势,后续电路通过对感应电动势进行一些列的选频、放大、检波,得到稳定信号并输入到单片机对赛道信息进行识别,对电机发出加减速、舵机直行拐弯的指令。
本车采用了三横两竖的排列方式。可以更好的适应不同赛道类型,有效的应付直道与弯道的衔接。
电感安装时要注意相邻两个电感切忌安装过近,至少要有两厘米的距离,否则会产生互感现象,具体现象就是过十字的时候车身会产生振动,严重的会导致十字直接冲出赛道。
§03 控制软件设计
一、PID控制算法
在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制简称 PID控制,又称 PID调节。PID控制器问世至今已有近 70年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用 PID控制技术最为方便。即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用 PID控制技术。PID控制,实际中也有 PI和 PD控制。PID控制器是一种线性控制器,它根据给定值与实际输出值构成控制偏差。将偏差的比§、积分(I)和微分(D)通过线性组合构成控制量,对被控对象进行控制,故称 PID控制器,原理框图如图 3-1-1所示。
▲ 图3.1.1 PID控制器原理图
PID控制器各校正环节的作用如下:
比例环节:及时成比例地反映控制系统的偏差信号,偏差一旦产生,控制器立即产生控制作用,以减少偏差。积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数,越大,积分作用越弱,反之则越强。
微分环节:能反映偏差信号的变化趋势(变化速率),并能在该偏差信号变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减小调节时间。
数字 PID控制算法通常分为位置式 PID控制算法和增量式 PID控制算法。
二、位置式PID
由于计算机控制是一种采样控制,它只能根据采样时刻的偏差计算控制量,而不能像模拟控制那样连续输出控制量量,进行连续控制。由于这一特点(式 1-2)中的积分项和微分项不能直接使用,必须进行离散化处理。离散化处理的方法为:以 T作为采样周期, k作为采样序号,则离散采样时间 kT对应着连续时间 t,用矩形法数值积分近似代替积分,用一阶后向差分近似代替微分,可作如下近似变换:
● 相关图表链接:
以上是关于基于 RT-Thread赛车控制算法开发的主要内容,如果未能解决你的问题,请参考以下文章
基于 RT-Thread智能车控制算法开发-河南科技大学ROCKET
基于 RT-Thread的麦克纳姆轮小车循迹运动控制算法开发和研究