基于新型惯性传感器的两轮自平衡车的设计

王恒+桑元俊



摘 要: 两轮自平衡车是检验各种控制算法的理想平台之一。设计了两轮自平衡车的实验平台,车体姿态数据采集采用新型加速度传感器和陀螺仪传感器组合,型号分别为ST 公司的LIS331DLH和L3G4200D。姿态检测数据融合算法采用卡尔曼滤波算法,系统控制算法采用倾角环,角速度环与电流环的PID控制方法。最后,制作了两轮自平衡车的原型,并给予了初步运动控制验证。该实验平台能够初步实现自平衡功能,后续的研究将着重对各种控制算法在该平台的验证研究。
关键词: 两轮自平衡车; 惯性传感器; 数据融合; 卡尔曼滤波; MSP430F149
中图分类号: TN876.3?34; TP24 文献标识码: A 文章编号: 1004?373X(2017)18?0049?06
Design of a two?wheeled self?balancing vehicle based on novel inertial sensors
WANG Heng1, SANG Yuanjun2
(1. Jincheng College, Nanjing University of Aeronautics and Astronautics, Nanjing 211156, China;
2. School of Mechanical Engineering, Shanghai Jiao Tong University, Shanghai 200240, China)
Abstract: The two?wheeled self?balancing vehicle is one of the ideal experimental platforms to test various control algorithms. An experimental platform of the two?wheeled self?balancing vehicle was designed. A novel combination of the acceleration sensor and the gyroscope sensor is used for the vehicle attitude data acquisition. Their models are LIS331DLH and L3G4200D made by ST Company. Kalman filter algorithm is adopted in vehicle attitude detection data fusion. The PID control method of the angle loop, the angular loop and the current loop is adopted as the system control algorithm. A prototype of two?wheeled self?balancing vehicle was manufactured, and its motion control was preliminarily verified. The experimental platform can preliminarily realize the self?balancing function, and future studies will focus on the validation of various control algorithms on the self?balancing vehicle experimental platform.
Keywords: two?wheeled self?balancing vehicle; inertial sensor; data fusion; Kalman filter; MSP430F149
0 引 言
两轮自平衡车(two?wheeled self?balanced vehicle)或两轮自平衡机器人(two?wheeled self?balanced robot),其系统是一个高阶次、不稳定、多变量、非线性、强耦合的系统[1],核心问题就是如何保证各种工况下运动姿态的平衡控制及导航[2]。两轮自平衡车作为检验各种控制理论的实验平台之一[3],目前国内有不少院校都对两轮自平衡车进行了研究[1?4]。国外也有很多对两轮自平衡车的研究,如Slavov等基于线性二次型控制(Linear?Quadratic Regulator,LQR)对两轮机器人进行了研究[5],Kim等建立了两轮自平衡移动机器人的动态模型[6],Amano等采用鲁棒极点配置方法对两轮自平衡车进行了稳定性控制[7],Silva等设计了一个PID控制器实现了对同轴两轮移动机器人的控制等[8]。这说明作为进行各种平衡控制理论研究的第一步,对两轮自平衡车实验平台的研制具有重要的意义。
两轮自平衡车实验系统主要包括机械结构平台、硬件平台及相应的软件平台。其中机械结构平台相对来说大同小异,侧重点在于车体质心是否为定质心,本文主要对定质心两轮自平衡车进行研究。硬件平台的研究主要为微控制器和姿态测量传感器的方案选型。软件平台设计则主要为各种控制算法的检验。国内对两轮自平衡车硬件平台的设计主要采用的微控制器为以下几家,如飞思卡尔的MC9S12XS128,宏晶科技的STC12C5A60S2,ST公司的STM32系列,TI公司的MSP430系列,TI的DSP MC56F8013等,而套件式的方式主要为LEGO Mindstorms NXT处理器套件[9?10]。自平衡车的车身姿态测量传感器则主要为飞思卡尔的加速度计MMA7260配套陀螺仪ENC?03的方案[11?18]。单芯片的姿态传感器的解决方案主要为把加速度计与陀螺仪集成在一起,比如美国Invensense公司的MPU6050[19?20],MPU9250[21]。
从上述文献综述来看,两轮自平衡车的硬件平台设计主要为相同或相似的设计方案, 即飞思卡尔的MMA7260配套ENC?03的方案,或者集成加速度计和陀螺仪的单芯片的MPU6050或MPU9250方案。其中的软件平台,前人大部分均未提出,或者仅是简单地采集信号,并未建立完整的具有自主知识产权的采集软件。所以,对两轮自平衡车实验系统的研究,很有必要提出新型的硬件与软件平台方案。
针对两轮自平衡车的姿态检测分析来看,为了准确测量车体的倾角,加速度计和陀螺仪是必不可少的,甚至需要外加倾角计等其他传感器[22]。加速度计测量计算得到的角度在运动状态易受到物体运动影响而变的不准确,所以,单独使用加速度计是不合适的。单独使用陀螺仪,则测到的角速度容易受到漂移误差影响,通过时间积分的累积后得到的倾角角度的误差更大,所以,单独使用陀螺仪也是不合适的。因此,需要两者组合使用,并需要控制算法的优化来满足系统的控制性能。在综合分析前人文献的基础上,本文提出一种新型惯性传感器组合的方案,来实现两轮自平衡车姿态测量与控制,并同时设计了具有自主知识产权的软件采集平台。该新型惯性传感器组合的设计方案,即车体姿态数据采集采用加速度传感器和陀螺仪传感器,型号分别为ST 公司的LIS331DLH和L3G4200D,姿态检测数据融合算法采用卡尔曼滤波算法。采用的微处理器为TI 公司16位MSP430F149微处理器。系统控制算法采用倾角环,角速度环与电流环的PID控制方法。无线传输模块采用Nordic公司的nRF24L01,传输频率为2.4 GHz。同时,发送接收模块均设计了外接大容量存储Micro SD卡(TF卡)接口,方便把采集到的大量数据进行存储。该新型软件采集平台方案为基于Microsoft Visual C# 2010设计。本文同时对该新型设计方案进行了实验验证。
1 系统设计
本设计采用模块化设计思想,系统总体功能框图如图1所示,分为八个模块,分别为:电源管理模块、微处理器模块、电机驱动模块、加速度计数据采集模块与陀螺仪数据采集模块、无线通信模块、车载存储模块、程序下载模块。电源管理模块负责整个系统的供电;微处理器模块为系统的控制与数据处理核心,姿态数据采集模块为采集车体的姿态(包括加速度计的加速度值和陀螺仪的角速度值),然后通过微处理器控制算法后,再驱动电机控制模块运动以保持车体平衡;而无线通信模块则为通过上位机控制系统的运行,同时,系统运行的数据也可以上传到电脑上;车体的加速度计和陀螺仪采集的数据,也可存储在车载TF卡上;下载模块则设计在微处理器板上,用作程序代码下载。

图1 系统功能框图
2 硬件电路设计
2.1 电源管理模块
本系统主要使用的电平为12 V,5 V,3.3 V共三种电平,除了电机驱动模块用12 V和5 V供电外,微处理器模块等其他模块均为3.3 V供电。所以,本设计总电源使用12 V的锂电池供电,采用LM2576将锂电池降压为5 V,再利用AMS1117_3.3把得到的5 V电平降为3.3 V。为了防止姿态传感器受到干扰,采用2片AMS1117_3.3分别得到模拟3.3 V和数字3.3 V来供电,模拟地和数字地采用0 [Ω]电阻连接。本电路部分比较简单,所以未单独列出。如有需求,电源模块可增加微风扇或者散热铜管。
2.2 MSP430F149微处理器模块
采用TI公司的16位MCU MSP430F149, 该微处理器为16 b RISC架构, 具有60 KB+256 B FLASH Memory,2 KB RAM,125 ns指令周期时间。该芯片在工作状态功耗为0.28 mA,Standby Mode功耗为1.6 μA。其最小系统电路图如图2所示。
2.3 电机驱动模块
驱动电机为两个无刷直流电机(电机A为左侧电机,电机B为右侧电机)。采用L298N芯片作为电机驱动电路的主芯片,车体的不同状态运动通过电机的三种转动方式(正转、反转、停止)实现,具体如表1所示。电机驱动电路原理图如图3所示。该电机驱动电路模块单独制作在一片PCB上,信号、电平等与微控制器模块的PCB可通过插线连接,目的是尽可能减小电机对主板的干扰。
2.4 加速度传感器模块
加速度计模块如图4所示。
加速度传感器采用ST公司的LIS331DLH,该线性加速度传感器芯片可选模式为±2 g/±4 g/±8 g,输出速率从0.5 Hz~1 kHz都可选。该芯片封装为LGA 16,尺寸为3 mm×3 mm×1 mm。该芯片以6D方位检测,16位数字输出,工作电流为0.25[mA],功耗低至10 [μA]。考虑到空间布局有限,设计采用I2C 工作模式,地址为0011000B,并具有3D中断功能。
2.5 陀螺仪传感器模塊
陀螺仪传感器模块如图5所示。系统采用的陀螺仪传感器为L3G4200D,具有16位比特率值三轴数字输出,三种可选全尺度模式(250/500/2 000 dps),本设计采用2 000 dps。该芯片为LGA 16封装,尺寸为4 mm×4 mm×1 mm。设计兼容了I2C模式和SPI模式,具体应用采用I2C模式,当SDO为低电平时,地址为1101000B,当SDO为高电平时,地址为1101001B。
2.6 nRF24L01无线通信模块
无线模块可以实现自平衡车和上位PC机的数据收发和控制功能,接口兼容433 MHz和2.4 GHz的通信频率。尤其是当2.4 GHz通信时,天线可以做成PCB板载天线,不需要外接短柱状天线,节省空间。通信模块的芯片为Nordic公司的nRF24L01芯片,在2.4 GHz工作时,最高工作速率2 Mb/s,
具有高效GFSK调制。该模块接口电路如
图6所示。
2.7 TF卡存储模块
图7所示为TF卡存储模块接口电路。系统设计了外接大容量存储Micro SD卡(TF卡)接口,方便地把采集到的大量数据进行存储,具有自弹出功能,带插拔侦测功能,设计最大储存扩展为32 GB。
2.8 BSL下载模块
图8为控制系统的程序下载模块。系统采用BSL下载模式,同时,接口电路可以兼容JTAG下载模式。采用BSL下载时,需要用MSP430F149的P2.2,P1.1端口实现Tx,Rx 信号连接。BSL所需信号线为RST,TCK,P1.1,P2.2。
3 系统软件设计
系统的控制流程图如图9所示,主要包括:MSP430F149的初始化,采集加速度计的三轴方向加速度,同时采集陀螺仪的角速度,两路数据信号送入MSP430F149后经过卡尔曼滤波融合设计,得到倾角值,通过PID控制后,PWM控制信号输出控制左、右电机。系统软件开发平台为Keil μVision4。
自平衡车的控制算法框图如图10所示,系统包括倾角反馈控制环、角速度反馈控制环与电流反馈控制环。加速度计和陀螺仪的数据滤波融合算法为卡尔曼滤波算法,倾角控制器、角速度控制器、电流控制器均采用PID控制算法。
基于Microsoft Visual C# 2010设计了具有自主知识产权的上位PC机数据采集界面,如图11所示。采集到滤波后的数据可以存储为Excel格式或者txt格式,然后可以绘出动态数据图。考虑到传输速率的原因,上位机没有接收原始的加速度计或陀螺仪的输出数据,而是将这些未经过滤波处理的数据存储在车身TF卡上,后续提取出来进行滤波器优化设计。
4 自平衡车原型与实验结果
本设计车体驱动部分采用两个无刷直流电机控制,选择飞思卡尔竞赛使用的C型车模进行改装得到车体机械结构,底盘使用一块面包板来代替,板子和支架部分固定在一起。车体的姿态测量模块(加速度计和陀螺仪模块)、电机控制模块L298、锂电池模块、降压模块、MSP430F149微处理器模块、nRF24L01无线收发模块等都安装在面包板上面。完整车体如图12所示。
两轮自平衡车的启动、匀速前行与停止控制结果如图13所示。
图13(a)为自平衡车的速度变化图,图13(b)为车体的倾角变化图。从图中可以看到,自平衡车的运行状态可分为三部分,第一部分为启动加速,第二部分为匀速前行,第三部分为停止减速过程。在实验过程中,实验设计运行地面平整,摩擦系数恒定,摩擦系数约为0.45。在启动状态,车体为直立状态,此时倾角为0°,先缓慢前行(5~10 s区间)。缓慢启动后,车体往前倾斜,倾角加大,然后驱动电机加速运行以恢复车体倾角为0°(10~15 s区间)。第二部分为匀速前行状态(15~22 s区间),车体可以保持恒定车速,此时倾角已经恢复且保持为0°。第三部分为停止减速过程(22~25 s区间),此时车体倾角变大,但是为负值,即车体往后倾斜(与前进方向相反),此时速度快速减低为0,车体恢复为0°且停止运行。该两轮自平衡车系统从受到扰动(车身倾角发生改变)到恢复平衡状态(车身倾角为0°)的时间约为5 s,同时车体达到平衡时没有较大的波动,一定程度上实现了该系统的自平衡功能。
5 讨 论
本文研究目的就是希望提出一种新型的传感器组合方案,并设计自有的数据采集处理软件,来实现两轮自平衡车的实验平台设计。采用新型的惯性传感器组合,即车体姿态数据采集采用ST公司的LIS331DLH加速度传感器和L3G4200D陀螺仪传感器,该传感器组合与前人传感器平台价格相当,且采集精度、稳定性等优于前人传感器平台。同时,本文设计具有自主知识产权的姿态检测平台与上位机采集软件平台,从系统功能上来说并不是性能最优,同样存在一定的不足。比如微处理器MSP430F149性能较低,在单位时间内处理少量数据的时候,運行速度还是能接受的。但是,该微处理器并不适合多个传感器或复杂控制算法的应用场合,后续的研究可以直接更换为更高性能的微处理器,比如高性能的DSP处理器或者Cortex?M系列内核的处理器等,本设计预留了平台更新所需的接口。本文提出的方案中陀螺仪和加速度计传感器均为一个,后续的研究将采用多个陀螺仪、加速度计、倾角计等多传感器融合设计,这样,系统的姿态数据采集才可能更加精确。总之,两轮自平衡车的控制方案设计不是惟一不变的,且性能上可能存在差异性。虽然这些控制平台的差异性未见前人作对比研究,但是,本文认为,采用高性能的微处理器,以及抗干扰性能优秀的姿态采集传感器,可以使得系统的控制算法大大简化,若采用更精确的控制算法和滤波算法,则整个两轮自平衡车的控制性能将达到更优。本文所提出的两轮自平衡车实验平台的设计方案,希望能作为两轮自平衡车控制平台的一个新的选择。
6 结 论
两轮自平衡车实验平台,可作为较为理想的验证各种控制理论的实验平台之一。本文对两轮自平衡车提出了一种新型惯性传感器的方案设计,并设计了系统的硬件平台、软件平台。该系统能够初步实现自平衡车的运动平衡控制。本文所提出的系统方案可作为两轮自平衡车控制平台的一个新的选择。后期的研究将着重从理论控制算法的仿真,与参数融合优化方面进行研究。
注:本文通讯作者为桑元俊。
参考文献
[1] 阮晓钢,任红格.两轮自平衡机器人动力学建模及其平衡控制[J].计算机应用研究,2009,26(1):99?101.
[2] 阮晓钢,赵建伟.基于Hopfield网络的柔性两轮自平衡机器人控制[J].机器人,2010,32(3):405?413.
[3] 秦勇,闫继宏,王晓宇,等.两轮自平衡机器人运动控制研究[J].哈尔滨工业大学学报,2008,40(5):721?726.
[4] 程刚,屈胜利,刘学超.两轮自平衡小车可控角度的推导研究[J].机床与液压,2009,37(5):115?116.
[5] SLAVOV T, KRALEV J, PETKOV P. Linear?quadratic control of a two?wheeled robot [J/OL]. [2014?06?19]. https://www.researchgate.net/publication/289608821.
[6] KIM S, KWON S J. Dynamic modeling of a two?wheeled inverted pendulum balancing mobile robot [J]. International journal of control automation & systems, 2015, 13(4): 926?933.
[7] AMANO Y. Stability control for two?wheeled mobile robot using robust pole?placement method [J]. Springer international publishng, 2014, 293: 259?268.
[8] FELIPE O E S. Design and implementation of a PID control system for a coaxial two?wheeled mobile robot [C]// Proceedings of IEEE International Conference on Industrial Electronics. [S.l.]: IEEE, 2013: 1?6.
[9] 李宗帅,王修岩,赵卉,等.基于光电传感器的两轮自平衡机器人控制研究[J].机床与液压,2014,42(15):32?35.
[10] 张金学,掌明.两轮自平衡机器人的LQR实时平衡控制[J].自动化与仪表,2013,28(5):5?9.
[11] 杨凌霄,李晓阳.基于卡尔曼滤波的两轮自平衡车姿态检测方法[J].计算机仿真,2014,31(6):406?409.
[12] 柯国松,陈阳,许志文.两轮自平衡小车的研究与实现[J].工业控制计算机,2014,27(11):44?46.
[13] 刘二林,姜香菊.基于卡尔曼滤波的两轮自平衡车姿态检测[J].自动化与仪器仪表,2015(2):52?54.
[14] 刘二林,姜香菊.基于PD算法的两轮自平衡车直立控制[J].自动化与仪器仪表,2015(1):203?206.
[15] 蒋纬洋,邓迟,肖晓萍.两轮自平衡小車系统制作研究[J].国外电子测量技术,2012,31(6):76?79.
[16] 谭苗,吴益飞,陈扬,等.电磁导引的两轮自平衡移动机器人设计[J].华中科技大学学报(自然科学版),2013,41(z1):249?253.
[17] 郑晓伟,陈万米.基于DSP的两轮自平衡小车系统的研究[J].工业控制计算机,2012,25(9):33?35.
[18] 杨继志,郭敬.基于MMA7260两轮自平衡小车控制系统设计[J].机电产品开发与创新,2011,24(3):144?145.
[19] 傅忠云,陈秋阳,刘文波.基于直接转矩控制的两轮自平衡车系统设计[J].压电与声光,2014,36(6):967?971.
[20] 赖义汉,王凯.基于MPU6050的双轮平衡车控制系统设计[J].河南工程学院学报(自然科学版),2014,26(1):53?57.
[21] 刘春阳,徐军领,程洪涛,等.MPU9250传感器的姿态检测与数据融合[J].河南科技大学学报(自然科学版),2015,36(4):14?17.
[22] 郜园园,阮晓钢,宋洪军,等.两轮自平衡机器人惯性传感器滤波问题的研究[J].传感技术学报,2010,23(5):696?700.