王 震,杨 帅,徐青正,时慧杰,李天华,3,侯加林,3,周 凯,3,金天国
(1.山东农业大学 后勤管理处,山东 泰安 271018;2.山东农业大学 机械与电子工程学院,山东 泰安 271018;3.山东省园艺机械与装备重点实验室,山东 泰安 271018;4.哈尔滨工业大学 机电工程学院,哈尔滨 150001)
0 引言
随着现代化农业的不断发展,农业机器人在农业信息化和智能化中的地位日益凸显,改善了农民的耕作条件,提升了农产品耕收效率,推动了农业的不断进步[1]。然而当前的农业机器人移动平台价格及使用成本高,适用范围小,不能完全满足某些特殊环境下的作业要求。例如,大田果蔬采摘机器人,由于采摘作业季节性强、劳动强度大、费用高及采摘作业的复杂性,导致采摘自动化程度仍处于较低水平;无人植保机器人作为地面轮式机械难以避免对作物的碾压,尤其是在转向操作中存在大面积扫覆区域,不适合作物精细化管理,且难以适应地形较为复杂崎岖的作业环境。针对上述情况,独轮平衡车通过特殊独轮结构减少了行进过程中对作物的扫覆碾压[2],同时该独轮车可原地360°转向,具有极高的灵活性,并且采用电力驱动系统,实现低能耗维持机器平衡和行进,提高了锂电池的使用时间和循环寿命,为植保移动平台提供一种新选择[3]。而对于采用电力驱动的机器人来说,在有限的时间内保证姿势稳定更有利于独轮车执行停车和对接操作[4-7]。
独轮自平衡车采用非线性、强耦合、多变量的复杂动力学系统,具有不同于传统的设计概念。独轮平衡车只能通过运动来保持机身相对稳定,即依靠轮子转动和风扇的反作用力保持平衡[8-11]。区别于在静止状态下保持稳定的多轮机器人,该结构简单轻巧,能在崎岖地带稳定移动,能量消耗少,其高耸的机械骨架可搭载多种作业工具或传感器,适用范围得到显着提升[12]。同时,独轮平衡机器人还具有以下实用优势:可以绕地面接触点原地旋转,转向角度可为任意值。车体结构简单轻巧,可靠性高,制造成本低,维护保养容易。机体的特殊结构可允许搭载多种、多个作业工具和传感器[13-14]。
农业机器人的发展离不开农业智能化装备技术的进步,农业领域智能机器人技术是农业智能装备化技术最重要组成部分,受到国内外学者的密切关注[15]。美国发明家狄恩卡门发明设计了Segway PT,它的特点是两个车轮共轴,可差动运动,利用倒立摆原理达到动态平衡[16]。日本筑波大学开发了一款单轮机器人,该机器人由车身和直流电机驱动的磁盘来稳定其姿势,不需专用动力来改变机器人的偏航方向,其使用正弦输入磁盘和车轮改变偏航方向[17]。上海交通大学的团队以动力学为出发点,独轮车和驾车人组成的系统为对象,建立了相匹配的动力学方程和力学模型[18],并提出了独轮车稳定性的必要条件。以上独轮机器人的模型各不相同,但目前皆存在结构复杂、成本高、功耗高、适用范围小等问题。
基于上述情况,总结前人研究理论与成果,采用现代先进的技术设计了以ESP32作为控制核心的独轮自平衡车。该独轮自平衡车具有结构简单、成本低、适用性强、寿命长、功耗低和可靠性高等优点。
1 系统结构与工作原理
1.1 机械系统结构
机械系统主要由机械骨架、风扇、保护罩、橡胶轮、电池、直流电机、伺服电机等组成,计算机建模结构如图1所示。独轮自平衡车实物结构如图2所示。
图1 独轮自平衡车模型图
图2 独轮自平衡车实物结构图
1.2 控制系统结构
独轮自平衡车控制系统原理如图3所示,信息采集依靠MPU6050传感器和编码器完成。MPU6050通过内置的陀螺仪姿态传感器和加速度传感器分别测量运动角速度与加速度。运动加速度是包含重力加速度的合加速度,其内部的数字运动处理器可以由重力加速度在各运动轴上的分量计算角度,但加速度传感器容易受外部运动影响,而角速度传感器无法直接获得角度,必须进行积分,因此易产生积分漂移。数字运动处理器可将角速度传感器积分获得的角度与加速度传感器分量计算出的角度相互融合,最终输出相对比较稳定和准确的姿态数据。
图3 独轮自平衡车控制系统原理图
控制器可通过IIC总线与MPU6050的数字运动处理器进行连接和通讯,进而完成MPU6050的初始化配置和数据采集处理;另外,伺服无刷电机内置100线的双相光电编码装置,通过简单配置可输出阶跃数字信号,ESP32微控制器通过读取的姿态数据和编码器数据进行多个PID计算,计算结果通过电机驱动程序叠加输出。
1.3 工作原理
独轮自平衡机器人采用不平衡系统,为简化分析过程,将其解耦成俯仰和横滚两个方向上的平衡,每个方向上的平衡都可以看作一阶的倒立摆模型。倒立摆控制系统(Inverted Pendulum System)具有复杂性、不稳定性、非线性的特点,并且可以用作实验平台进行各种控制实验。倒立摆的典型性在于以强耦合、不稳定、非线性为特点的控制系统作为被控对象,从而在控制过程中有效反应各种问题[19-22]。倒立摆按形式可分为旋转式、环形、悬挂式;按级数可分为一级、二级、三级、四级、多级等;按其运动轨道可分为水平式、倾斜式。
倒立摆系统主要由控制器、运动平台和受控杆三部分组成。可由单片机作为倒立摆系统的控制器,以一根质量均匀的铁杆作为受控杆,将运动平台与受控杆相连接。具体结构如图4所示。直线型一阶倒立摆受控过程如下。
图4 直线型一阶倒立摆结构
状态一:受控杆下垂,运动平台无速度,控制器未工作,即系统处于自然平衡稳定状态。
状态二:控制器处于工作状态,运动平台被驱动获得速度,同时受控杆在惯性力的作用下开始摆动,即系统处于起摆状态。
状态三:当受控杆受到干扰,上升至模型预计的小角度范围内时,控制算法启动,即为稳定控制状态。
状态四: 倒立摆进入受控稳定状态,即由自然稳定变为受控稳定。
1.4 PID控制算法
上述为倒立摆系统由自然稳定状态转至受控稳定状态的控制过程,控制算法的不同对控制过程会产生不同的影响,但目标都是维持系统的平衡稳定,故本系统采用 PID 算法对其进行稳态控制。
独轮自平衡车平衡控制的主要问题是控制算法的开发。独轮自平衡车控制系统采用了增量式 PID 控制算法作为独轮自平衡车控制系统的核心算法,通过系统输入值和输出值,即设定值和测量值之间的偏差,进行比例、积分和微分的复合计算,进而得到控制量的大小。小车系统采用双闭环 PID 控制算法(图5)实现自平衡控制。根据编码器产生的脉冲进行数据转换,进而得到实时速度信息,此信息作为反馈量实现了速度的闭环控制[23-25]。另外,融合后的小车倾角的最优值作为反馈量,实现了姿态的闭环控制。姿态闭环控制采用了 PID 控制器,电机PWM信号的占空比通过卡尔曼滤波输出的小车倾角和角速度的优化值来计算,表达式为
图5 系统双闭环 PID 控制算法框图
PWM=Kp×θ+Kd×θ
(1)
式中θ—修正系数。
为对增量编码器检测的小车速度进行比例控制,速度闭环控制使用 PID 控制的输出作为PWM信号占空比的增量值ΔPWM,表达式为
ΔPWM=Ki×speed
(2)
将姿态闭环控制和速度闭环控制融合后,再由主控制器输出给直流电机,以避免两者之间的相互影响,进而获得二者融合后驱动模块的PWM信号PWM总,表达式为
PWM总=Kp×θ+Kd×θ+Ki×speed
(3)
独轮自平衡车以ESP32单片机为核心,利用其内置IIC接口及I/O口采集信号传感器数据,当检测到机器人信号与期望信号存在误差时,通过PID算法计算输出量,利用I/O口输出PWM信号,从而控制由驱动电动机、伺服电机、桨片及驱动轮所构成的驱动系统执行机构,使伺服电机控制车轮转动,最终作用至机械本体以保持平衡或抵消信号误差。
2 机械结构设计
2.1 本体设计
独轮自平衡车机械结构要满足简单、轻量化的要求,以降低制造成本、减少工作能耗。独轮自平衡车机械结构能够应对设计工况下可能遇到的复杂力的作用,保持一定的刚度。
此外,独轮自平衡车属于平衡机器人,所以机械结构除了满足以上要求,还应尽量保持力平衡。因此将电池、电机、控制板相对均匀分布,以减轻力不平衡所带来的不稳定问题与额外能量消耗问题。
2.2 MCU微控制器的选型
ESP32单片机内整合了射频模组、开关器件、低噪声放大器、功率器件、电源控制系统和过滤器,整个芯片占用的PCB物理空间最小。可选择AP、STA、AP/STA 共存多种模式,可使用Lua开发环境编程,支持Arduino开发环境,使用方便灵活。ESP32单片机中WIFI蓝牙芯片实现了无线局域网与蓝牙的集成开发,物理空间占用极低。ESP32单片机作为系统级SOC,实现了良好的无线性能,功耗控制优秀,具有整合度高等优势。
为实现低功耗、高运算速度的目标,独轮双轴自平衡机器人采用ESP32单片机,此单片机体积小巧,便于装配,单片机内部还存在稳压供电芯片、I/O引出按键,便于开发与利用。ESP32单片机的电路图如图6所示,其实物图如图7所示。
图6 ESP32单片机电路图
图7 ESP32单片机实物图
2.3 电机的选型
独轮式自平衡车是欠驱动的、非线性的控制系统,在工作过程中相较于其他多轮机器人与地面接触面积更小。所以在保持稳定性方面,三轮或四轮等多轮式机器人可以保持静态稳定,而独轮式自平衡车只能通过动态稳定,即其保持稳定状态必须依靠运动来维持。
直流电机优点在于直流电机过载能力强,可抵抗一定电磁干扰;启动迅速,调速范围广且调速平滑,并且在低速状态下的转动力矩相对更大;采用直流驱动可简化供电电路;驱动系统结构较为简单,经济性高。但直流电动机内部结构相对复杂,导致其体积重量相对更大,其电刷与换向器之间的滑动摩擦接触产生电火花,加剧了机械结构磨损,因此直流电动机易发生故障,可靠性相对较低,工作寿命较短,需频繁进行保养维护工作。
伺服电机的优点在于控制精度高,具备编码器,可实时反馈电机状态。避免了高负载下丢转的问题;转速高,转动性能好,可承受大扭矩;在低速运行时转速较为平稳;振动噪音明显降低,发热量小,舒适性强。但其驱动复杂,需搭配控制系统使用。
在电机的选择上,需要满足响应速度、精确度、转速、扭矩等方面的要求。另外,因独轮双轴平衡机器人采用锂电池供电,所选电机存在功率上的限制。综上所述,最终选择3.7 V N50强磁高速马达及12~24 V微型直流无刷伺服电机提供动力。
3 控制系统设计
3.1 数据的采集及处理
独轮自平衡车以ESP32单片机作为主控单片机,检测装置采用MPU6050传感器作为前端传感器,将MEMS结构运动信号转变为电压信号,再经过DMP进行数据融合滤波处理,最后将处理后的数据通过IIC总线输送至ESP32单片机。ESP单片机通过PID算法计算输出量,再通过驱动电机,使直流电机带动风扇,伺服电机带动车轮,使机器人本体保持直立与相对稳定状态。数据采集过程原理如图8所示。
图8 数据采集过程原理
ESP32单片机将采集的信息和行程信号进行测量处理后进行BLE实时传输和PID计算。同时,单片机还控制直流电机及伺服电机的运作,通过I/O接口控制驱动系统。微处理机硬件系统如图9所示。
图9 微处理机处理数据原理框图
3.2 编码信号产生系统
编码信号是由编码栅盘、发光二极管、光电管及附属电路产生。当编码栅盘阻挡发光二极管发出的光线照射光电管时,输出引脚被下拉电阻拉低,否则输出引脚被拉高。此编码器具有两个不同相位的检测器,因此可输出两个不同相位的电平信号,单片机通过检测两个时域上的电平信号便能得出电机旋转方向及运动角度,进而得出运动速度。编码电路结构如图10所示。
图10 编码电路结构
3.3 电机正反转控制原理
直流电机驱动板通过双相的PWM信号实现正反转驱动,一路PWM为低电平,另一路PWM为正占空比信号,从而实现调速转动,调换两路信号时反转。正反转控制的电气原理如图11所示。
图11 电机正反转控制原理图
4 控制程序设计
4.1 无线传输控制功能
独轮自平衡车除保持自身稳定外,还可与操作者进行交互,将自身状态参数展示给操作者,并接受操作者发出的命令。由于独轮自平衡车为自主运动,操作者多与其相隔一定距离,在机器人本体上安装显示屏幕不便于读取,操作者可以通过手机移动端APP连接并控制独轮自平衡车执行各种指令。
ESP32芯片自带蓝牙、WIFI功能,开源软件可大幅降低开发难度和开发时间,Blynk可提供开源IOT(物联网)服务,可快速简单地实现设备连接控制,使开发更简单。BLE低功耗蓝牙是蓝牙4.0标准下的新型无线连接规范,其传输距离最大可达100 m,远高于传统蓝牙的几十米传输距离;数据发送时间低于3 ms,远低于传统蓝牙的100 ms;响应延迟低至6 ms,远小于经典蓝牙的100 ms响应延时。因此,采用BLE低功耗蓝牙技术进行传输控制可以增加遥控距离,降低能量消耗和响应延迟。
4.2 数据显示
单片机对MPU6050数字运动处理器的信号进行实时处理,处理完成的数据由BLE低功耗蓝牙传输至移动端APP进行显示。MCU程序中需要设置终端显示器的虚拟引脚和数据存储临时变量,移动端可以进行数据的显示及命令传输。
4.3 功能按键设置
移动端BLE遥控程序需要控制独轮自平衡车前后运动及转向,因此需要设置两个变量参数分别为“front and back”“left and right”,并在移动端APP中设置四向摇杆,并将摇杆参数通过中间变量vpin_value传递给“front and back”“left and right”。此外,要实现PID参数整定及重心整定,需设置两个标志变量并连接到两个按键的虚拟引脚,当虚拟引脚发生变化,与之相连接的标志变量PID、center则发生变化。在程序中,通过检测标志变量,选择性执行各分段程序。
为防止独轮自平衡车开机时因参数设置问题产生过度运动而损坏其结构,需设置启动保护功能,在第一次开机时不进行电机驱动,需进行按键操作,使标志位设置为允许,同时将信号调整期望设置点设置为当前状态,程序检测驱动标志位,若检测到标志位已经设为允许,则进行PID计算及电机驱动,以避免产生过度运动。
4.4 重心整定
在ESP32程序中,要保证独轮自平衡车能够在重心改变的情况下依旧保持相对稳定,如果原有的姿态PID计算中设定目标值偏离机械重心过大,则会使独轮自平衡车稳定性变差。因此,当重心发生变化时,程序开始进行检测,当独轮自平衡车姿态参数到达设定点,且整体加速度未超过设定范围,检测各姿态轴角速度;若其处于设定点时仍具有过大加速度,即存在运动趋势,则通过更改姿态设定目标值以抵消此运动趋势。
此功能通过center标志位选择性运行,center标志位由blynk移动端APP按键赋值。
独轮自平衡车稳态平衡时选择PID算法控制,所以其对于相应的实时性要求较高,即在PID参数中比例系数Kp对于系统影响最大,为简化程序,PID参数整定仅对比例系数进行调整。
当检测到系统输出不足导致的失稳时,小幅增加比例系数Kp;当检测到系统因比例系数过大导致输出过大出现震荡情况时,程序小幅减小比例系数Kp。
5 实验
在ESP32程序中,独轮自平衡车为保持平衡、稳定,需进行多个PID计算,若程序中各PID参数不能满足稳、准、快的要求,可通过PID参数整定,通过观察独轮自平衡车状态,若不满足要求则微调PID参数。在PID算法中,比例系数Kp越大系统响应越快,但Kp过大容易造成振荡。微分系数Kd能够增加系统阻尼,减弱振荡,同时也使系统响应变慢。积分系数Ki可调节静态误差,提高系统精度,但容易受之前的数据影响,不能及时响应。
当MPU6050传感器和编码器传感器固定一位置时,参数I保持不变,分别改变P、D参数,表1为P1、D1、P2、D2不变,P4、D4、P5、D5改变时的参数值,表2为P1、D1、P2、D2改变,P4、D4、P5、D5不变时的参数值,表3为P1、D1改变,P2、D2、P4、D4、P5、D5不变时的参数值,测量参数均为平衡车稳定时的参数。
表1 P1、D1、P2、D2不变,P4、D4、P5、D5改变
通过表1可知,当P1、I1、P2、I2不变,P4、I4、P5、I5逐渐增大时,力、速度、加速度逐渐变大,但实验测得P4、I4、P5、I5越小时,平衡车较稳定,可以抵抗抗轻度推动。
通过表2可知,当P4、I4、P5、I5不变,P1、I1、P2、I2逐减小时,力、速度、加速度略微减小,P1=10,D1=0.49 ,P2=0.25,D2=0时比较稳定,但是不能控速;P1=9.8,D1=0.47,P2=0.24,D2=0时有小抖动,不能推;P1=9.4,D1=0.45,P2=0.20,D2=0较稳定,但遥控前进略微延后。
表2 P4、D4、P5、D5不变,P1、D1、P2、D2改变
通过表3可知,当P2、D2、P4、D4、P5、D5不变,减小P1、D1时,力、速度、加速度不呈线性改变,当P1=9,D1=0.45 ,P2=0,D2=0,P4=0,D4=0,P5=0,D5=0时平衡车性能好,但不能抵抗强干扰;P1=8,D1=0.45,P2=0,D2=0,P4=0,D4=0,P5=0,D5=0时平衡车比较抖;P1=8,D1=0.40,P2=0,D2=0,P4=0,D4=0,P5=0,D5=0时平衡车有小抖动并且不能控速。
表3 P2、D2、P4、D4、P5、D5不变,P1、D1改变
根据实验数据得出:当P1=9,D1=0.45,P2=0,D2=0,P4=0,D4=0,P5=0,D5=0时自平衡车性能好,可以抵抗轻微干扰,满足运动可控和平衡稳定的要求。在PID参数中比例系数Kp对于系统影响最大,通过检测系统输出进而小幅增减比例系数Kp,使机器人始保持稳定状态。
6 总结
本文设计的独轮自平衡车,以ESP32单片机为主控单元,采用双闭环PID控制算法,利用卡尔曼滤波输出的小车倾角和角速度的优化值,对小车系统进行自平衡控制。同时,利用高响应速度的MPU6050传感器,由内部集成的数字运动处理器(DMP)进行数据融合滤波处理,通过低功耗蓝牙(BLE)进行数据传输、运动控制以及机械重心计算,并通过多次实验选择一组最优PID参数,测定表明当P1=9,D1=0.45,P2=0,D2=0,P4=0,D4=0,P5=0,D5=0时,该自平衡车抗干扰能力强,可保持平衡稳定的工作状态。此外,独轮自平衡车相对于多轴植保无人机器人具有负载量更大、运动更灵活、占地面积小、驱动功率小、电池寿命高等优势,还具备了一定的抗干扰能力,极大提高了机器人在复杂崎岖地区作业的实用性与可靠性,为平衡系统的进一步研究提供了参考价值。