2023年12月20日发(作者:巫慧美)
自动跟随平衡小车的设计
1 绪论
1.1 研究背景与意义
1.1.1 研究背景
当今时代是产业智能化的时代,新兴的信息技术正在快速应用于各行各业,现代科学技术已经成为了产业变革最主要的推动力。根据《中国制造2025》计划所述,我国将加大力度对智能自动化工程、智能交互机器人、智能交通管理、智能电器、智能家居控制等产业进行引领和推动。此外,还应根据消费需求的动态感知,从研发、制造和产业组织模式等方面开发一系列新的制造模式。2018年12月底,全国工业和信息化部部署2019年工作,其涉及智能制造、信息消费、5G等领域。智能制造业的兴起和引起人们的重视,得益于人工智能的研究和发展,其可以理解为人工智能系统的前沿技术。人机一体化智能系统是智能化技术早期的应用探索之一,正在逐步发展成为一种混合智能技术。人机一体化智能系统的智能化应用主要体现在智能机械上,而对于人们的日常生活来说,智能化在在智能机器人的应用上体现得最为明显。在工业生产上,很多领域通过智能化装置的应用,实现了手动控制与自动控制的结合,节省了人力,降低了物料损耗,提升了生产效率和经济性。随着智能化在不同产业的生成过程中应用愈发广泛,其承担的作用也越来越重要。
1.1.2 研究意义
1.推进双轮自平衡车的智能化研究
自动跟随技术已经经历了很长时间的发展。早在很多年以前,国内外的研究人员就开始了对自动跟随技术具体应用的探索,设计出了自主跟随四轮小车,自主跟随无人机等作品。由于那个时期的自平衡车的相关技术还不成熟,导致很少有自动跟随技1
术在平衡车上应用。在性质上,双轮自平衡车从属于智能机器人的发展范畴,在移动载具方面,它有所占空间小、驾驶灵活、容易停车且便于携带等特点,非常适合短距离的代步和应用于娱乐活动。但由于自平衡车在交通复杂的环境下,其安全性能并不稳定,并且对驾驶者的安全防护措施比较欠缺,导致自平衡车的交通事故发生频繁,事故损伤普遍偏重,致使现阶段很多城市都出台法令限制平衡车通行;另一方面,在平衡车跟随功能方面,小米正在成为先驱者,虽然小米平衡车的性能和适用范围还有很多不足之处,但自动跟随相关研究方向的正确性已被证明,这也将成为未来服务型机器人种类中特殊的一面。
2.绿色环保科技理念下新的成长力量
“绿水青山就是金山银山”,现在人们意识到了保护环境就是保护生产力。竭泽而渔,污染环境的生产方式已经走到了尽头,绿色发展,可持续发展才是正确的发展方向。绿色、环保、高效、健康、安全必然是我们建设科技强国的重大使命的立足之本。在科学技术迅猛发展的今天,绝不可将利益作为追求的首要指标,必须倡导推行清洁之上的发展准则。这个科技智能发展时代之下,特殊的底线和准则定能在可持续发展科技之路中谱写成为主篇章。
3.促进自动化向智能化的方向发展
当今时代是人工智能时代,人工智能的应用使得产业生产效率大幅提升,但与此同时,这也为自动化行业的技术人员提出了新的需求。传统的自动控制技术现在也在向着智能化进行着升级变革,自动化领域的研究人员也在不断地尝试着将各种新型的科技手段在此进行应用。在运输领域之中,京东的自动化仓库已经成为了行业领先者,其采用了很多种类的分拣机器人、自动导引运输车等智能化的先进科技;在交通领域,自动跟随无人机现已面世,当前已经有诸多团队投入到了自动化驾驶技术的研究中;在工业制造领域,自动化装置代替了大量人力的繁重作业,大幅度提升了生产开发效率;在高危电气应用中,利用智能化技术能够避免人员接触,保护人员的安全等等。可见,智能化的研究和发展是时代发展潮流大势,人人都可以受益于智能化技术的应用,这也是智能化领域进步的不竭动力。
2
1.2 研究现状
1.2.1 国外研究现状
2001年,第一款成形的自动平衡载人车辆问世,其名为Segway HT,如图1.1所示。其通过驾驶者自身控制重心位置的变化和摇晃扶杆实现运动的控制,在具备很强的载重能力的同时仍保证了较长的续航里程,平衡车从此成为了一种新的单人代步交通工具。
图1.1 Segway HT
Segway的出现很大程度上引起了学术界的研究人员对平衡车方面的研究兴趣。众多的科技创新领域人士都对这个新奇的交通工具所看好,苹果公司创始人乔布斯也曾夸赞平衡车,称其为具有跨时代意义的作品。
2002年,此课题成为了诸多科研团队的主要研究方向,当时在双轮平衡车领域出现了很多研究。瑞士联邦工业大学Dan Piponi设计完成了一款新的双轮平衡车,将其命名为JOE,如图1.2所示。这款双轮平衡车以DSP处理器作为为主控制单元,通过陀螺仪测量平衡车的车身姿态信息。JOE具备自动保持平衡运行的能力,但其使用范围很窄,只能在没有起伏的平面上运行。原型机完成后,Dan Piponi与Felix Grasser又对JOE进行了升级改造,使其最高运动速度超过了5km/h,比人们正常的行走速度略快一些。升级版的JOE是自适应模糊控制算法在平衡车领域的第一次应用,自适应模糊控制算法使其抗干扰能力和系统稳定性远远强于第一代的JOE。同年,三洋推出了FLATHRU,这是一款设计作为家庭内物品运输载具的双轮自平衡机器人,如图1.3所示。FLATHRU的外形近似于圆筒状,其外壳内部具有一定空间,可以放置并搬运物品。机器人通过三个陀螺仪检测姿态信息,并进行自主平衡控制。但其同样有无法在坑洼路面运行的缺憾,并且在平坦路面它的最高运行速度也仅有0.3m/s,在负载达到最大负载量10Kg的情况下仅有60分钟左右的续航。
2009年,本田公司发布了Mobility Robot搬运机器人。这是一款专为室内物品搬3
运设计的自平衡机器人。如图1.4所示。Mobility Robot具有自主运动的能力,能实现自动避障,可以接收命令并自动进行物品的搬运。
图1.2 JOE 图1.3 FLATHRU 图1.4 Mobility Robot
2017年,Handle问世。这是一款具有革命性机械结构的机器人,其轮腿式运动结构设计应用了很多波士顿动力先前研发的Atlas的设计经验,Handle的出现标志着双轮自平衡机器人的研究现在已经达到了很高的技术水准,其在复杂路况的通过性及运动性能远远超过了同期其他型号的自平衡机器人。
1.2.2 国内研究现状
我国对机器人的研究起步较晚,早期的研究都是以技术引入为主。从产品的逆向研发开始慢慢对机器人设计领域进行探索,之后逐步进行独立的设计,经过很长一段时间,完整的系统开发才得以实现。近年来,国内诸多高校及研究机构都开展了双轮自平衡机器人的研究,在控制理论、控制算法方面都取得了不错的研究成果。
2003年,中国科技大学的研发人员设计制造出了一款双轮平衡车,其名为FreeMove,如图1.5所示。FreeMove是第一部国内自主研发的双轮平衡车,这对我国平衡车研究领域具有里程碑式的意义。
2011年,国内的首款面向市场的代步平衡车产品成功上市,其名为Robstep易步车,如图1.6所示。Robstep易步车在传统的双轮平衡车基础上进行了诸多创新与改进,它在保持车体小巧灵活的前提下仍然实现了长距离的续航。其设计主要用于室内行驶,是一款优良的代步工具。
2013年,纳恩博推出了Ninebot双轮载人平衡车,这是一款完全国内自主研制的双轮载人自平衡电动车。其实物如图1.7所示。
2015年, Segway公司为小米公司设计定制了一款双轮自平衡车,名为小米九号。如图1.8所示。九号平衡车的上市标志着中国已经替代了美国和日本,成为了平4
衡车产业新的发展中心。
2017年,九号平衡车PLUS上市,如图1.9所示。它在九号平衡车的基础上进行了多个改进和升级,具备了无线电跟随功能。
图1.5 FreeMove 图1.6 Robstep 图1.7 Ninebot 图1.8九号 图1.9九号 PLUS
1.3 论文的章节安排
双轮自平衡车方面的技术逐渐趋于成熟,进而向自动化、智能化方面开始迈进,而平衡车的稳定性、安全性的指标也随着平衡车产业发展不断的提升,围绕着这个主题,本文对双轮平衡车的设计及自主跟随的解决方案进行研究和探索。
第1章 绪论:首先阐述了本设计的背景及研究意义,其次整理了平衡车的进化史及国内外平衡车产业的发展历程,并在此过程中了解学习了双轮平衡车的基本的硬件方案及软件控制方法,积累了很多的经验。
第2章 平衡小车的基本原理及跟随方案设计:对平衡小车的基本原理进行了研究学习,了解了平衡小车控制的基本方法。基于倒立摆模型对平衡小车建模,进行了更深刻的探索,验证了平衡小车的静不稳定特性及通过PID控制算法对小车进行控制的可行性。最终列举分析了现存的多种定位跟随技术,选取了最为适合的视觉定位技术作为实现自动跟随的技术手段。
第3章 自动跟随平衡小车的硬件设计:设计了一套完整的自动跟随平衡小车硬件系统,从硬件系统的整体架构入手,逐步对各个硬件模块进行研究与设计,进而设计并制作了小车的主控制板,最终将硬件电路系统安装到小车底盘上,制作完成了平衡小车的硬件系统。
第4章 自动跟随平衡小车的软件设计:根据第二章验证的PID控制算法及第三章所选的OpenMV定位跟随技术及相关硬件模块,对小车的软件进行设计,重点设计了基于OpenMV单目视觉模块和AprilTag二维码的自动跟随程序和小车运动控制的三环串级PID控制算法,最终完成了软件系统的开发。
5
第5章 自动跟随平衡小车整体测试:对已经制作完成的自动跟随平衡小车进行完整的系统测试,验证了设计方案方法的正确性和可行性,证明所研发的小车符合预期的性能要求。
第6章 总结与展望:对本设计进行整体的总结与概括,分析了设计过程中遇到的各个技术难点,反思了仍存在的诸多不足,并提出了系统改进和升级的设想与展望。
1.4 本章小结
由以上的双轮自平衡车相关研究的资料文献,可以得知双轮自平衡车是一种新兴的小型载人交通工具,国外对双轮自平衡车的研究已经进行了很长时间,而国内在此方面研究时间较短,现阶段仍有很大的提升空间。随着市面上出现的平衡车产品越来越多,平衡车在智能化方面的功能扩展与升级日趋丰富,这说明本设计的研究和创新方向是正确的。
近年来,从研究成果上来看,双轮平衡车的发展已经进入到了稳步推进的阶段,虽然该领域内经常产出新的研究成果,但其多数都是停留在实验室内的测试研究阶段。无论是从国家政策的鼓励和推动还是从科研工作者的探索和创新角度来看,在这个人们需求与科学技术都在迅速提升的时代,在平衡车领域仍值得探索与推进。
6
2 平衡小车的基本原理及跟随方案设计
本章主要对自动跟随平衡小车的自动平衡原理进行探究和学习,并将平衡小车简化为倒立摆模型,进而对平衡车的特性及控制方法进行分析,并将其作为平衡车设计的理论依据,之后对平衡小车的自动跟随设计方案进行了设计。
2.1 平衡小车的基本原理
在进行平衡小车的设计与制作之前,首先应了解其基本原理。平衡小车的两个车轮是小车运动控制的唯一驱动装置,车轮在与之直接连接的电机驱动的驱动下旋转。如果将小车的整体视为一个控制对象,则电机转速是唯一的控制量。小车的控制任务可以分解为平衡控制、速度控制、方向控制三个基本任务,以下对这三个任务进行详细的分析:
1.平衡控制:维持小车保持直立平衡是小车控制的首要目标,小车在速度和方向上的控制都是在小车保持直立的前提下完成的。直立状态下小车的支点在车轮轴线的中心处,而小车的重心在车轮轴线的上方,因此小车具有静不稳定性,在不受控制的状态下势必向前或向后倾倒,而当小车处于重心在支点正上方这一特殊姿态时,小车的前后倾倒趋势都最小,近似处于平衡直立的状态,称此姿态为机械零位。依据倒立摆的控制原理,当小车发生倾倒时,当前小车姿态和机械零位之间存在着一个角度差,通过传感器将偏角发送给主控制器,主控制器根据控制算法计算出相应的控制信号来控制电机运动进而调整车身姿态,使小车始终保持在平衡状态。
2.速度控制:当小车向前倾倒时,为了使小车重新回到平衡状态,平衡控制算法会使小车向前加速运动,直到姿态角回到机械零位,但此时小车的速度已不为零,而是以一定速度进行匀速运动,当小车向后倾倒时小车会减速运动,其原理与加速过程完全相同。
3.方向控制:小车的方向控制是实现自动跟随的关键。双轮平衡小车通过差速控制进行转向,小车以传感器检测到的跟随目标偏差信号作为方向控制的依据,将偏差信号分别与左右车轮的电机速度控制信号叠加,使两侧电机存在着转速差,进而带动小车进行差速转向。
7
2.2 平衡小车的建模及特性探究
2.2.1 平衡小车的数学模型
双轮平衡车的设计就是参考于一阶倒立摆的物理模型,其运动特性也与倒立摆极为相似。因此在研究学习双轮平衡车的过程中,可以通过一阶倒立摆模型来学习了解平衡车的特性与控制方法。
因此本设计利用牛顿-欧拉法建立了一阶倒立摆的数学模型. 为了便于分析,可以将倒立摆简化为一个水平移动的小车上固定一个倒摆的简易模型,如图2.1所示。
图2.1 倒立摆的简易模型图
模型中F为作用在小车上的力;M为小车的质量;l为摆杆中心到小车的距离;I为摆杆的惯性;m为摆杆的质量;θ为摆杆与正下方的角度差;x为小车位移。
在对此模型进行数学分析的首要任务是推导该系统的传递函数。对倒立摆简易模型中水平移动的小车和倒摆的摆杆分别进行独立的受力分析,如图2.2所示,即可得到倒立摆系统的微分方程。
8
图2.2 倒立摆受力分析图
受力分析图中的P为小车与摆杆相互作用的力垂直分量;N为小车与摆杆相互作用的力水平分量; b为小车的阻尼速度;ẋ为小车的速度;ẍ为小车的加速度;mg为摆杆所受到的重力;θ̈
为摆杆与竖直方向的角加速度。
摆杆实现平衡时处在竖直向上的位置上,为了使分析更加可靠,可以将处在此位置的方程进行线性化,则有θ= p。并且可以假设系统在此平衡位置附近的很小范围内可以保持稳定,即ϕ≤20°(ϕ为摆杆与竖直向上平衡位置的夹角)。则可得θ = p
+ϕ,因为ϕ很少,可以忽略不计,故cos θ≈-1,sin θ =ϕ,2=20。并且用u代替输入F,最终得到的倒立摆方程为:
(Iml2)mglmlx,
(2.1)
(Mmx)bxmlu.对方程组2.1进行拉普拉斯变换,得:
(Iml2)(s)s2mgl(s)mlX(s)s2,
(2.2)
22(Mm)X(s)sbX(s)sml(s)sU(s).假设初始条件为0,消除上述方程组中的X(s),则可以得到小车对摆杆角度的传递函数:
mls(s)q. (2.3)
G1(s)2b(Iml)3(mM)mgl2bmglU(s)ssssqqq消除方程组2.2中的ϕ(s),则得到了以小车的位移量作为输出量的传递函数:
9
(Iml2)2mglsX(s)qq
G2(s). (2.4)
2b(Iml)3(mM)mgl2bmglU(s)s4sssqqq其中
q[(mM)(Iml2)(ml)2]. (2.5)
2.2.2 倒立摆模型的控制器设计
由于倒立摆系统的参数很多,不易进行建模控制,因此尝试使用PID控制器对倒立摆进行控制。PID控制器的传递函数为:
TITDs2KPsTI. (2.6)
KD(s)TDsKPss其中KP为比例系数;TI为积分时间常数;TD为微分时间常数。以摆杆角度为输出量,可以得到倒立摆的PID控制原理框图,如图2.3所示。
图2.3 以摆杆角度为输出的PID控制原理框图
由图2.3可以得到此控制系统的传递函数为:
num1G1(s)den1X(s)X(s). (2.7)
T(s)(numPID)(num)F(s)U(s)1KD(s)G1(s)11(denPID)(den1)其中num1和den1分别代表了传递函数G1的分子和分母;numPID,denPID分别代表PID控制器传递函数的分子和分母。
在上述模型的基础上,引入小车位移量,最终得到以摆杆角度和小车位移为输出量的系统控制原理图,如图2.4所示。
10
图2.4 倒立摆系统的PID控制原理框图
由图2.4可以得到此系统的传递函数为:
num2G2(s)den2X(s)X(s). (2.8)
T1(s)F(s)U(s)1KD(s)G1(s)1(numPID)(num1)(denPID)(den1)其中num2,den2分别代表传递函数G2的分子和分母。
2.2.3 系统的MATLAB建模及实验
在MATLAB中编写相关代码,建立该倒立摆控制系统的数学模型,然后通过反馈命令产生闭环传递函数T(s),外力F作为系统的输入量,倒立摆摆杆与竖直位置的偏角ϕ作为输出,得到该系统控制模型的M文件,如图2.5所示。
图2.5 倒立摆系统的程序图
对PID控制器的参数进行整定,当KP取100、KI取8、KD 取40时,此时输出的响应曲线如图2.6 所示。
11
图2.6 倒立摆摆杆角度响应曲线图
将小车在水平位移x也作为输出量,即为该系统的最终PID控制模型的M文件,得到小车位移响应曲线图如图2.7所示。
图2.7 倒立摆小车位移响应曲线图
由数学模型及MATLAB仿真结果分析得知,倒立摆模型具有静不稳定的特性,在不受外力控制的情况下无法自主保持直立状态,而PID控制器能较好地控制倒立摆系统,可以使摆杆的角度和小车位移稳定在一个比较理想的状态。因此可以得出双轮平衡小车可以进行姿态控制,用PID控制器进行控制就能得到很好的效果。
12
2.3 平衡小车自动跟随方案设计
对被跟随目标进行识别与定位,是实现自动跟随的首要任务。常用的近距离定位技术有超声波测距技术、红外测距技术、UWB定位、视觉定位等,下面将逐一介绍并分析这些技术。
定位,这种技术是通过获取采集当前设备周围的各个AP点信号的强度,进而对距离进行计算进而实现定位的。WIFI定位主要有两种工作方式,分别为主动采集和被动采集。WIFI适合在比较大的空间中应用,其具有很高的带宽和传输速度。但这种技术也有很多的不足之处,如WIFI信号受环境中存在的相同频率信号的干扰十分严重。所以单独的使用WiFi定位技术无法达到很高的精度,通常都有着几米到十几米之间的随机误差。
2.蓝牙定位,蓝牙作为一种无线数据传输和通信的规范,也可以进行近距离的测距和定位。这种空间定位技术常用两种定位方法进行定位,分别是信号衰减定位和信号速率定位。信号速率定位方式对时钟精度具有很高的要求,相对常见的蓝牙设备而言是难以达到的。所以信号衰减模型定位是一种更可靠的定位方案,利用衰减公式计算距离能达到更高的定位精度。在无干扰的理想测试环境下,此方法可以达到很高的定位精度,这也说明了该方案具有可行性,但蓝牙信号衰减定位技术暂时还无法脱离实验环境。蓝牙定位技术在信号复杂,带有更多干扰的环境中应用效果仍需要进一步的研究与改良。
3.超声波定位,是一种应用很早的近距离测距定位技术,现如今这种技术已经相当成熟。超声波定位使用声波飞行时间测量距离,通过测算声波在目标物体上回弹并返回传感器的飞行时间即可测出距离,通过多个传感器的角度和距离关系进而实现空间定位。此定位技术的优点是在传输方向上超声波比其他声波性能更好,受干扰更低,穿透力更强。超声波经常应用于现场环境复杂的情况下,能够完成很多艰巨的任务。其还具有硬件简单,成本低廉的优点。当然它也存在一些不容忽视的缺点,比如由于声速受环境温度影响而使测量产生误差,超声波从发射器中发出后存在一个震荡衰减的过程,这个过程中很有可能产生“拖尾”现象,此现象会产生一定的盲区,从而影响回波的检测。
4.红外定位,其利用红外光进行测距,原理是通过光的传播速度和红外光束发出和收到的间隔时间计算距离。红外光通常使用红外激光发射器作为光源传播,这种方法具有很高的近距离测距精度,很多机器人会采用红外定位加入多传感器融合系统13
中以提升定位精度。但红外测距单独使用时远距离精度较差,并不适合在较大空间中进行测距,红外测距常作为检测前方或周围环境信息的辅助传感器配合其他传感器使用。
定位,Ultra Wideband超宽带是一种新的无载波通信技术,利用脉宽极短的非正弦波窄脉冲进行数据传输。UWB在定位上的研究开始得较晚,虽然在理论上UWB定位可以达到高精度的室内定位,但是这项技术到目前仍不成熟,其应用场合非常有限,并且容易受到很多方面的干扰。
定位,也是一种根据RSSI原理进行定位的定位技术。ZigBee是一种新兴的局域网协议,具有低功耗的特点。近年来,低功耗无线数据通信网络在很多场合中都有应用,ZigBee具有三个典型的工作频段,其分别对应着不同的传输速率,在最高工作频率下其传输速率可以达到250k/s。因为ZigBee有着较大的传输距离,其具有一定的定位应用潜力,可以在小型室内环境中应用,目前ZigBee的创始团队已经为定位方案设计了多种应用。此外,德州仪器也已经研发出具有定位功能的ZigBee芯片,但其定位精度并不高,这项技术仍具有较大的提升空间。
7.雷达定位,依据的是激光雷达测距的原理进行定位。主流的雷达定位方式主要有相位测距法和脉冲测距法。脉冲测距在测距原理上较为简单,通过激光在传感器和目标间的飞行时间来进行距离的测量。虽然激光测距的精度比较高,但硬件设备成本始终居高不下,目前仍无法广泛应用。
8.视觉定位,常见的视觉定位技术有单目视觉定位和双目(多目)视觉定位,双目或多目摄像头可以测算出目标的深度信息,而单目定位也可通过配合其他传感器或目标的具体标识来获取深度信息。由于其它种类的传感器获取的信息量都非常有限,而且普遍受诸多因素干扰,相比之下在可视范围内使用视觉定位更加精准,而且视觉定位无需在目标物上安装从机,仅需粘贴有特定的识别标志,应用更加简便。
通过对以上技术进行对比分析,蓝牙、WIFI、ZigBee等定位方法都受环境干扰影响较大,而激光雷达和UWB定位成本较高。视觉方式精度满足要求,并且在性价比和可靠性方面都具有优势,因此最终选择单目视觉结合目标标识作为跟随方案。
2.4 本章小结
本章主要对自动跟随平衡小车的设计进行了前期准备和初步的探索,主要进行了如下的工作:
1.研究学习双轮平衡车的基本原理,并分别对平衡小车的速度控制、直立控制、14
方向控制的原理进行了分析学习,为搭建平衡小车完成了基础的理论准备。
2.采用经典的倒立摆模型来探究平衡小车的特性与控制方法,对模型进行部分分解,进而对每个部分进行单独的受力分析,并以此建立了平衡小车的数学模型,最终证实了此系统为自然不稳定系统的结论。基于数学模型在MATLAB中分析系统的控制性能,通过PID控制器对倒立摆模型进行控制,设定了相应的控制参数,得出系统的响应曲线图,最终验证系统在控制下能够保持平衡稳定。以上仿真实验,不仅进一步了解了平衡小车的动态特性,同时也为后续的控制算法软件设计及其控制参数整定上积累了一定的经验。
3.根据自动跟随的实现原理,对现有的定位测距技术进行列举和分析,从实际需求出发,最终确定了可行的跟随方案。
15
3 自动跟随平衡小车的硬件设计
硬件是系统工作的基础,自动跟随平衡小车的硬件系统主要包括以下部分:主控制器模块、单目摄像头模块、电源模块、姿态检测模块、电机驱动模块。根据第2章的平衡小车基本原理分析可知,平衡小车控制系统需要获取车轮的转速、车身的姿态和跟随目标的位置信息,其中车轮转速信息可通过电机驱动模块内的编码器获得,车体姿态信息可通过姿态传感器获取,目标的位置信息通过单目摄像头模块获取。本章将对平衡小车的硬件部分进行详细阐述。
3.1 硬件系统总体架构
自动跟随平衡小车的硬件系统总体框图如图3.1所示。
电源模块
供电
UART
单目摄像头模块
PWM
主控制器
测速
IIC
姿态检测模块
电机驱动模块
图3.1 双轮自平衡跟随小车硬件系统总体框图
主控制器为整个系统的控制核心,所有控制工作都由主控制器进行。12V电池作为系统的供电电源,通过两级降压稳压达到各个模块的工作适用电压。单目摄像头模块用以采集、处理及反馈被跟随目标的信息至主控制器。姿态检测模块检测小车的角速度、角加速度等姿态信息用以控制车身姿态。电机驱动模块包含电机驱动电路、车轮电机和增量式旋转编码器,用以实现电机驱动车轮旋转,速度反馈和速度控制。
16
3.2 系统硬件功能模块设计
3.2.1 主控制器设计
主控制器是整个系统处理运算的核心。考虑平衡小车的外设资源需求和性能需求,主控制器必须具有充足的接口资源用以获取多个传感器的信息,还需要精度足够高的PWM输出端口以精确控制电机转速。
经过对常见的多款单片机进行对比,恩智浦K60系列单片机是最佳的选择。K60单片机如图3.2所示。首先在性能方面,K60基于ARM CortexM4内核,具有512K的Flash存储器和100MHz的CPU频率,能够胜任平衡小车需要的运算量。K60有8个全功能型的高级定时器,可实现高精度的PWM调制输出以精确驱动电机运行。此外K60单片机具有很低的功耗,由于平衡车的电机为控制姿态需持续且非匀速运转,导致系统电路电流始终不稳定,这种工作状态下和其他单片机相比,K60单片机具有更高的可靠性。
图3.2 K60原理图
3.2.2 单目摄像头模块设计
单目摄像头模块是自动跟随平衡小车最重要的传感器,此模块将获取跟随目标17
的位置信息并将其传送给主控制器。如果仅以独立的摄像头作为传感器模块,主控制器将负担运算量极大的图像处理任务,很有可能影响整个系统控制的运行速度。因此可以考虑使用单独的控制器进行图片处理,再将处理好的信息发送给主控制器以降低主控制器的运算负担。
本方案选取OpenMV嵌入式机器视觉模块,如图3.3所示。其主要由STM32H743VI单片机和OV7725摄像头组成,此模块在STM32处理器的底层做了Micropython解释器,可在进行图像采集时直接调用Python函数库执行多种算法函数,有效减少了主控制器的运算负载,使其留出充裕的处理能力进行小车控制相关运算。
图3.3 OpenMV引脚定义图
3.2.3 电源模块设计
本设计采用12V锂电池供电,采用LM2940和TPS7350提供5V电源,AMS117降压稳压器提供3.3V电源,板上GND共地。电源模块原理图如图3.4所示。
单片机的外围电路采用LM2940进行5V供电。LM2940具有很高的转换效率和带载能力,最大输出电流可达1A,保证了板上器件及下一级的降压稳压的充足供电。
为保证姿态检测的精度,降低供电纹波对姿态传感器的干扰,姿态检测模块采用TPS7350单独供电。相较于常见的LM2940和LM2596稳压器,TPS7350的输出纹波低得多,可以提供更稳定的电压。TPS7350需要的外围元件更少,功耗也更低,非常适合为姿态检测模块供电。
系统的3.3V供电采用AMS117,其能输出最大1A的电流并有完善的电流限制,18
十分适合用于K60的供电。
图3.4 电源模块原理图
3.2.4 姿态检测模块设计
姿态传感器的平衡小车姿态控制的关键部件,其中对车身的角速度和角加速度的测量是姿态检测的重中之重。
本设计采用MPU6050姿态传感器作为姿态检测模块,如图3.5所示。其内部集成了三轴陀螺仪和三轴加速度计,避免了传统组合型姿态传感器由时间轴差引起的测量误差。MPU6050具有一个DMP协处理器,可直接运算输出四元数,无需进行繁琐的滤波计算和数据融合,可大幅降低主控制的运算量。MPU6050通过I2C接口与主控制器进行通信,即通过K60单片机内部的I2C总线接口,对MPU6050模块进行信息读写,这也就是所谓的“硬”I2C 通信。此通信方式的速率足以保证系统姿态反馈的实时性。
图3.5 MPU6050模块图
19
3.2.5 电机驱动模块设计
1.电机的选型和论证
电机是平衡小车的唯一动力来源,也是姿态控制的执行器。电机的性能直接决定了小车姿态控制的能力,而对于平衡小车来说,其运动特点为低速且速度不定,时常前后变速运动,因此电机的低速性能和扭矩大小是电机选型的重点指标。
本设计采用带有霍尔编码器的直流减速电机作为驱动电机,电机上集成了霍尔编码器和减速箱,其低速状态下性能优秀,不易堵转,扭矩大,适合直立车使用。
2.电机驱动的选型和论证
对比分析常见的电机驱动器件,传统的L298N驱动的PWM死区较大,不适合平衡小车的电机控制。BTN7971的驱动电流足够但是发热严重,效率低下。综合考虑后采用TB6612FNG作为电机驱动。TB6612FNG采用MOSFET构成的H桥,驱动效率高,PWM死区小,最大输出电流可达1A。TB6612FNG如图3.6所示。
图3.6 TB6612FNG模块图
3.3 系统硬件电路设计
根据上述硬件模块的原理图及平衡小车的实际要求,设计绘制了集成有诸多功能器件的主控板,如图3.7所示。
20
图3.7 自动跟随平衡小车主控板电路图
主控板集成了主控制器、电源模块、电机驱动等多个功能模块。板上也为OpenMV与主控制器串口通信和编码器的读取设计了通讯接口,同时也预留了多组冗余的I2C、SPI、UART接口,为系统未来的功能拓展提供了丰富的空间。为防止板上的数字信号和模拟信号互相干扰,在PCB板的设计过程中尽量将模拟地和数字地分隔开一定的距离。系统的主供电电路和电机驱动电路需承受较大负载,因此这部分的布线设计有更大的线宽以承受大电流。
完成PCB板设计后,由电路板制作商加工制作PCB板,收到制作的PCB板后,根据原理图进行板上元器件的焊接,最后将其余的功能模块与主控板连接并进行调试,自动跟随平衡小车的硬件电路制作至此完成。
3.4 系统机械部分设计
由于平衡小车的硬件系统内包括有主控板、电池和独立的OpenMV视觉模块,整体重量较大,为保证车体的强度与刚性,本设计采用全铝合金结构的小车底盘,如图3.8所示。
21
图3.8 平衡小车底盘图
小车的左右车轮由两侧的直流减速电机直接驱动,重量较大的电池直接放置并固定在底盘上,主控板和OpenMV重量较轻,通过铜柱支撑的隔板固定在电池的上方,此结构设计使平衡小车的重心较低,具有更好的运动稳定性。搭建完成的平衡小车如图3.9所示。
图3.9 自动跟随平衡小车整体图
3.5 本章小结
本章设计搭建了完整的跟随平衡小车的硬件系统,并进行了详细的阐述。因本研22
究的最终目标是实现平衡小车的自动跟随功能,以系统反馈控制的精度为主要指标,所以在与运动性能相关的硬件选取上舍弃了常见的竞速比赛平衡小车的高功率设计,在电源、电机及驱动电路等方面也降低了负载能力,提高了精度;在系统的传感器方面,本设计选取了一款作用重要的单目摄像头模块为系统采集被跟随目标的信息。
第一次对双轮平衡车的自动跟随功能进行研究和开发必然会遇到很多困难,但是每一个困难的解决对于后续的设计研究工作都将具有深远的意义。23
4 自动跟随平衡小车的软件设计
本章设计和研究自动跟随平衡小车的控制算法及软件实现,着重研究小车运动控制与姿态控制的软件实现及在平衡状态下实现跟随的控制方法。软件设计的主要内容包括:车身姿态数据及速度信息获取、跟随目标信息采集、小车直立控制和跟随运动控制、目标丢失后重拾策略以及基于上述方法的情况下,针对平衡控制和跟随设计控制算法及参数整定。
4.1 软件系统总体架构
参考市场上现有的载人自平衡车产品的控制思路,以及倒立摆的控制方法,本设计研究自动平衡和跟随控制,并没有采用主流载人平衡车产品通常使用的自适应模糊PID控制,而是采用了已经在工业控制领域中广泛应用的经典PID控制,在先前的理论研究中已经证明了经典的PID控制器可以很好地控制小车的姿态和运动,在此进一步通过编写单片机程序实现PID控制。本设计采用了一套新型的视觉识别基准系统用以进行视觉识别和跟随目标,初步完成了控制程序部分的设计工作。
为了使平衡车自动跟随控制流程及关键功能的实现描述更加详细,做出的以下论述:
1、开机之后系统进入初始化。内容包括:检查所有通讯器件的连接状况、初始化PWM输出模块、初始化系统的多个中断,若器件工作全部正常,则继续运行后续的功能程序,若有器件状态异常则初始化失败,不再继续运行程序。
2、进入软件的主控制程序部分,各传感器及相应部件实时采集信息,与此同时单目摄像头模块也进行实时的图像信息处理。
3、主控制函数由定时时长5ms的定时器中断控制运行,在中断运行时进行下列数据处理工作:通过正交解码得到编码器的速度信息;将姿态传感器获取的姿态信息通过卡尔曼滤波之后用于姿态控制;如果单目摄像头发送给单片机的数据中存在有效的目标信息,则接下来使用该信息进行小车运动控制,如果收到的信息中无目标信息,则判断为目标丢失,接下来通过目标丢失重拾策略控制小车运动。
4、中断实时控制。将上述数据分别作为速度环、直立环、方向环的输入信号,通过三环串级PID控制计算出控制电机转速的PWM信号,并由高级定时器调制出24
PWM波,发送给电机驱动,对电机运转进行控制。
5、系统终止跟随决策。在摄像头未获得图像信息和摄像头的图像信息中无有效的目标信息,并且目标丢失重拾策略长时间未重新获取到目标的情况下,小车停止运动,只保持直立状态。
6、系统终止直立控制决策。当姿态传感器检测到小车严重倾斜,倾角过大已经无法通过姿态控制算法调整回直立状态时,系统主动停止小车的一切运动控制。
系统的整体控制流程如图4.1所示。
开始
系统初始化
否
定时器5ms?
是
姿态信息采集
速度信息采集
目标信息采集
PID控制器
电机控制
电源开关闭合?
否
结束
是
图4.1 系统控制流程图
自动跟随平衡小车软件的运行流程总结如下:系统成功进行初始化后,通过姿态传感器获取姿态信息,滤波后得到可使用的数据,通过直立环的PID控制算法计算出控制小车直立的电机控制量,再由编码器获得的速度信息通过速度环PID计算出控制小车速度的控制量,由OpenMV采集的目标信息根据不同的跟随策略,采用相25
应的控制算法得出控制小车方向的电机差速比,最终由上述三部分控制量加和作用于车轮电机,控制小车保持直立并以固定的速度前进或转向。
4.2 信息采集部分程序设计
4.2.1 姿态信息采集部分程序设计
本设计使用MPU6050作为姿态传感器,其具有三轴角速度传感器和三轴角加速度传感器。由角速度传感器积分得到的角度信息存在累计积分误差,而角加速度传感器测得的加速度信息中噪声太多,导致两者的姿态信息都无法直接使用,因此需要进行姿态融合以获取可靠的姿态信息。
常见的姿态融合的算法有一阶互补滤波和卡尔曼滤波两种。两者需要进行大量的浮点数角度运算,而MPU6050内置有DMP处理器,其可通过内置的算法直接向单片机输出四元数,再将四元数转换为欧拉角即为可用的姿态信息,此方法无需进行繁琐的运算,为单片机节省了大量的算力,并且DMP的输出频率可达200Hz,保证了系统的实时性,因此本设计通过DMP直接获取姿态信息。
4.2.2 速度信息采集部分程序设计
小车的速度信息通过电机上的旋转编码器获取。电机转动时带动编码器转动并输出计数脉冲,单片机通过高级计时器进行正交解码获取脉冲数,根据一定时间内的脉冲数和小车移动固定距离的脉冲数即可测量得到有效的速度信息。编码器测速部分的程序如下:
void PIT0_IRQHandler()
{
extern int vall,valr;
extern float spdl,spdr;
vall=ftm_quad_get(FTM2);
ftm_quad_clean(FTM2);
valr=ftm_quad_get(FTM1);
ftm_quad_clean(FTM1);
spdl=(-vall*10000)/2850;
spdr=(valr*10000)/2850;
PIT_Flag_Clear(PIT0);
}
本设计使用的霍尔编码器具有AB两个脉冲输出端口。电机工作时,两个端口分26
别输出AB两相脉冲,当电机正转时A相超前B相90°,反转时B相超前A相90°。通过检测AB两相的相位差来得知电机的旋转方向。编码器AB相脉冲如图4.2所示。
图4.2 编码器脉冲图
4.2.3 跟随目标信息采集部分程序设计
小车的自动跟随功能通过基于AprilTag技术实现。通过OpenMV对AprilTag二维码标签进行识别和定位,进而解算出目标的位置信息。
AprilTag是一个应用十分广泛的视觉定位系统,其定位目标为一个特殊的二维码标志,此标志相较于常见的二维码更为简单,信息量更少,但更易被识别和读取,可以通过此二维码快速计算出其与设备的相对位置。AprilTag二维码如图4.3所示。
图4.3 AprilTag二维码实例图
AprilTag可以通过常见单目摄像头进行采集并识别,获取到图像中AprilTag相对于摄像头的三维空间信息,通过此信息可以反解出当前系统与被跟随目标的位置数据及跟随的状态。在复杂环境下AprilTag的实际测试如图4.4所示。
27
图4.4 复杂环境下AprilTag测试图
复杂环境下AprilTag通过下述步骤进行图像的预处理及识别定位:系统首先根据原始图像计算出一定的分割阈值,并依据此阈值对图像进行二值化处理,如图4.5所示。之后对二值化图像中的连通区域进行分割,提取出区分边界,如图4.6所示,以此对同一个分割区域内的像素聚类。图4.7为对聚类得到的不同像素簇进行回路拟合处理,找出可用并与Tag库中预定标签匹配的回路部分。最后实现对标签的有效检测,如图4.8所示。
图4.5 自适应阈值二值化图 图4.6 连通区域分割图
图4.7 回路检测图 图4.8 标记检测图
OpenMV对从AprilTag中提取到的有效位置信息进行进一步处理,并通过串口将信息发送至单片机,用以进行小车的方向闭环控制。
28
4.3 控制部分程序设计
4.3.1 PID控制算法原理
根据获取的信息对小车的姿态和运动进行控制是整个程序的核心。本设计采用经典的PID控制算法对小车的姿态、方向和速度进行控制。
PID控制器由比例环节,微分环节,积分环节三部分组成,三个部分的作用都不尽相同。比例环节(P)通常是PID控制器中最重要的控制方法,其通过将当前输出量与设定量的差乘以一个增益系数来对输出进行线性的调整。比例环节的增益越大,系统调节越迅速,但比例环节单独作用时输出量始终会存在稳态误差。此时引入积分环节(I)可以消除稳态误差。积分环节可以有效改善系统的稳态精度,但其可以看做是一个滞后环节,对系统的动态性能不利。微分环节(D)可以解决滞后问题。微分环节能根据输入量的变化趋势,对控制量进行迅速的修正。一个完整的PID控制器必然由下图4.9所示的几个部分所构成:比例积分微分控制器、输入信号和输出信号、测量元件和执行机构。
图4.9 PID控制原理框图
4.3.2 三环串级PID控制程序设计
经典的PID控制器存在着一个完整的闭环反馈回路,而平衡小车有着三个控制环节,其中每个环节的输出量的变化都会对其余两个环节造成影响。因此本设计建立了一种三环PID串级控制方案,对姿态、速度、转向三部分进行独立计算,最后再进行融合,对输出量进行控制。其中某一个环对其余两环影响很小,极大的保障了系统控制的稳定性。以下讲分别阐述各个控制闭环的程序设计:
1. 姿态控制部分程序设计
姿态控制回路控制小车自动保持平衡。因系统具有静不稳定的特性,执行器会始29
终处于不断调整的状态,因此积分环节无法充分发挥作用,这里使用PD(比例微分)控制器。比例控制是反馈控制的主要手段,而系统所受的干扰需要快速的控制响应,需要积分控制的接入。
此控制回路的主要程序如下:
posAngle=(posZero-0)-roll;
fgyrox=kalman(1,(float)(gyrox));
standPowerOut=(p_KP*posAngle+p_KD*(-fgyrox/100));
通过设定的机械零位和姿态传感器测得的滚转角做差得到PD控制的偏差值。由于姿态传感器具有角速度传感器,可将测得的角速度经卡尔曼滤波处理后直接作为偏差值的微分量,此数据相较数字PID常用的通过角度差分方法得出的角速度更为准确可靠。将偏差值和偏差值的微分代入PD控制器计算出姿态控制的输出量,此输出量即为姿态控制回路控制电机转速的依据,但姿态控制回路仅能控制姿态维持平衡,而无法做到在某个速度上维持平衡,这也是下节速度控制的必要性和意义所在。
2. 速度控制部分程序设计
速度控制回路控制小车的前进运动速度,本设计采用PID(比例积分微分)控制器,相较于速度控制中常用的PI控制器具有更好的动态性能。系统通过小车与目标的距离设定小车的给定速度,将左右两个编码器获取的速度值取平均数并经过低通滤波后作为小车的当前速度。根据数字PID以差分代微分,以累加代积分的基本思想,将当前速度和上一周期的速度之差作为速度的微分量,将每个周期的速度累加作为速度的积分量,为防止系统速度控制未能及时矫正而造成积分饱和,进而出现严重失控,还需要对积分量进行限幅处理,最后将上述变量输入PID控制器计算出速度控制的输出量。下面是速度控制回路的部分代码:
speedLeast=(speedL+speedR)-targetSpd*2;
speedEncoder*=0.8;
speedEncoder+=speedLeast*0.2;
speedI+=speedEncoder;
er=speedEncoder-er0;
if(speedI>1000000)
{
speedI=1000000;
}
if(speedI<-1000000)
{
speedI=-1000000;
}
speedPowerOut=speedEncoder*spdKP+speedI*spdKI+spdKD*er;
er0=speedEncoder;
30
3. 方向控制部分程序设计
方向控制回路控制系统的转向运动,实现小车自动跟随目标的运动方向进行运动。方向控制环一般采用PD(比例微分)控制器进行控制,考虑自动跟随平衡小车的运动方向变化速度较慢,因此选用比例控制对小车的方向进行控制,即将单目摄像头获得的目标与小车的偏差角乘以一个为负的参数得到方向控制的输出量,将此输出量加到与偏差方向相反的一侧电机上即可实现差速转向。
系统最后将上述三个控制回路的输出量相加求和,并额外加入一个较小的补偿量以避免输出量过小时无法驱动电机而影响小车低速性能。最终将综合输出量通过高级定时器模块产生相应占空比的PWM,控制电机转动驱动小车运动。此部分代码如下:
powerOutL=standPowerOut+speedPowerOut+turnPowerOutL;
powerOutR=standPowerOut+speedPowerOut+turnPowerOutR;
if(powerOutL>0)
powerOutL=powerOutL+motorDied;
else if(powerOutL<0)
powerOutL=powerOutL-motorDied;
if(powerOutR>0)
powerOutR=powerOutR+motorDied;
else if(powerOutR<0)
powerOutR=powerOutR-motorDied;
run(powerOutL,powerOutR);
4.3.3 目标丢失重拾策略设计
自动跟随平衡小车在正常跟随目标运动时,目标应始终处于摄像头像场的中央位置,一般不会出现目标突然丢失的情况。但目标如果突然以很小的转向半径进行转向,或者目标突然以远大于平衡小车最大加速性能的加速度进行加速运动,则目标就会从像场中丢失。如果不对这种情况进行处理,小车在目标丢失后会停止跟随运动,在原地保持直立,因此需要设计一种目标丢失重拾策略,让小车在短时间丢失目标后按照一定的运行策略重新追到目标并恢复跟随状态。
目标丢失后追回过程的运动控制必然是根据丢失前目标运动方式而得出的,因此对目标运动状态识别和预测是丢失重拾策略的关键所在。由于被跟随目标的运动在长期看来并无明显的特征规律,可以视为非线性的运动方式,而其短时间内运动状态改变不大,可以视作线性状态。由此可以得知系统只能以近期的目标运动数据判断运动的趋势。本设计使用最小二乘法曲线拟合算法对目标的下一个位置状态进行预31
测。二维曲线拟合如图4.10所示。
图4.10 二维曲线拟合示意图
此方法无需对目标进行精准的力学分析或者建立复杂的数学模型,仅需获取与目标运动轨迹符合的多组数据即进行分析预测。考虑主控制器的运算性能和存储空间限制,本系统选用先前的36组历史运动状态数据进行状态分析,并得出目标下一步可能的运动状态。
常见的目标丢失可分为在直线运动时丢失目标和在转弯过程中丢失目标这两种情况。如果目标在丢失前处于直线加速状态,则小车在目标丢失后加速向前行驶进行追回,如果目标丢失前有大幅度的转向动作,则小车向该方向转向并加速运动。目标丢失重拾策略整体流程图如图4.11所示。
32
图4.11 目标丢失重拾策略流程图
4.4 本章小结
本章节首先介绍了软件系统的总体架构,进而对车身姿态信息采集方法、目标识别算法、PID控制算法及目标丢失重拾策略等关键的软件部分的设计进行了详细的论述。最终使平衡小车能够保持直立,并跟随AprilTag以一定速度进行运动。此部分软件设计也为自动跟随平衡小车后续功能的开发打下坚实的基础。
33
5 自动跟随平衡小车整体测试
为了验证自动跟随平衡小车的实际运行性能,需要对小车在不同的环境下进行多次测试,本章主要在自动平衡控制和自动跟随目标这两个方向上测试并分析系统的控制准确性、控制响应速度和抗干扰性能。
5.1 自动跟随平衡小车平衡性能测试
自动跟随平衡小车的直立性能是最重要的性能指标,系统其他的功能实现均建立与小车直立状态之上。为了测试小车在不同环境下的直立控制能力,本设计选择了三个具有代表性的应用场景进行测试,分别为:
场景1:平整的水平平面。
场景2:平整的10°斜面。
场景3:坑洼的水平平面。
平衡小车通过蓝牙串口将实时的姿态信息发送至电脑,使用电脑的虚拟示波器观察姿态变化的波形。
平衡小车在场景1进行测试的环境及数据曲线如图5.1所示。
图5.1 场景1直立测试及姿态曲线图
在平整的水平平面上,设定平衡小车开机并关闭自动跟随功能,观察到小车在保持直立时,始终在设定的直立角度附近有2°左右的小幅度摇摆。观察上图姿态曲线得知,小车一直在进行自动控制调整姿态。动态平衡状态下并不是完全静止不动,符合预期,可以说在光滑水平的路面上小车的直立控制达到了要求。
平衡小车在场景2进行测试的环境及数据曲线如图5.2所示。
34
图5.2 场景2直立测试及姿态曲线图
将小车置于有10°倾角的光滑斜面上,小车仍能够保持直立状态,其细微的姿态调整特性与在水平平面上几乎相同。观察上图的姿态曲线小车的姿态变化规律也与水平平面上相同,因此可以得出结论,小车在有一定倾斜角度的坡道上也可正常运行。
平衡小车在场景3进行测试的环境及数据曲线如图5.3所示。
图5.3 场景3直立测试及姿态曲线图
将小车置于坑洼的水平路面上,其仍能保持直立,但由于路面粗糙并且凹凸不平,小车在姿态控制过程中车轮所受的阻力和摩擦力始终变化,小车一直存在轻微的抖动。观察上图的姿态曲线可知,小车的姿态控制受到了一定的干扰,但整体控制效果依然很好,因此小车可以在有一定坑洼的路面上正常运行。
小车的平衡性能测试至此已经全部完成,上面三个测试可以证明,自动跟随平衡小车的直立控制精度很高,并且有较强的抗干扰能力,可以满足正常环境下的运行要求。
5.2 自动跟随平衡小车目标跟随性能测试
对于小车的目标跟随性能测试,主要围绕着小车的运行环境的干扰和被跟随目标的干扰两方面展开,因此在这部分设计了以下几个测试项目:
1、在平整路面上进行跟随测试。
35
2、在坑洼路面上进行跟随测试。
3、在平整的路面上进行多个二维码干扰测试
在平整的水平路面上,将目标二维码放置在小车前方一定距离,小车可以自主靠近二维码并保持一定的距离,如图5.4所示。
图5.4 平整路面上自动跟随测试图
二维码移动时小车能够跟随二维码运动,并在二维码大幅加减速和转向运动时仍可以实现跟随运动,可以说明自动跟随平衡小车在典型的应用环境下具备自动跟随的能力。
将小车置于坑洼路面上进行自动跟随测试,如图5.5所示。
图5.5 坑洼路面上自动跟随测试图
小车仍能对二维码进行自动跟随,但是当二维码移动的速度提高后,小车出现数次目标短时丢失的状况,在颠簸严重的状态下更为明显,但通过目标丢失重拾策略最终都能找回目标。由此可以得知小车经过坑洼时的车身振动对OpenMV的图像识别造成了一定的干扰,小车在坑洼路面上低速运行的表现正常,但是在高速状态下效果略差。
将小车放置在平整路面上,在小车前方放置包括预定二维码在内的两个二维码,36
如图5.6所示。
图5.6 多二维码干扰测试图
图中左侧的二维码是预定的目标二维码,右侧的二维码是干扰二维码,将两个二维码向不同方向移动,小车仅跟随目标二维码进行运动。多次测试可知,小车可以识别出预定的目标二维码,并仅以此作为跟随目标,完全不受其他二维码干扰。
由自动跟随平衡小车的目标跟随测试可知,小车具备自动跟随的能力,在目标进行大幅度运动时仍可正常进行跟随,且具备一定的抗干扰能力,在坑洼路面上快速运动时小车的跟随效果较差,有可能会出现目标丢失的情况。
5.3 本章小结
本章对自动跟随平衡小车在多个使用环境下进行了多方面的测试,测试结果表明小车具有良好的自动平衡能力和跟随能力,小车在不同环境下的抗干扰性能优秀,目标丢失重拾策略可以正常发挥作用。但小车跟随效果会受车身振动影响,在崎岖路面表现不太理想。
这些结果表明本设计的方案与方向均是正确的,但仍存在着一定的问题,有着改进提升的空间,值得进行更加深入的研究。
37
6 总结与展望
6.1 本文总结
本设计是在当今的科学技术产业智能化发展的理念及国家政策的鼓舞的背景下,设计制作的一款自动跟随平衡小车。自从双轮载人平衡车问世以来,很多研究人员都在平衡车研发道路上不断前进。本作品吸纳了先前的平衡车设计开发经验, 同时采用了OpenMV单目摄像头实现自动跟随,在软件和硬件上进行了大量的研究与设计,最终完成此作品。总结本文工作有主要几点:
1、在平衡车发展史中逐步学习平衡车的相关知识,层层深入,探究平衡车的基本原理,再通过倒立摆数学模型进行仿真和分析,最终验证了平衡车的静不稳定特性及姿态控制的可行方式。
2、查阅分析了大量的定位技术及各个技术的特点和性能指标,选取了OpenMV单目摄像头模块结合AprilTag二维码目标的自动跟随方案
3、根据自动跟随平衡小车的性能需求对小车的硬件系统进行设计构建,选取适合可行的功能模块,设计绘制了主控制板,最终完成了小车硬件系统的设计和搭建。
3、基于搭建完成的硬件环境设计了一套完整的自动跟随平衡小车软件系统,将AprilTag算法用于目标的识别与自动跟踪,设计了一套三环串级PID控制算法用以进行小车的运动控制,设计了基于目标状态预测的目标丢失重拾策略。
4、对小车完整的软硬件系统进行综合测试,在实际使用环境下分析小车的性能,验证了先前的设计思路及设计方案的正确性,发现了仍存在的缺陷与不足,有待后续的深入研究与改善。
6.2 不足与展望
本作品在进行系统整体设计的初期,根据所查阅的资料和文献,以现有理论和模型作为基础,逐步探索并完成了自动跟随平衡小车的设计方案。虽然完成了作品的设计制作,但其在跟随功能,预测重拾性能上仍存在很大的提升空间,因此将作品的不足以及研究过程中有待改进之处在下面进行表述,希望后人可以在此基础上将其完善。
1、本系统选用的硬件方案关键在于OpenMV单目摄像头模块作为目标检测传感38
器,其进行目标识别的方案种类并不多,AprilTag已是最成熟的方案,因此AprilTag技术很大程度上限制了该系统在目标识别跟随方面的提升空间。本系统的主控制器选用的是恩智浦K60系列高级单片机,虽然其具有很强的处理能力,但对于目前热门的机器学习的算法计算仍然不够。主控制器的性能很可能限制了后续功能的扩展开发。
2、本设计对于目标丢失后的重拾策略仅仅是基于短期预测的简易方法,并不能保证在复杂的应用环境下依然有效可靠。对于目标丢失后更长时间段的预测还有待深入研究。
3、自动跟随平衡小车在坑洼路面上以较高的速度运行可能会导致车身抖动严重,进而引起摄像头采集的图像信息劣化,使系统无法识别出被跟随目标。后续可以考虑通过安装稳定云台等方法提升图像在车身抖动时的质量,增强视觉识别的可靠性。
39
40
2023年12月20日发(作者:巫慧美)
自动跟随平衡小车的设计
1 绪论
1.1 研究背景与意义
1.1.1 研究背景
当今时代是产业智能化的时代,新兴的信息技术正在快速应用于各行各业,现代科学技术已经成为了产业变革最主要的推动力。根据《中国制造2025》计划所述,我国将加大力度对智能自动化工程、智能交互机器人、智能交通管理、智能电器、智能家居控制等产业进行引领和推动。此外,还应根据消费需求的动态感知,从研发、制造和产业组织模式等方面开发一系列新的制造模式。2018年12月底,全国工业和信息化部部署2019年工作,其涉及智能制造、信息消费、5G等领域。智能制造业的兴起和引起人们的重视,得益于人工智能的研究和发展,其可以理解为人工智能系统的前沿技术。人机一体化智能系统是智能化技术早期的应用探索之一,正在逐步发展成为一种混合智能技术。人机一体化智能系统的智能化应用主要体现在智能机械上,而对于人们的日常生活来说,智能化在在智能机器人的应用上体现得最为明显。在工业生产上,很多领域通过智能化装置的应用,实现了手动控制与自动控制的结合,节省了人力,降低了物料损耗,提升了生产效率和经济性。随着智能化在不同产业的生成过程中应用愈发广泛,其承担的作用也越来越重要。
1.1.2 研究意义
1.推进双轮自平衡车的智能化研究
自动跟随技术已经经历了很长时间的发展。早在很多年以前,国内外的研究人员就开始了对自动跟随技术具体应用的探索,设计出了自主跟随四轮小车,自主跟随无人机等作品。由于那个时期的自平衡车的相关技术还不成熟,导致很少有自动跟随技1
术在平衡车上应用。在性质上,双轮自平衡车从属于智能机器人的发展范畴,在移动载具方面,它有所占空间小、驾驶灵活、容易停车且便于携带等特点,非常适合短距离的代步和应用于娱乐活动。但由于自平衡车在交通复杂的环境下,其安全性能并不稳定,并且对驾驶者的安全防护措施比较欠缺,导致自平衡车的交通事故发生频繁,事故损伤普遍偏重,致使现阶段很多城市都出台法令限制平衡车通行;另一方面,在平衡车跟随功能方面,小米正在成为先驱者,虽然小米平衡车的性能和适用范围还有很多不足之处,但自动跟随相关研究方向的正确性已被证明,这也将成为未来服务型机器人种类中特殊的一面。
2.绿色环保科技理念下新的成长力量
“绿水青山就是金山银山”,现在人们意识到了保护环境就是保护生产力。竭泽而渔,污染环境的生产方式已经走到了尽头,绿色发展,可持续发展才是正确的发展方向。绿色、环保、高效、健康、安全必然是我们建设科技强国的重大使命的立足之本。在科学技术迅猛发展的今天,绝不可将利益作为追求的首要指标,必须倡导推行清洁之上的发展准则。这个科技智能发展时代之下,特殊的底线和准则定能在可持续发展科技之路中谱写成为主篇章。
3.促进自动化向智能化的方向发展
当今时代是人工智能时代,人工智能的应用使得产业生产效率大幅提升,但与此同时,这也为自动化行业的技术人员提出了新的需求。传统的自动控制技术现在也在向着智能化进行着升级变革,自动化领域的研究人员也在不断地尝试着将各种新型的科技手段在此进行应用。在运输领域之中,京东的自动化仓库已经成为了行业领先者,其采用了很多种类的分拣机器人、自动导引运输车等智能化的先进科技;在交通领域,自动跟随无人机现已面世,当前已经有诸多团队投入到了自动化驾驶技术的研究中;在工业制造领域,自动化装置代替了大量人力的繁重作业,大幅度提升了生产开发效率;在高危电气应用中,利用智能化技术能够避免人员接触,保护人员的安全等等。可见,智能化的研究和发展是时代发展潮流大势,人人都可以受益于智能化技术的应用,这也是智能化领域进步的不竭动力。
2
1.2 研究现状
1.2.1 国外研究现状
2001年,第一款成形的自动平衡载人车辆问世,其名为Segway HT,如图1.1所示。其通过驾驶者自身控制重心位置的变化和摇晃扶杆实现运动的控制,在具备很强的载重能力的同时仍保证了较长的续航里程,平衡车从此成为了一种新的单人代步交通工具。
图1.1 Segway HT
Segway的出现很大程度上引起了学术界的研究人员对平衡车方面的研究兴趣。众多的科技创新领域人士都对这个新奇的交通工具所看好,苹果公司创始人乔布斯也曾夸赞平衡车,称其为具有跨时代意义的作品。
2002年,此课题成为了诸多科研团队的主要研究方向,当时在双轮平衡车领域出现了很多研究。瑞士联邦工业大学Dan Piponi设计完成了一款新的双轮平衡车,将其命名为JOE,如图1.2所示。这款双轮平衡车以DSP处理器作为为主控制单元,通过陀螺仪测量平衡车的车身姿态信息。JOE具备自动保持平衡运行的能力,但其使用范围很窄,只能在没有起伏的平面上运行。原型机完成后,Dan Piponi与Felix Grasser又对JOE进行了升级改造,使其最高运动速度超过了5km/h,比人们正常的行走速度略快一些。升级版的JOE是自适应模糊控制算法在平衡车领域的第一次应用,自适应模糊控制算法使其抗干扰能力和系统稳定性远远强于第一代的JOE。同年,三洋推出了FLATHRU,这是一款设计作为家庭内物品运输载具的双轮自平衡机器人,如图1.3所示。FLATHRU的外形近似于圆筒状,其外壳内部具有一定空间,可以放置并搬运物品。机器人通过三个陀螺仪检测姿态信息,并进行自主平衡控制。但其同样有无法在坑洼路面运行的缺憾,并且在平坦路面它的最高运行速度也仅有0.3m/s,在负载达到最大负载量10Kg的情况下仅有60分钟左右的续航。
2009年,本田公司发布了Mobility Robot搬运机器人。这是一款专为室内物品搬3
运设计的自平衡机器人。如图1.4所示。Mobility Robot具有自主运动的能力,能实现自动避障,可以接收命令并自动进行物品的搬运。
图1.2 JOE 图1.3 FLATHRU 图1.4 Mobility Robot
2017年,Handle问世。这是一款具有革命性机械结构的机器人,其轮腿式运动结构设计应用了很多波士顿动力先前研发的Atlas的设计经验,Handle的出现标志着双轮自平衡机器人的研究现在已经达到了很高的技术水准,其在复杂路况的通过性及运动性能远远超过了同期其他型号的自平衡机器人。
1.2.2 国内研究现状
我国对机器人的研究起步较晚,早期的研究都是以技术引入为主。从产品的逆向研发开始慢慢对机器人设计领域进行探索,之后逐步进行独立的设计,经过很长一段时间,完整的系统开发才得以实现。近年来,国内诸多高校及研究机构都开展了双轮自平衡机器人的研究,在控制理论、控制算法方面都取得了不错的研究成果。
2003年,中国科技大学的研发人员设计制造出了一款双轮平衡车,其名为FreeMove,如图1.5所示。FreeMove是第一部国内自主研发的双轮平衡车,这对我国平衡车研究领域具有里程碑式的意义。
2011年,国内的首款面向市场的代步平衡车产品成功上市,其名为Robstep易步车,如图1.6所示。Robstep易步车在传统的双轮平衡车基础上进行了诸多创新与改进,它在保持车体小巧灵活的前提下仍然实现了长距离的续航。其设计主要用于室内行驶,是一款优良的代步工具。
2013年,纳恩博推出了Ninebot双轮载人平衡车,这是一款完全国内自主研制的双轮载人自平衡电动车。其实物如图1.7所示。
2015年, Segway公司为小米公司设计定制了一款双轮自平衡车,名为小米九号。如图1.8所示。九号平衡车的上市标志着中国已经替代了美国和日本,成为了平4
衡车产业新的发展中心。
2017年,九号平衡车PLUS上市,如图1.9所示。它在九号平衡车的基础上进行了多个改进和升级,具备了无线电跟随功能。
图1.5 FreeMove 图1.6 Robstep 图1.7 Ninebot 图1.8九号 图1.9九号 PLUS
1.3 论文的章节安排
双轮自平衡车方面的技术逐渐趋于成熟,进而向自动化、智能化方面开始迈进,而平衡车的稳定性、安全性的指标也随着平衡车产业发展不断的提升,围绕着这个主题,本文对双轮平衡车的设计及自主跟随的解决方案进行研究和探索。
第1章 绪论:首先阐述了本设计的背景及研究意义,其次整理了平衡车的进化史及国内外平衡车产业的发展历程,并在此过程中了解学习了双轮平衡车的基本的硬件方案及软件控制方法,积累了很多的经验。
第2章 平衡小车的基本原理及跟随方案设计:对平衡小车的基本原理进行了研究学习,了解了平衡小车控制的基本方法。基于倒立摆模型对平衡小车建模,进行了更深刻的探索,验证了平衡小车的静不稳定特性及通过PID控制算法对小车进行控制的可行性。最终列举分析了现存的多种定位跟随技术,选取了最为适合的视觉定位技术作为实现自动跟随的技术手段。
第3章 自动跟随平衡小车的硬件设计:设计了一套完整的自动跟随平衡小车硬件系统,从硬件系统的整体架构入手,逐步对各个硬件模块进行研究与设计,进而设计并制作了小车的主控制板,最终将硬件电路系统安装到小车底盘上,制作完成了平衡小车的硬件系统。
第4章 自动跟随平衡小车的软件设计:根据第二章验证的PID控制算法及第三章所选的OpenMV定位跟随技术及相关硬件模块,对小车的软件进行设计,重点设计了基于OpenMV单目视觉模块和AprilTag二维码的自动跟随程序和小车运动控制的三环串级PID控制算法,最终完成了软件系统的开发。
5
第5章 自动跟随平衡小车整体测试:对已经制作完成的自动跟随平衡小车进行完整的系统测试,验证了设计方案方法的正确性和可行性,证明所研发的小车符合预期的性能要求。
第6章 总结与展望:对本设计进行整体的总结与概括,分析了设计过程中遇到的各个技术难点,反思了仍存在的诸多不足,并提出了系统改进和升级的设想与展望。
1.4 本章小结
由以上的双轮自平衡车相关研究的资料文献,可以得知双轮自平衡车是一种新兴的小型载人交通工具,国外对双轮自平衡车的研究已经进行了很长时间,而国内在此方面研究时间较短,现阶段仍有很大的提升空间。随着市面上出现的平衡车产品越来越多,平衡车在智能化方面的功能扩展与升级日趋丰富,这说明本设计的研究和创新方向是正确的。
近年来,从研究成果上来看,双轮平衡车的发展已经进入到了稳步推进的阶段,虽然该领域内经常产出新的研究成果,但其多数都是停留在实验室内的测试研究阶段。无论是从国家政策的鼓励和推动还是从科研工作者的探索和创新角度来看,在这个人们需求与科学技术都在迅速提升的时代,在平衡车领域仍值得探索与推进。
6
2 平衡小车的基本原理及跟随方案设计
本章主要对自动跟随平衡小车的自动平衡原理进行探究和学习,并将平衡小车简化为倒立摆模型,进而对平衡车的特性及控制方法进行分析,并将其作为平衡车设计的理论依据,之后对平衡小车的自动跟随设计方案进行了设计。
2.1 平衡小车的基本原理
在进行平衡小车的设计与制作之前,首先应了解其基本原理。平衡小车的两个车轮是小车运动控制的唯一驱动装置,车轮在与之直接连接的电机驱动的驱动下旋转。如果将小车的整体视为一个控制对象,则电机转速是唯一的控制量。小车的控制任务可以分解为平衡控制、速度控制、方向控制三个基本任务,以下对这三个任务进行详细的分析:
1.平衡控制:维持小车保持直立平衡是小车控制的首要目标,小车在速度和方向上的控制都是在小车保持直立的前提下完成的。直立状态下小车的支点在车轮轴线的中心处,而小车的重心在车轮轴线的上方,因此小车具有静不稳定性,在不受控制的状态下势必向前或向后倾倒,而当小车处于重心在支点正上方这一特殊姿态时,小车的前后倾倒趋势都最小,近似处于平衡直立的状态,称此姿态为机械零位。依据倒立摆的控制原理,当小车发生倾倒时,当前小车姿态和机械零位之间存在着一个角度差,通过传感器将偏角发送给主控制器,主控制器根据控制算法计算出相应的控制信号来控制电机运动进而调整车身姿态,使小车始终保持在平衡状态。
2.速度控制:当小车向前倾倒时,为了使小车重新回到平衡状态,平衡控制算法会使小车向前加速运动,直到姿态角回到机械零位,但此时小车的速度已不为零,而是以一定速度进行匀速运动,当小车向后倾倒时小车会减速运动,其原理与加速过程完全相同。
3.方向控制:小车的方向控制是实现自动跟随的关键。双轮平衡小车通过差速控制进行转向,小车以传感器检测到的跟随目标偏差信号作为方向控制的依据,将偏差信号分别与左右车轮的电机速度控制信号叠加,使两侧电机存在着转速差,进而带动小车进行差速转向。
7
2.2 平衡小车的建模及特性探究
2.2.1 平衡小车的数学模型
双轮平衡车的设计就是参考于一阶倒立摆的物理模型,其运动特性也与倒立摆极为相似。因此在研究学习双轮平衡车的过程中,可以通过一阶倒立摆模型来学习了解平衡车的特性与控制方法。
因此本设计利用牛顿-欧拉法建立了一阶倒立摆的数学模型. 为了便于分析,可以将倒立摆简化为一个水平移动的小车上固定一个倒摆的简易模型,如图2.1所示。
图2.1 倒立摆的简易模型图
模型中F为作用在小车上的力;M为小车的质量;l为摆杆中心到小车的距离;I为摆杆的惯性;m为摆杆的质量;θ为摆杆与正下方的角度差;x为小车位移。
在对此模型进行数学分析的首要任务是推导该系统的传递函数。对倒立摆简易模型中水平移动的小车和倒摆的摆杆分别进行独立的受力分析,如图2.2所示,即可得到倒立摆系统的微分方程。
8
图2.2 倒立摆受力分析图
受力分析图中的P为小车与摆杆相互作用的力垂直分量;N为小车与摆杆相互作用的力水平分量; b为小车的阻尼速度;ẋ为小车的速度;ẍ为小车的加速度;mg为摆杆所受到的重力;θ̈
为摆杆与竖直方向的角加速度。
摆杆实现平衡时处在竖直向上的位置上,为了使分析更加可靠,可以将处在此位置的方程进行线性化,则有θ= p。并且可以假设系统在此平衡位置附近的很小范围内可以保持稳定,即ϕ≤20°(ϕ为摆杆与竖直向上平衡位置的夹角)。则可得θ = p
+ϕ,因为ϕ很少,可以忽略不计,故cos θ≈-1,sin θ =ϕ,2=20。并且用u代替输入F,最终得到的倒立摆方程为:
(Iml2)mglmlx,
(2.1)
(Mmx)bxmlu.对方程组2.1进行拉普拉斯变换,得:
(Iml2)(s)s2mgl(s)mlX(s)s2,
(2.2)
22(Mm)X(s)sbX(s)sml(s)sU(s).假设初始条件为0,消除上述方程组中的X(s),则可以得到小车对摆杆角度的传递函数:
mls(s)q. (2.3)
G1(s)2b(Iml)3(mM)mgl2bmglU(s)ssssqqq消除方程组2.2中的ϕ(s),则得到了以小车的位移量作为输出量的传递函数:
9
(Iml2)2mglsX(s)qq
G2(s). (2.4)
2b(Iml)3(mM)mgl2bmglU(s)s4sssqqq其中
q[(mM)(Iml2)(ml)2]. (2.5)
2.2.2 倒立摆模型的控制器设计
由于倒立摆系统的参数很多,不易进行建模控制,因此尝试使用PID控制器对倒立摆进行控制。PID控制器的传递函数为:
TITDs2KPsTI. (2.6)
KD(s)TDsKPss其中KP为比例系数;TI为积分时间常数;TD为微分时间常数。以摆杆角度为输出量,可以得到倒立摆的PID控制原理框图,如图2.3所示。
图2.3 以摆杆角度为输出的PID控制原理框图
由图2.3可以得到此控制系统的传递函数为:
num1G1(s)den1X(s)X(s). (2.7)
T(s)(numPID)(num)F(s)U(s)1KD(s)G1(s)11(denPID)(den1)其中num1和den1分别代表了传递函数G1的分子和分母;numPID,denPID分别代表PID控制器传递函数的分子和分母。
在上述模型的基础上,引入小车位移量,最终得到以摆杆角度和小车位移为输出量的系统控制原理图,如图2.4所示。
10
图2.4 倒立摆系统的PID控制原理框图
由图2.4可以得到此系统的传递函数为:
num2G2(s)den2X(s)X(s). (2.8)
T1(s)F(s)U(s)1KD(s)G1(s)1(numPID)(num1)(denPID)(den1)其中num2,den2分别代表传递函数G2的分子和分母。
2.2.3 系统的MATLAB建模及实验
在MATLAB中编写相关代码,建立该倒立摆控制系统的数学模型,然后通过反馈命令产生闭环传递函数T(s),外力F作为系统的输入量,倒立摆摆杆与竖直位置的偏角ϕ作为输出,得到该系统控制模型的M文件,如图2.5所示。
图2.5 倒立摆系统的程序图
对PID控制器的参数进行整定,当KP取100、KI取8、KD 取40时,此时输出的响应曲线如图2.6 所示。
11
图2.6 倒立摆摆杆角度响应曲线图
将小车在水平位移x也作为输出量,即为该系统的最终PID控制模型的M文件,得到小车位移响应曲线图如图2.7所示。
图2.7 倒立摆小车位移响应曲线图
由数学模型及MATLAB仿真结果分析得知,倒立摆模型具有静不稳定的特性,在不受外力控制的情况下无法自主保持直立状态,而PID控制器能较好地控制倒立摆系统,可以使摆杆的角度和小车位移稳定在一个比较理想的状态。因此可以得出双轮平衡小车可以进行姿态控制,用PID控制器进行控制就能得到很好的效果。
12
2.3 平衡小车自动跟随方案设计
对被跟随目标进行识别与定位,是实现自动跟随的首要任务。常用的近距离定位技术有超声波测距技术、红外测距技术、UWB定位、视觉定位等,下面将逐一介绍并分析这些技术。
定位,这种技术是通过获取采集当前设备周围的各个AP点信号的强度,进而对距离进行计算进而实现定位的。WIFI定位主要有两种工作方式,分别为主动采集和被动采集。WIFI适合在比较大的空间中应用,其具有很高的带宽和传输速度。但这种技术也有很多的不足之处,如WIFI信号受环境中存在的相同频率信号的干扰十分严重。所以单独的使用WiFi定位技术无法达到很高的精度,通常都有着几米到十几米之间的随机误差。
2.蓝牙定位,蓝牙作为一种无线数据传输和通信的规范,也可以进行近距离的测距和定位。这种空间定位技术常用两种定位方法进行定位,分别是信号衰减定位和信号速率定位。信号速率定位方式对时钟精度具有很高的要求,相对常见的蓝牙设备而言是难以达到的。所以信号衰减模型定位是一种更可靠的定位方案,利用衰减公式计算距离能达到更高的定位精度。在无干扰的理想测试环境下,此方法可以达到很高的定位精度,这也说明了该方案具有可行性,但蓝牙信号衰减定位技术暂时还无法脱离实验环境。蓝牙定位技术在信号复杂,带有更多干扰的环境中应用效果仍需要进一步的研究与改良。
3.超声波定位,是一种应用很早的近距离测距定位技术,现如今这种技术已经相当成熟。超声波定位使用声波飞行时间测量距离,通过测算声波在目标物体上回弹并返回传感器的飞行时间即可测出距离,通过多个传感器的角度和距离关系进而实现空间定位。此定位技术的优点是在传输方向上超声波比其他声波性能更好,受干扰更低,穿透力更强。超声波经常应用于现场环境复杂的情况下,能够完成很多艰巨的任务。其还具有硬件简单,成本低廉的优点。当然它也存在一些不容忽视的缺点,比如由于声速受环境温度影响而使测量产生误差,超声波从发射器中发出后存在一个震荡衰减的过程,这个过程中很有可能产生“拖尾”现象,此现象会产生一定的盲区,从而影响回波的检测。
4.红外定位,其利用红外光进行测距,原理是通过光的传播速度和红外光束发出和收到的间隔时间计算距离。红外光通常使用红外激光发射器作为光源传播,这种方法具有很高的近距离测距精度,很多机器人会采用红外定位加入多传感器融合系统13
中以提升定位精度。但红外测距单独使用时远距离精度较差,并不适合在较大空间中进行测距,红外测距常作为检测前方或周围环境信息的辅助传感器配合其他传感器使用。
定位,Ultra Wideband超宽带是一种新的无载波通信技术,利用脉宽极短的非正弦波窄脉冲进行数据传输。UWB在定位上的研究开始得较晚,虽然在理论上UWB定位可以达到高精度的室内定位,但是这项技术到目前仍不成熟,其应用场合非常有限,并且容易受到很多方面的干扰。
定位,也是一种根据RSSI原理进行定位的定位技术。ZigBee是一种新兴的局域网协议,具有低功耗的特点。近年来,低功耗无线数据通信网络在很多场合中都有应用,ZigBee具有三个典型的工作频段,其分别对应着不同的传输速率,在最高工作频率下其传输速率可以达到250k/s。因为ZigBee有着较大的传输距离,其具有一定的定位应用潜力,可以在小型室内环境中应用,目前ZigBee的创始团队已经为定位方案设计了多种应用。此外,德州仪器也已经研发出具有定位功能的ZigBee芯片,但其定位精度并不高,这项技术仍具有较大的提升空间。
7.雷达定位,依据的是激光雷达测距的原理进行定位。主流的雷达定位方式主要有相位测距法和脉冲测距法。脉冲测距在测距原理上较为简单,通过激光在传感器和目标间的飞行时间来进行距离的测量。虽然激光测距的精度比较高,但硬件设备成本始终居高不下,目前仍无法广泛应用。
8.视觉定位,常见的视觉定位技术有单目视觉定位和双目(多目)视觉定位,双目或多目摄像头可以测算出目标的深度信息,而单目定位也可通过配合其他传感器或目标的具体标识来获取深度信息。由于其它种类的传感器获取的信息量都非常有限,而且普遍受诸多因素干扰,相比之下在可视范围内使用视觉定位更加精准,而且视觉定位无需在目标物上安装从机,仅需粘贴有特定的识别标志,应用更加简便。
通过对以上技术进行对比分析,蓝牙、WIFI、ZigBee等定位方法都受环境干扰影响较大,而激光雷达和UWB定位成本较高。视觉方式精度满足要求,并且在性价比和可靠性方面都具有优势,因此最终选择单目视觉结合目标标识作为跟随方案。
2.4 本章小结
本章主要对自动跟随平衡小车的设计进行了前期准备和初步的探索,主要进行了如下的工作:
1.研究学习双轮平衡车的基本原理,并分别对平衡小车的速度控制、直立控制、14
方向控制的原理进行了分析学习,为搭建平衡小车完成了基础的理论准备。
2.采用经典的倒立摆模型来探究平衡小车的特性与控制方法,对模型进行部分分解,进而对每个部分进行单独的受力分析,并以此建立了平衡小车的数学模型,最终证实了此系统为自然不稳定系统的结论。基于数学模型在MATLAB中分析系统的控制性能,通过PID控制器对倒立摆模型进行控制,设定了相应的控制参数,得出系统的响应曲线图,最终验证系统在控制下能够保持平衡稳定。以上仿真实验,不仅进一步了解了平衡小车的动态特性,同时也为后续的控制算法软件设计及其控制参数整定上积累了一定的经验。
3.根据自动跟随的实现原理,对现有的定位测距技术进行列举和分析,从实际需求出发,最终确定了可行的跟随方案。
15
3 自动跟随平衡小车的硬件设计
硬件是系统工作的基础,自动跟随平衡小车的硬件系统主要包括以下部分:主控制器模块、单目摄像头模块、电源模块、姿态检测模块、电机驱动模块。根据第2章的平衡小车基本原理分析可知,平衡小车控制系统需要获取车轮的转速、车身的姿态和跟随目标的位置信息,其中车轮转速信息可通过电机驱动模块内的编码器获得,车体姿态信息可通过姿态传感器获取,目标的位置信息通过单目摄像头模块获取。本章将对平衡小车的硬件部分进行详细阐述。
3.1 硬件系统总体架构
自动跟随平衡小车的硬件系统总体框图如图3.1所示。
电源模块
供电
UART
单目摄像头模块
PWM
主控制器
测速
IIC
姿态检测模块
电机驱动模块
图3.1 双轮自平衡跟随小车硬件系统总体框图
主控制器为整个系统的控制核心,所有控制工作都由主控制器进行。12V电池作为系统的供电电源,通过两级降压稳压达到各个模块的工作适用电压。单目摄像头模块用以采集、处理及反馈被跟随目标的信息至主控制器。姿态检测模块检测小车的角速度、角加速度等姿态信息用以控制车身姿态。电机驱动模块包含电机驱动电路、车轮电机和增量式旋转编码器,用以实现电机驱动车轮旋转,速度反馈和速度控制。
16
3.2 系统硬件功能模块设计
3.2.1 主控制器设计
主控制器是整个系统处理运算的核心。考虑平衡小车的外设资源需求和性能需求,主控制器必须具有充足的接口资源用以获取多个传感器的信息,还需要精度足够高的PWM输出端口以精确控制电机转速。
经过对常见的多款单片机进行对比,恩智浦K60系列单片机是最佳的选择。K60单片机如图3.2所示。首先在性能方面,K60基于ARM CortexM4内核,具有512K的Flash存储器和100MHz的CPU频率,能够胜任平衡小车需要的运算量。K60有8个全功能型的高级定时器,可实现高精度的PWM调制输出以精确驱动电机运行。此外K60单片机具有很低的功耗,由于平衡车的电机为控制姿态需持续且非匀速运转,导致系统电路电流始终不稳定,这种工作状态下和其他单片机相比,K60单片机具有更高的可靠性。
图3.2 K60原理图
3.2.2 单目摄像头模块设计
单目摄像头模块是自动跟随平衡小车最重要的传感器,此模块将获取跟随目标17
的位置信息并将其传送给主控制器。如果仅以独立的摄像头作为传感器模块,主控制器将负担运算量极大的图像处理任务,很有可能影响整个系统控制的运行速度。因此可以考虑使用单独的控制器进行图片处理,再将处理好的信息发送给主控制器以降低主控制器的运算负担。
本方案选取OpenMV嵌入式机器视觉模块,如图3.3所示。其主要由STM32H743VI单片机和OV7725摄像头组成,此模块在STM32处理器的底层做了Micropython解释器,可在进行图像采集时直接调用Python函数库执行多种算法函数,有效减少了主控制器的运算负载,使其留出充裕的处理能力进行小车控制相关运算。
图3.3 OpenMV引脚定义图
3.2.3 电源模块设计
本设计采用12V锂电池供电,采用LM2940和TPS7350提供5V电源,AMS117降压稳压器提供3.3V电源,板上GND共地。电源模块原理图如图3.4所示。
单片机的外围电路采用LM2940进行5V供电。LM2940具有很高的转换效率和带载能力,最大输出电流可达1A,保证了板上器件及下一级的降压稳压的充足供电。
为保证姿态检测的精度,降低供电纹波对姿态传感器的干扰,姿态检测模块采用TPS7350单独供电。相较于常见的LM2940和LM2596稳压器,TPS7350的输出纹波低得多,可以提供更稳定的电压。TPS7350需要的外围元件更少,功耗也更低,非常适合为姿态检测模块供电。
系统的3.3V供电采用AMS117,其能输出最大1A的电流并有完善的电流限制,18
十分适合用于K60的供电。
图3.4 电源模块原理图
3.2.4 姿态检测模块设计
姿态传感器的平衡小车姿态控制的关键部件,其中对车身的角速度和角加速度的测量是姿态检测的重中之重。
本设计采用MPU6050姿态传感器作为姿态检测模块,如图3.5所示。其内部集成了三轴陀螺仪和三轴加速度计,避免了传统组合型姿态传感器由时间轴差引起的测量误差。MPU6050具有一个DMP协处理器,可直接运算输出四元数,无需进行繁琐的滤波计算和数据融合,可大幅降低主控制的运算量。MPU6050通过I2C接口与主控制器进行通信,即通过K60单片机内部的I2C总线接口,对MPU6050模块进行信息读写,这也就是所谓的“硬”I2C 通信。此通信方式的速率足以保证系统姿态反馈的实时性。
图3.5 MPU6050模块图
19
3.2.5 电机驱动模块设计
1.电机的选型和论证
电机是平衡小车的唯一动力来源,也是姿态控制的执行器。电机的性能直接决定了小车姿态控制的能力,而对于平衡小车来说,其运动特点为低速且速度不定,时常前后变速运动,因此电机的低速性能和扭矩大小是电机选型的重点指标。
本设计采用带有霍尔编码器的直流减速电机作为驱动电机,电机上集成了霍尔编码器和减速箱,其低速状态下性能优秀,不易堵转,扭矩大,适合直立车使用。
2.电机驱动的选型和论证
对比分析常见的电机驱动器件,传统的L298N驱动的PWM死区较大,不适合平衡小车的电机控制。BTN7971的驱动电流足够但是发热严重,效率低下。综合考虑后采用TB6612FNG作为电机驱动。TB6612FNG采用MOSFET构成的H桥,驱动效率高,PWM死区小,最大输出电流可达1A。TB6612FNG如图3.6所示。
图3.6 TB6612FNG模块图
3.3 系统硬件电路设计
根据上述硬件模块的原理图及平衡小车的实际要求,设计绘制了集成有诸多功能器件的主控板,如图3.7所示。
20
图3.7 自动跟随平衡小车主控板电路图
主控板集成了主控制器、电源模块、电机驱动等多个功能模块。板上也为OpenMV与主控制器串口通信和编码器的读取设计了通讯接口,同时也预留了多组冗余的I2C、SPI、UART接口,为系统未来的功能拓展提供了丰富的空间。为防止板上的数字信号和模拟信号互相干扰,在PCB板的设计过程中尽量将模拟地和数字地分隔开一定的距离。系统的主供电电路和电机驱动电路需承受较大负载,因此这部分的布线设计有更大的线宽以承受大电流。
完成PCB板设计后,由电路板制作商加工制作PCB板,收到制作的PCB板后,根据原理图进行板上元器件的焊接,最后将其余的功能模块与主控板连接并进行调试,自动跟随平衡小车的硬件电路制作至此完成。
3.4 系统机械部分设计
由于平衡小车的硬件系统内包括有主控板、电池和独立的OpenMV视觉模块,整体重量较大,为保证车体的强度与刚性,本设计采用全铝合金结构的小车底盘,如图3.8所示。
21
图3.8 平衡小车底盘图
小车的左右车轮由两侧的直流减速电机直接驱动,重量较大的电池直接放置并固定在底盘上,主控板和OpenMV重量较轻,通过铜柱支撑的隔板固定在电池的上方,此结构设计使平衡小车的重心较低,具有更好的运动稳定性。搭建完成的平衡小车如图3.9所示。
图3.9 自动跟随平衡小车整体图
3.5 本章小结
本章设计搭建了完整的跟随平衡小车的硬件系统,并进行了详细的阐述。因本研22
究的最终目标是实现平衡小车的自动跟随功能,以系统反馈控制的精度为主要指标,所以在与运动性能相关的硬件选取上舍弃了常见的竞速比赛平衡小车的高功率设计,在电源、电机及驱动电路等方面也降低了负载能力,提高了精度;在系统的传感器方面,本设计选取了一款作用重要的单目摄像头模块为系统采集被跟随目标的信息。
第一次对双轮平衡车的自动跟随功能进行研究和开发必然会遇到很多困难,但是每一个困难的解决对于后续的设计研究工作都将具有深远的意义。23
4 自动跟随平衡小车的软件设计
本章设计和研究自动跟随平衡小车的控制算法及软件实现,着重研究小车运动控制与姿态控制的软件实现及在平衡状态下实现跟随的控制方法。软件设计的主要内容包括:车身姿态数据及速度信息获取、跟随目标信息采集、小车直立控制和跟随运动控制、目标丢失后重拾策略以及基于上述方法的情况下,针对平衡控制和跟随设计控制算法及参数整定。
4.1 软件系统总体架构
参考市场上现有的载人自平衡车产品的控制思路,以及倒立摆的控制方法,本设计研究自动平衡和跟随控制,并没有采用主流载人平衡车产品通常使用的自适应模糊PID控制,而是采用了已经在工业控制领域中广泛应用的经典PID控制,在先前的理论研究中已经证明了经典的PID控制器可以很好地控制小车的姿态和运动,在此进一步通过编写单片机程序实现PID控制。本设计采用了一套新型的视觉识别基准系统用以进行视觉识别和跟随目标,初步完成了控制程序部分的设计工作。
为了使平衡车自动跟随控制流程及关键功能的实现描述更加详细,做出的以下论述:
1、开机之后系统进入初始化。内容包括:检查所有通讯器件的连接状况、初始化PWM输出模块、初始化系统的多个中断,若器件工作全部正常,则继续运行后续的功能程序,若有器件状态异常则初始化失败,不再继续运行程序。
2、进入软件的主控制程序部分,各传感器及相应部件实时采集信息,与此同时单目摄像头模块也进行实时的图像信息处理。
3、主控制函数由定时时长5ms的定时器中断控制运行,在中断运行时进行下列数据处理工作:通过正交解码得到编码器的速度信息;将姿态传感器获取的姿态信息通过卡尔曼滤波之后用于姿态控制;如果单目摄像头发送给单片机的数据中存在有效的目标信息,则接下来使用该信息进行小车运动控制,如果收到的信息中无目标信息,则判断为目标丢失,接下来通过目标丢失重拾策略控制小车运动。
4、中断实时控制。将上述数据分别作为速度环、直立环、方向环的输入信号,通过三环串级PID控制计算出控制电机转速的PWM信号,并由高级定时器调制出24
PWM波,发送给电机驱动,对电机运转进行控制。
5、系统终止跟随决策。在摄像头未获得图像信息和摄像头的图像信息中无有效的目标信息,并且目标丢失重拾策略长时间未重新获取到目标的情况下,小车停止运动,只保持直立状态。
6、系统终止直立控制决策。当姿态传感器检测到小车严重倾斜,倾角过大已经无法通过姿态控制算法调整回直立状态时,系统主动停止小车的一切运动控制。
系统的整体控制流程如图4.1所示。
开始
系统初始化
否
定时器5ms?
是
姿态信息采集
速度信息采集
目标信息采集
PID控制器
电机控制
电源开关闭合?
否
结束
是
图4.1 系统控制流程图
自动跟随平衡小车软件的运行流程总结如下:系统成功进行初始化后,通过姿态传感器获取姿态信息,滤波后得到可使用的数据,通过直立环的PID控制算法计算出控制小车直立的电机控制量,再由编码器获得的速度信息通过速度环PID计算出控制小车速度的控制量,由OpenMV采集的目标信息根据不同的跟随策略,采用相25
应的控制算法得出控制小车方向的电机差速比,最终由上述三部分控制量加和作用于车轮电机,控制小车保持直立并以固定的速度前进或转向。
4.2 信息采集部分程序设计
4.2.1 姿态信息采集部分程序设计
本设计使用MPU6050作为姿态传感器,其具有三轴角速度传感器和三轴角加速度传感器。由角速度传感器积分得到的角度信息存在累计积分误差,而角加速度传感器测得的加速度信息中噪声太多,导致两者的姿态信息都无法直接使用,因此需要进行姿态融合以获取可靠的姿态信息。
常见的姿态融合的算法有一阶互补滤波和卡尔曼滤波两种。两者需要进行大量的浮点数角度运算,而MPU6050内置有DMP处理器,其可通过内置的算法直接向单片机输出四元数,再将四元数转换为欧拉角即为可用的姿态信息,此方法无需进行繁琐的运算,为单片机节省了大量的算力,并且DMP的输出频率可达200Hz,保证了系统的实时性,因此本设计通过DMP直接获取姿态信息。
4.2.2 速度信息采集部分程序设计
小车的速度信息通过电机上的旋转编码器获取。电机转动时带动编码器转动并输出计数脉冲,单片机通过高级计时器进行正交解码获取脉冲数,根据一定时间内的脉冲数和小车移动固定距离的脉冲数即可测量得到有效的速度信息。编码器测速部分的程序如下:
void PIT0_IRQHandler()
{
extern int vall,valr;
extern float spdl,spdr;
vall=ftm_quad_get(FTM2);
ftm_quad_clean(FTM2);
valr=ftm_quad_get(FTM1);
ftm_quad_clean(FTM1);
spdl=(-vall*10000)/2850;
spdr=(valr*10000)/2850;
PIT_Flag_Clear(PIT0);
}
本设计使用的霍尔编码器具有AB两个脉冲输出端口。电机工作时,两个端口分26
别输出AB两相脉冲,当电机正转时A相超前B相90°,反转时B相超前A相90°。通过检测AB两相的相位差来得知电机的旋转方向。编码器AB相脉冲如图4.2所示。
图4.2 编码器脉冲图
4.2.3 跟随目标信息采集部分程序设计
小车的自动跟随功能通过基于AprilTag技术实现。通过OpenMV对AprilTag二维码标签进行识别和定位,进而解算出目标的位置信息。
AprilTag是一个应用十分广泛的视觉定位系统,其定位目标为一个特殊的二维码标志,此标志相较于常见的二维码更为简单,信息量更少,但更易被识别和读取,可以通过此二维码快速计算出其与设备的相对位置。AprilTag二维码如图4.3所示。
图4.3 AprilTag二维码实例图
AprilTag可以通过常见单目摄像头进行采集并识别,获取到图像中AprilTag相对于摄像头的三维空间信息,通过此信息可以反解出当前系统与被跟随目标的位置数据及跟随的状态。在复杂环境下AprilTag的实际测试如图4.4所示。
27
图4.4 复杂环境下AprilTag测试图
复杂环境下AprilTag通过下述步骤进行图像的预处理及识别定位:系统首先根据原始图像计算出一定的分割阈值,并依据此阈值对图像进行二值化处理,如图4.5所示。之后对二值化图像中的连通区域进行分割,提取出区分边界,如图4.6所示,以此对同一个分割区域内的像素聚类。图4.7为对聚类得到的不同像素簇进行回路拟合处理,找出可用并与Tag库中预定标签匹配的回路部分。最后实现对标签的有效检测,如图4.8所示。
图4.5 自适应阈值二值化图 图4.6 连通区域分割图
图4.7 回路检测图 图4.8 标记检测图
OpenMV对从AprilTag中提取到的有效位置信息进行进一步处理,并通过串口将信息发送至单片机,用以进行小车的方向闭环控制。
28
4.3 控制部分程序设计
4.3.1 PID控制算法原理
根据获取的信息对小车的姿态和运动进行控制是整个程序的核心。本设计采用经典的PID控制算法对小车的姿态、方向和速度进行控制。
PID控制器由比例环节,微分环节,积分环节三部分组成,三个部分的作用都不尽相同。比例环节(P)通常是PID控制器中最重要的控制方法,其通过将当前输出量与设定量的差乘以一个增益系数来对输出进行线性的调整。比例环节的增益越大,系统调节越迅速,但比例环节单独作用时输出量始终会存在稳态误差。此时引入积分环节(I)可以消除稳态误差。积分环节可以有效改善系统的稳态精度,但其可以看做是一个滞后环节,对系统的动态性能不利。微分环节(D)可以解决滞后问题。微分环节能根据输入量的变化趋势,对控制量进行迅速的修正。一个完整的PID控制器必然由下图4.9所示的几个部分所构成:比例积分微分控制器、输入信号和输出信号、测量元件和执行机构。
图4.9 PID控制原理框图
4.3.2 三环串级PID控制程序设计
经典的PID控制器存在着一个完整的闭环反馈回路,而平衡小车有着三个控制环节,其中每个环节的输出量的变化都会对其余两个环节造成影响。因此本设计建立了一种三环PID串级控制方案,对姿态、速度、转向三部分进行独立计算,最后再进行融合,对输出量进行控制。其中某一个环对其余两环影响很小,极大的保障了系统控制的稳定性。以下讲分别阐述各个控制闭环的程序设计:
1. 姿态控制部分程序设计
姿态控制回路控制小车自动保持平衡。因系统具有静不稳定的特性,执行器会始29
终处于不断调整的状态,因此积分环节无法充分发挥作用,这里使用PD(比例微分)控制器。比例控制是反馈控制的主要手段,而系统所受的干扰需要快速的控制响应,需要积分控制的接入。
此控制回路的主要程序如下:
posAngle=(posZero-0)-roll;
fgyrox=kalman(1,(float)(gyrox));
standPowerOut=(p_KP*posAngle+p_KD*(-fgyrox/100));
通过设定的机械零位和姿态传感器测得的滚转角做差得到PD控制的偏差值。由于姿态传感器具有角速度传感器,可将测得的角速度经卡尔曼滤波处理后直接作为偏差值的微分量,此数据相较数字PID常用的通过角度差分方法得出的角速度更为准确可靠。将偏差值和偏差值的微分代入PD控制器计算出姿态控制的输出量,此输出量即为姿态控制回路控制电机转速的依据,但姿态控制回路仅能控制姿态维持平衡,而无法做到在某个速度上维持平衡,这也是下节速度控制的必要性和意义所在。
2. 速度控制部分程序设计
速度控制回路控制小车的前进运动速度,本设计采用PID(比例积分微分)控制器,相较于速度控制中常用的PI控制器具有更好的动态性能。系统通过小车与目标的距离设定小车的给定速度,将左右两个编码器获取的速度值取平均数并经过低通滤波后作为小车的当前速度。根据数字PID以差分代微分,以累加代积分的基本思想,将当前速度和上一周期的速度之差作为速度的微分量,将每个周期的速度累加作为速度的积分量,为防止系统速度控制未能及时矫正而造成积分饱和,进而出现严重失控,还需要对积分量进行限幅处理,最后将上述变量输入PID控制器计算出速度控制的输出量。下面是速度控制回路的部分代码:
speedLeast=(speedL+speedR)-targetSpd*2;
speedEncoder*=0.8;
speedEncoder+=speedLeast*0.2;
speedI+=speedEncoder;
er=speedEncoder-er0;
if(speedI>1000000)
{
speedI=1000000;
}
if(speedI<-1000000)
{
speedI=-1000000;
}
speedPowerOut=speedEncoder*spdKP+speedI*spdKI+spdKD*er;
er0=speedEncoder;
30
3. 方向控制部分程序设计
方向控制回路控制系统的转向运动,实现小车自动跟随目标的运动方向进行运动。方向控制环一般采用PD(比例微分)控制器进行控制,考虑自动跟随平衡小车的运动方向变化速度较慢,因此选用比例控制对小车的方向进行控制,即将单目摄像头获得的目标与小车的偏差角乘以一个为负的参数得到方向控制的输出量,将此输出量加到与偏差方向相反的一侧电机上即可实现差速转向。
系统最后将上述三个控制回路的输出量相加求和,并额外加入一个较小的补偿量以避免输出量过小时无法驱动电机而影响小车低速性能。最终将综合输出量通过高级定时器模块产生相应占空比的PWM,控制电机转动驱动小车运动。此部分代码如下:
powerOutL=standPowerOut+speedPowerOut+turnPowerOutL;
powerOutR=standPowerOut+speedPowerOut+turnPowerOutR;
if(powerOutL>0)
powerOutL=powerOutL+motorDied;
else if(powerOutL<0)
powerOutL=powerOutL-motorDied;
if(powerOutR>0)
powerOutR=powerOutR+motorDied;
else if(powerOutR<0)
powerOutR=powerOutR-motorDied;
run(powerOutL,powerOutR);
4.3.3 目标丢失重拾策略设计
自动跟随平衡小车在正常跟随目标运动时,目标应始终处于摄像头像场的中央位置,一般不会出现目标突然丢失的情况。但目标如果突然以很小的转向半径进行转向,或者目标突然以远大于平衡小车最大加速性能的加速度进行加速运动,则目标就会从像场中丢失。如果不对这种情况进行处理,小车在目标丢失后会停止跟随运动,在原地保持直立,因此需要设计一种目标丢失重拾策略,让小车在短时间丢失目标后按照一定的运行策略重新追到目标并恢复跟随状态。
目标丢失后追回过程的运动控制必然是根据丢失前目标运动方式而得出的,因此对目标运动状态识别和预测是丢失重拾策略的关键所在。由于被跟随目标的运动在长期看来并无明显的特征规律,可以视为非线性的运动方式,而其短时间内运动状态改变不大,可以视作线性状态。由此可以得知系统只能以近期的目标运动数据判断运动的趋势。本设计使用最小二乘法曲线拟合算法对目标的下一个位置状态进行预31
测。二维曲线拟合如图4.10所示。
图4.10 二维曲线拟合示意图
此方法无需对目标进行精准的力学分析或者建立复杂的数学模型,仅需获取与目标运动轨迹符合的多组数据即进行分析预测。考虑主控制器的运算性能和存储空间限制,本系统选用先前的36组历史运动状态数据进行状态分析,并得出目标下一步可能的运动状态。
常见的目标丢失可分为在直线运动时丢失目标和在转弯过程中丢失目标这两种情况。如果目标在丢失前处于直线加速状态,则小车在目标丢失后加速向前行驶进行追回,如果目标丢失前有大幅度的转向动作,则小车向该方向转向并加速运动。目标丢失重拾策略整体流程图如图4.11所示。
32
图4.11 目标丢失重拾策略流程图
4.4 本章小结
本章节首先介绍了软件系统的总体架构,进而对车身姿态信息采集方法、目标识别算法、PID控制算法及目标丢失重拾策略等关键的软件部分的设计进行了详细的论述。最终使平衡小车能够保持直立,并跟随AprilTag以一定速度进行运动。此部分软件设计也为自动跟随平衡小车后续功能的开发打下坚实的基础。
33
5 自动跟随平衡小车整体测试
为了验证自动跟随平衡小车的实际运行性能,需要对小车在不同的环境下进行多次测试,本章主要在自动平衡控制和自动跟随目标这两个方向上测试并分析系统的控制准确性、控制响应速度和抗干扰性能。
5.1 自动跟随平衡小车平衡性能测试
自动跟随平衡小车的直立性能是最重要的性能指标,系统其他的功能实现均建立与小车直立状态之上。为了测试小车在不同环境下的直立控制能力,本设计选择了三个具有代表性的应用场景进行测试,分别为:
场景1:平整的水平平面。
场景2:平整的10°斜面。
场景3:坑洼的水平平面。
平衡小车通过蓝牙串口将实时的姿态信息发送至电脑,使用电脑的虚拟示波器观察姿态变化的波形。
平衡小车在场景1进行测试的环境及数据曲线如图5.1所示。
图5.1 场景1直立测试及姿态曲线图
在平整的水平平面上,设定平衡小车开机并关闭自动跟随功能,观察到小车在保持直立时,始终在设定的直立角度附近有2°左右的小幅度摇摆。观察上图姿态曲线得知,小车一直在进行自动控制调整姿态。动态平衡状态下并不是完全静止不动,符合预期,可以说在光滑水平的路面上小车的直立控制达到了要求。
平衡小车在场景2进行测试的环境及数据曲线如图5.2所示。
34
图5.2 场景2直立测试及姿态曲线图
将小车置于有10°倾角的光滑斜面上,小车仍能够保持直立状态,其细微的姿态调整特性与在水平平面上几乎相同。观察上图的姿态曲线小车的姿态变化规律也与水平平面上相同,因此可以得出结论,小车在有一定倾斜角度的坡道上也可正常运行。
平衡小车在场景3进行测试的环境及数据曲线如图5.3所示。
图5.3 场景3直立测试及姿态曲线图
将小车置于坑洼的水平路面上,其仍能保持直立,但由于路面粗糙并且凹凸不平,小车在姿态控制过程中车轮所受的阻力和摩擦力始终变化,小车一直存在轻微的抖动。观察上图的姿态曲线可知,小车的姿态控制受到了一定的干扰,但整体控制效果依然很好,因此小车可以在有一定坑洼的路面上正常运行。
小车的平衡性能测试至此已经全部完成,上面三个测试可以证明,自动跟随平衡小车的直立控制精度很高,并且有较强的抗干扰能力,可以满足正常环境下的运行要求。
5.2 自动跟随平衡小车目标跟随性能测试
对于小车的目标跟随性能测试,主要围绕着小车的运行环境的干扰和被跟随目标的干扰两方面展开,因此在这部分设计了以下几个测试项目:
1、在平整路面上进行跟随测试。
35
2、在坑洼路面上进行跟随测试。
3、在平整的路面上进行多个二维码干扰测试
在平整的水平路面上,将目标二维码放置在小车前方一定距离,小车可以自主靠近二维码并保持一定的距离,如图5.4所示。
图5.4 平整路面上自动跟随测试图
二维码移动时小车能够跟随二维码运动,并在二维码大幅加减速和转向运动时仍可以实现跟随运动,可以说明自动跟随平衡小车在典型的应用环境下具备自动跟随的能力。
将小车置于坑洼路面上进行自动跟随测试,如图5.5所示。
图5.5 坑洼路面上自动跟随测试图
小车仍能对二维码进行自动跟随,但是当二维码移动的速度提高后,小车出现数次目标短时丢失的状况,在颠簸严重的状态下更为明显,但通过目标丢失重拾策略最终都能找回目标。由此可以得知小车经过坑洼时的车身振动对OpenMV的图像识别造成了一定的干扰,小车在坑洼路面上低速运行的表现正常,但是在高速状态下效果略差。
将小车放置在平整路面上,在小车前方放置包括预定二维码在内的两个二维码,36
如图5.6所示。
图5.6 多二维码干扰测试图
图中左侧的二维码是预定的目标二维码,右侧的二维码是干扰二维码,将两个二维码向不同方向移动,小车仅跟随目标二维码进行运动。多次测试可知,小车可以识别出预定的目标二维码,并仅以此作为跟随目标,完全不受其他二维码干扰。
由自动跟随平衡小车的目标跟随测试可知,小车具备自动跟随的能力,在目标进行大幅度运动时仍可正常进行跟随,且具备一定的抗干扰能力,在坑洼路面上快速运动时小车的跟随效果较差,有可能会出现目标丢失的情况。
5.3 本章小结
本章对自动跟随平衡小车在多个使用环境下进行了多方面的测试,测试结果表明小车具有良好的自动平衡能力和跟随能力,小车在不同环境下的抗干扰性能优秀,目标丢失重拾策略可以正常发挥作用。但小车跟随效果会受车身振动影响,在崎岖路面表现不太理想。
这些结果表明本设计的方案与方向均是正确的,但仍存在着一定的问题,有着改进提升的空间,值得进行更加深入的研究。
37
6 总结与展望
6.1 本文总结
本设计是在当今的科学技术产业智能化发展的理念及国家政策的鼓舞的背景下,设计制作的一款自动跟随平衡小车。自从双轮载人平衡车问世以来,很多研究人员都在平衡车研发道路上不断前进。本作品吸纳了先前的平衡车设计开发经验, 同时采用了OpenMV单目摄像头实现自动跟随,在软件和硬件上进行了大量的研究与设计,最终完成此作品。总结本文工作有主要几点:
1、在平衡车发展史中逐步学习平衡车的相关知识,层层深入,探究平衡车的基本原理,再通过倒立摆数学模型进行仿真和分析,最终验证了平衡车的静不稳定特性及姿态控制的可行方式。
2、查阅分析了大量的定位技术及各个技术的特点和性能指标,选取了OpenMV单目摄像头模块结合AprilTag二维码目标的自动跟随方案
3、根据自动跟随平衡小车的性能需求对小车的硬件系统进行设计构建,选取适合可行的功能模块,设计绘制了主控制板,最终完成了小车硬件系统的设计和搭建。
3、基于搭建完成的硬件环境设计了一套完整的自动跟随平衡小车软件系统,将AprilTag算法用于目标的识别与自动跟踪,设计了一套三环串级PID控制算法用以进行小车的运动控制,设计了基于目标状态预测的目标丢失重拾策略。
4、对小车完整的软硬件系统进行综合测试,在实际使用环境下分析小车的性能,验证了先前的设计思路及设计方案的正确性,发现了仍存在的缺陷与不足,有待后续的深入研究与改善。
6.2 不足与展望
本作品在进行系统整体设计的初期,根据所查阅的资料和文献,以现有理论和模型作为基础,逐步探索并完成了自动跟随平衡小车的设计方案。虽然完成了作品的设计制作,但其在跟随功能,预测重拾性能上仍存在很大的提升空间,因此将作品的不足以及研究过程中有待改进之处在下面进行表述,希望后人可以在此基础上将其完善。
1、本系统选用的硬件方案关键在于OpenMV单目摄像头模块作为目标检测传感38
器,其进行目标识别的方案种类并不多,AprilTag已是最成熟的方案,因此AprilTag技术很大程度上限制了该系统在目标识别跟随方面的提升空间。本系统的主控制器选用的是恩智浦K60系列高级单片机,虽然其具有很强的处理能力,但对于目前热门的机器学习的算法计算仍然不够。主控制器的性能很可能限制了后续功能的扩展开发。
2、本设计对于目标丢失后的重拾策略仅仅是基于短期预测的简易方法,并不能保证在复杂的应用环境下依然有效可靠。对于目标丢失后更长时间段的预测还有待深入研究。
3、自动跟随平衡小车在坑洼路面上以较高的速度运行可能会导致车身抖动严重,进而引起摄像头采集的图像信息劣化,使系统无法识别出被跟随目标。后续可以考虑通过安装稳定云台等方法提升图像在车身抖动时的质量,增强视觉识别的可靠性。
39
40