《独轮机器人——控制系统设计 .docx》由会员分享,可在线阅读,更多相关《独轮机器人——控制系统设计 .docx(52页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、摘 要独轮机器人具有非线性、强耦合的复杂动力学系统。是控制理论和动力学研究的一大挑战,是一个非常好的研究模型。本文将设计一款独轮机器人,侧重分析独轮机器人的运动,并建立动力学模型以及编写控制程序。本文通过对独轮机器人的工作原理进行分析,为独轮机器人挑选合适的电子元件。本文选择mpu9250电子陀螺仪捕获独轮机器人运动姿态;GA12-N20电机为独轮机器人提供驱动力;电机驱动使用L298N电机驱动模块;两节18650电池供电;arduino uno板作为独轮机器人的核心控制器。为解决电子陀螺仪的数据带有偏差和噪声的问题,本文对数据进行修正处理,受电容的滤波特性的启发,设计滤波算法。本文从电容滤波
2、电路切入,进行分析,对电容进行数学建模。针对计算机处理数据的特点,本文对模型进行离散化处理,并使用递推公式取代求和公式。本文使用MATLAB软件对电容滤波算法进行了初步的检验分析,并使用arduino实物进行实践验证。由实验结果可知该算法能有效滤除信号的噪声。为使数据更有可读性,更便于数据分析。本文对数据进行相应的处理,从而获得了角速度、角加速度、角度三个物理量。独轮机器人的动力学系统具有多变量强耦合的特点,为使设计简单。本文对独轮机器人的倾倒过程拆解成前后倾倒与左右倾倒的组合。对每个轴向的倾倒运动独立分析、建立动力学模型,并对控制系统进行设计与仿真。在左右倾倒控制的设计中,通过分析倾倒过程中
3、受到的力的变化、角度的变化、角速度的变化,得到了PD控制系统。但在左右倾倒仿真中发现,该控制系统不能区分出独轮机器人的倾倒和回摆的区别。为解决控制系统无法识别回摆与倾倒的区别的问题,本文对倾倒过程再度分析。在原控制系统上加入了积分项,也就是角度参数。角度参数可以使得控制系统清楚独轮机器人需要恢复到何位置。本文再次对控制系统进行了检验,发现此时的控制系统已经能够区分回摆和倾倒,并能够使得独轮机器人经过几次抖动后便恢复到直立状态。有了左右倾倒的控制经验,前后倾倒的控制系统直接采用了角度、角速度、角加速度三组数据同时控制。由于前后倾倒会导致有位移发生,文中使用的仿真程序,加入了动画,可实时查看独轮机
4、器人的姿态。从仿真的数据曲线可以看出,所设计的PID控制系统完全可以满足独轮机器人站立的控制需求。本文为使独轮机器人更具特色,所以对独轮机器人进行了润色。本文为独轮机器人设计了无线充电装置。初期制作了特斯拉线圈进行无线充电,实践中发现特斯拉线圈能放电的特点存在很大危险性,故改使用线圈式的无线充电装置。文中对线圈式无线充电进行了实际检测,由测试的数据得知,本文制作的线圈式无线充电装置功率足够独轮机器人使用。关键词:独轮机器人,滤波算法,无线充电,特斯拉线圈,PID控制算法,动力学建模AbstractThe one-wheeled robot has a nonlinear and strongl
5、y coupled complex dynamic system. It is a great challenge to control theory and dynamics research, and it is a very good research model. This paper will design a one-wheeled robot, focusing on the analysis of the movement of the one-wheeled robot, and establish a dynamic model and write a control pr
6、ogram.This paper analyzes the working principle of the one-wheel robot and selects the appropriate electronic components for the one-wheel robot. In this paper, the mpu9250 electronic gyroscope is selected to capture the motion posture of the one-wheel robot. The GA12-N20 motor provides the driving
7、force for the one-wheeled robot. L298N motor drive module is used for motor drive. Two 18650 batteries powered; Arduino uno board is used as the controller of one-wheel robot.In order to solve the problem of deviation and noise in the data of the electronic gyroscope, this paper corrected the data a
8、nd designed a filtering algorithm inspired by the filtering characteristics of the capacitance. In this paper, from the capacitor filter circuit, analysis, capacitance mathematical modeling. According to the characteristics of computer data processing, this paper discretizes the model and uses the r
9、ecursive formula to replace the summation formula. In this paper, the capacitance filtering algorithm was preliminarily tested and analyzed with MATLAB software, and the actual arduino was used for practical verification. The experimental results show that the algorithm can effectively filter the no
10、ise of the signal. In order to make the data more readable, more convenient for data analysis. In this paper, the corresponding data processing, so as to obtain the angular velocity, angular acceleration, Angle three physical quantities.The dynamic system of one-wheeled robot is characterized by str
11、ong coupling of multiple variables, which makes the design simple. In this paper, the dumping process of one-wheel robot is disassembled into a combination of front and back dumping and left and right dumping. The dumping motion of each axis is analyzed independently, the dynamic model is establishe
12、d, and the control system is designed and simulated. In the design of left-right dumping control, the PD control system is obtained by analyzing the change of force, Angle and angular velocity in the process of dumping. However, in the simulation of left and right dumping, the control system could n
13、ot distinguish the dumping and backswing of the one-wheeled robot.In order to solve the problem that the control system cannot recognize the difference between backswing and dumping, this paper analyzes the dumping process again. The integral term, which is the Angle parameter, is added to the origi
14、nal control system. The Angle parameter allows the control system to know where the one-wheeled robot needs to be restored. In this paper, the control system has been tested again, and it is found that the control system has been able to distinguish back swing from toppling, and can make the one-whe
15、eled robot return to the upright state after several wobbles.With the control experience of right and left toppling, the control system of front and back toppling directly adopts the simultaneous control of three sets of data including Angle, angular velocity and angular acceleration. As the forward
16、 and backward dumping will lead to displacement, the simulation program used in this paper is animated to view the posture of the one-wheeled robot in real time. It can be seen from the simulation data curve that the designed PID control system can completely meet the control requirements of standin
17、g one-wheeled robot.In order to make the one-wheel robot more characteristic, this paper has embellished the one-wheel robot. This paper designs a wireless charging device for a one-wheel robot. At the initial stage, tesla coil was made for wireless charging. In practice, it was found that tesla coi
18、l could discharge in a very dangerous way, so a wireless charging device of coil type was used instead. In this paper, the coil wireless charging device is tested in practice. According to the test data, the coil wireless charging device made in this paper is powerful enough for the one-wheel robot
19、to use.Keywords: one-wheel robot, filtering algorithm, wireless charging, tesla coil, PID control algorithm, dynamics modeling目 录1 引言11.1 研究意义11.2 国内外研究现状12 原理分析43 电路元器件选型53.1 传感器53.2 电机63.3 电机驱动73.4 电池83.5 控制器94 控制系统设计124.1 mpu9250数据修正处理124.2 mpu9250数据滤波处理124.2.1 建立滤波模型134.2.2 算法效果测试144.2.3 实际的滤波分析
20、174.3 数据物理意义化184.4 独轮机器人左右倾倒PID控制194.4.1 左右倾倒动力学建模204.4.2 左右倾倒的控制系统建立与仿真分析214.5 独轮机器人前后倾倒PID控制234.5.1 前后倾倒动力学建模234.5.2 前后倾倒的控制系统建立与仿真分析245 润色功能265.1 无线充电介绍与原理分析265.2 一代无线充电实物制作265.3 二代无线充电实物制作285.4 无线充电实测296 总结31参考文献32谢 辞33附 录34IV1 引言在科技发达的今天,机器人已经不再是什么陌生的名词。简单的有我们家中常用的扫地机器人,复杂的有工业生产中的机械臂。机器人已经走进了人们
21、的生活,服务的领域包括餐饮、教育、军事、娱乐、农业、工业制造等等。自2013年以来,我国便连续五年工业机器人需求市场全球最大,机器人销量和市场增速稳居世界前列。可见我国机器人市场大,发展迅猛。回顾机器人的发展史,机器人从低级到高级,可分为三个阶段。第一阶段为程序控制机器人,机器人只能按照预先编好的程序一步一步地进行工作;第二阶段为自适应机器人,其特点是配备有相应的传感器,能够从周围环境获取信息,并做出相应的动作;第三阶段的机器人相比较第二阶段的机器人,第三阶段机器人具有思维能力,表现更为智能。在机器人当中可移动的机器人具有很强的适应能力,可以搭载上其他的功能设备。可移动机器人中有很多很多种,陆
22、地机器人中有足式、轮式。海上机器人有螺旋桨式推进、有仿生的尾鳍推进。天上的有固定翼和多旋翼。独轮机器人是轮式机器人中特殊的一种。独轮机器人的特点是仅有一个轮子着地,所以其自由度较大,稳定性较差。但独轮机器人有其他轮式机器人不具备的优势,独轮机器人占地面积小、体积小、运动灵活、可零半径旋转。1.1 研究意义独轮机器人具有很大的自由度,他具有一个多变量、强耦合、非线性的复杂动力学系统。其站立时与运动时都具有很强的不稳定性,是控制工程一大挑战,是一个很好的研究模型。对独轮机器人的研究可以促进控制理论与动力学的发展1。其次,独轮机器人能更好地服务于人员较多的地方。因独轮机器人的动作容易被人所预测,我们
23、能较轻松地预测出独轮机器人将要运动的方向以及运动速度。独轮机器人的运动相比较其他的机器人有些许特殊。因为一个轮着地的原因,在其运动时需要先发生小角度的倾斜。这个动作能很容易被观测到,在独轮机器人附近的人便可通过此变化预测出独轮机器人的运动。其他轮式机器人运动显得像突然发生的,没有征兆,难以预知。对人而言,像独轮机器人这样的机器人在发生运动时,显得更平缓,更舒适。1.2 国内外研究现状2008年日本村田制作所推出了一款博人眼球的独轮机器人村田女孩(Murata Girl)2。村田女孩结构由轮子踏板、机器人腿部结构以及封闭在内的惯性飞轮组成。通过陀螺仪进行检测倾斜。该独轮机器人高五十厘米,重五千克
24、,移动速度约五厘米每秒。图1.1是村田女孩的实物图。图1.1 村田女孩村田女孩加入了用于测距的传感器,可以用来躲避障碍物。除此还配有蓝牙模块,可以用于接发数据和控制指令。村田女孩的缺点是不可以改变偏航角,也就是不可以像人一样原地左右转。但这其实并不影响村田女孩的运动,村田女孩依旧可以通过惯性飞轮和触地轮的配合进行改变运动方向3。图1.2 釜山国立大学独轮机器人韩国的釜山国立大学对独轮机器人也进行了相应的研究。他们设计的独轮机器人如图1.2所示,并设计了一种独轮机器人的解耦控制算法。俯仰轴和滚动轴分开控制,假设两者在动力学上是分离的。他们所设计的独轮机器人同样不具备偏航能力4。相比国外,我国对独
25、轮机器人的研究起步较晚。2009年,北京工业大学研究团队对独轮机器人进行了较为深入的分析研究。他们对独轮机器人进行了动力学研究、建立模型、对独轮机器人的结构进行设计、控制器设计以及速度跟踪。图1.3是北京工业大学研究团队设计的独轮机器人。图1.3 北京工业大学研究团队的独轮机器人北京工业大学的研究团队对独轮机器人的研究成果有:独轮机器人动力学建模与分析,非线性PD控制方法对独轮机器人运动时平衡进行控制,基于非线性动态逆控制方法的独轮自平衡机器人平衡控制,基于迭代学习控制方法的独轮自平衡机器人运动平衡控制5。2010年,哈尔滨工业大学的熊梅对独轮机器人的姿态控制算法上进行了研究。熊梅分析了独轮机
26、器人的运动规律建立了动力学模型。简化了拉格朗日动力学方程,运用于独轮机器人的实时控制上。设计了变增益平衡控制算法6。图1.4 哈尔滨工业大学于法传设计的独轮机器人2015年,哈尔滨工业大学的于法传为了解决使用惯性飞轮的独轮机器人输出扭矩小等问题,设计了一款利用陀螺进动效应的独轮机器人。图1.4是于法传的独轮机器人设计。控制方面使用解耦控制方法,并使用一种基于离心力原理的补偿控制算法解决系统抗干扰能力欠缺的问题7。2 原理分析为了给后续的元器件选择以及控制程序的编写做准备,我们需要对独轮机器人的运动进行初步的分析与研究,本文将先简单分析独轮机器人的工作原理。 图2.1 独轮机器人由于独轮机器人只
27、有一个轮子着地,故其自由度比较大。在空间直角坐标系上独轮机器人可以绕三个轴自由旋转,朝两个轴向自由平移。独轮机器人保持直立状态,需要有控制两个轴向的旋转运动。如图2.1所示,控制X轴保持独轮机器人不左右倾倒,控制Y轴保持独轮机器人不前后倾倒。独轮机器人的车轮与地面间可以产生一个作用于独轮机器人的摩擦力。由于独轮机器人的重心不在此力的作用线所在的直线上,故可向独轮机器人提供扭矩。当独轮机器人发生前后方向的倾斜,并有倾倒的倾向时,车轮迅速运动,向独轮机器人提供一个反向的扭矩,使得独轮机器人恢复直立状态。独轮机器人的胸前有一飞轮,用于保持X轴方向的平稳。平常飞轮处于静止状态,将飞轮与独轮机器人视为一
28、个整体,则该整体初始的角动量为零。当独轮机器人发生左右倾斜,并有倾倒的倾向时,背部飞轮由静止开始加速旋转。飞轮受到扭矩的作用而获得某一方向的角动量,由于力的作用是相互的,故独轮机器人的主体部分将受到相反的扭矩而发生小的转动,从而抵消机器人的左右倾斜,独轮机器人将恢复直立状态。由上分析可知,独轮机器人的平衡控制问题实际上是根据独轮机器人的实时运动姿态控制车轮和飞轮运动的问题。独轮机器人在倾倒时实则是绕某一轴发生的加速转动,故需要读取独轮机器人的角速度并进行分析即可得知其运动姿态。本文设计的独轮机器人将使用电子陀螺仪读取角速度信息。3 电路元器件选型3.1 传感器对独轮机器人的工作原理进行分析可知
29、,独轮机器人需要保持直立状态,则控制系统的核心输入参数是其角速度。电子陀螺仪是最常用的读取角速度的传感器。电子陀螺仪又叫加速度计、角速度传感器,因为电子陀螺仪模块通常是集成测加速度、测角速度等功能的传感器。因运用场景不同,有些电子陀螺仪传感器模块甚至集成了测温度,测气压、测地磁等功能。在电子陀螺仪众多的型号中,mpu6050传感器模块是一款比较常见比较常用的测角速度的传感器模块,其核心是一颗mpu6050芯片。该芯片是一款六轴的电子陀螺仪,可检测三个轴向角速度以及三个轴向的加速度。加速度测量是通过电容的改变测得。内置小型的特殊装置制作的电容,当外部受到力的作用时,会使得小型的特殊装置发生位移引
30、起电容电极距离改变,从而引起电容大小的改变。角速度的测量则是利用了科里奥利效应,通过检测科里奥利力大小来获得角速度。mpu6050通过I2C方式进行通信。角速度测量可选量程有250/s、500/s、1000/s、2000/s,加速度测量可选量程有2g、4g、8g、16g,数据输出为十六位数据。对于独轮机器人的是使用是完全可以满足的。本文所设计的独轮机器人对电子陀螺仪的精度、体积、功耗等均没有严格要求,市面上的大部分电子陀螺仪均可服务于本文所设计的独轮机器人。故从经济的角度出发,mpu6050模块是最适合本独轮机器人的一款六轴电子陀螺仪。由于在笔者设计本独轮机器人时,恰巧闲置着一个型号为mpu9
31、250的电子陀螺仪模块。图3.1 mpu9250模块实物图3.1是mpu9250模块的实物图,它是一款九轴的电子陀螺仪模块,其核心为一颗mpu9250芯片。其基本信息见表3.1所示。表3.1 mpu9250基本信息芯片mpu9250电压3V-5V通讯方式I2C/SPI数据输出16位有符号整型数据角速度计范围250/s、500/s、1000/s、2000/s加速度计范围2g、4g、8g、16g磁力计范围4800T外观尺寸15mm25mmmpu9250内含三个轴向的加速度计、三个轴向的角速度计、三个轴向的磁力计。角速度测量可选量程有250/s、500/s、1000/s、2000/s,加速度测量可选
32、量程有2g、4g、8g、16g,磁场测量量程为4800T,数据输出为十六位数据。基本功能及相应参数与mpu6050无异,对于本文所设计的独轮机器人亦是足够。从经济的角度分析,合理地利用闲置的资源减少经济浪费也不失为良计。故本文所设计的独轮机器人将放弃选用mpu6050模块,改用mpu9250模块。3.2 电机本文所设计的独轮机器人,体积较小,固使用的电机也需要体积较小。同时独轮机器人的平衡需要电机具有较强的爆发力,能及时作出相应的响应。在智能机器人中,有一款小型直流电机被经常性使用,这便是GA12-N20电机。GA12-N20电机使用的是直流电,电机控制简单,自带减速器,可减少很多的工作量,且
33、体积小扭矩大,可适用于很多地方。图3.2 GA12-N20直流电机图3.2是GA12-N20电机的实物图,电机的整体高度10mm,宽度12mm,长度25mm,输出轴10mm。可见该电机是一个非常小巧的电机。本文所设计的独轮机器人飞轮电机需要侧重转速,车轮电机负载较大侧重扭矩。所以,本文所设计的独轮机器人需要两种不同转速的电机。高转速的电机参数为:额定电压6V,额定转速1500r/min,额定扭矩0.02kgcm;低转速的电机参数:额定电压6V,额定转速340r/min,额定扭矩0.17kgcm。3.3 电机驱动独轮机器人的控制信号是由控制器产生的,而控制器的输出能力往往很有限,只能充当信号使用
34、。而电机的转动往往需要较大的电流,即使是迷你小电机也需要几十毫安到几百毫安的电流。这对于控制器而言实在太大,控制器不能够直接驱动电机旋转,需要外加一个驱动设备。GA12-N20电机是一款无刷的直流小电机,直流电机的控制可通过控制电压大小以达到控制转速的效果。由于独轮机器人的各个电机均需要做到可正转可反转,即需要电机驱动能够改变电压方向。图3.3 电机驱动电路图3.3所示的是一款简易的电机驱动电路。电路的核心是四个三极管,通过控制三极管的打开与关闭来达到控制电机的转动。当IN1输入为负,IN2输入为正:Q1三极管与Q4三极管打开,Q2三极管与Q3三极管关闭,电机的电流由A点流入,B点流出,电机正
35、转;当IN1输入为正,IN2输入为负:Q2三极管与Q3三极管打开,Q1三极管与Q4三极管关闭,电机的电流由B点流入,A点流出,电机反转。当IN1与IN2均为正,A点与B点相当于接地,电机停止旋转。图3.4 L298N模块实物L298N芯片,是由上述图3.3电路为基本原理封装起来的电机驱动芯片,图3.4是L298N模块实物图。L298N拥有两个全桥输出,可同时驱动两个电机。独轮机器人有两个核心电机,分别控制飞轮转动和车轮转动,L298N能刚好满足需求。表3.2 L298N基本信息类型双路全桥输出数4输出电流2A驱动电压5V-35V逻辑电压5V表3.2所示是L298N电机驱动芯片的基本信息。独轮机
36、器人使用的电机中额定电流最大的是0.15A,而L298N的电流输出达到2A,故L298N完全能够满足独轮机器人的需求。本文所设计的独轮机器人将使用L298N作为电机驱动芯片。3.4 电池电池的类型相对较少,大体上分为一次性电池和可充电电池。通常在电子设备极其廉价、使用寿命较短、使用频率较低或者耗电功率极小等情况才会考虑采用一次性电池,否则首选考虑可充电电池。本文所设计的独轮机器人显然不符合上述情况。独轮机器人不属于极低功耗的设备,使用一次性电池将会导致经常性更换电池,这会对环境造成较大污染。现今较为常用的可充电电池有两种。一种是较为老式的铅蓄电池,一种是常出现在电子设备上的锂电池。两种电池各有
37、特点。铅蓄电池的特点是价格便宜,鲁棒性强,铅蓄电池在充电的时候可以较为简单粗暴。在很多电子设备上的铅蓄电池充电电路连稳压恒流都不设计。充电电路简单地将家庭用电使用阻容降压,然后全桥整流便直接接到电池上给电池充电。充电电路连充电完成指示灯都不设计,充电情况全靠估计。即使如此粗暴对待,铅蓄电池依旧能保持较长的使用寿命。但铅蓄电池的能量密度较低,通常铅蓄电池显得特别笨重,这是它的一个较严重的缺点。因而在许多智能设备上,一般不会选择使用铅蓄电池。锂电池相比铅蓄电池优点是能量密度高、自放电率低,所以锂电池能做到比较小比较轻便。但锂电池同样存在着其他问题。相比铅蓄电池,锂电池实在娇气。不恰当的充电放电将会
38、导致锂电池寿命大减、膨胀甚至是爆炸。锂电池的充电比较麻烦,需要专用的电路为锂电池充电。锂电池充电一般分为三个阶段,第一阶段为涓流充电,该阶段是在电池长期放置使得电池已经完全没有电时进行的预充电。充电器将提供细小的恒定电流为电池充电,待电池恢复3.7V电压后进入第二个充电阶段。第二阶段为恒流充电,该阶段充电器将提供恒定电流进行充电,电流大小一般为0.1到1.5倍电池容量。当电池电压上升到4.2V后,进入最后的恒压充电阶段,该阶段充电器将提供4.2V恒定电压对电池进行充电,直到充电电流小于某个阈值,充电结束。尽管锂电池的充电相对麻烦,但是体积和重量是独轮机器人更不希望增加的。大的体积和重量将会造成
39、独轮机器人电机有很大负担,控制难度也将上升,这将得不偿失。且独轮机器人属于智能设备,有良好的智能电路,解决锂电池充电问题相对简单。因此,本文所设计的独轮机器人将选择型号为18650的锂电池作为电源。两节电池串联供电,单节电池容量为2800mAh。图3.5 18650锂电池实物图图3.5是本文所将要使用的18650锂电池实物图。18650锂电池是一款十分常用的圆柱形锂电池,其型号含义为直径18mm,高度650mm的圆柱形锂电池。21700锂电池比18650的体积更大,做工更好,价格相对18650高。本文所设计的独轮机器人使用18650锂电池即可。3.5 控制器现今的控制器有众多的类型。传统的有单
40、片机,有利用单片机做二次开发的PLC与arduino,还有性能接近家用计算机的树莓派。单片机中又有相对老式的八位、十六位单片机,有性能相对较好的三十二位单片机。控制器是智能产品中的核心的元件,控制器在设备中起到响应传感器的输入、处理数据、发出控制信号等作用。PLC又称为可编程逻辑控制器,PLC的产生是为了替代工业上继电器实现的逻辑控制。PLC相对单片机有抗干扰能力强、编程语言简单、电流输出能力较强等优点。但PLC的体积较大,价格也比较昂贵。实际上,PLC更适合在工业上的、大型设备的情况下使用。树莓派又名Raspberry Pi,事实上树莓派应该说是一个计算机。它是为了学习计算机编程教育而设计的
41、。因为现在有不少的科研工作者使用树莓派作机器人的控制器,故笔者在此将提到树莓派。树莓派是一个微型计算机,体积仅一个信用卡大小。树莓派需要安装系统才可使用,树莓派使用的是Linux系统。近期发布的Windows 10 IoT系统,使得树莓派可以使用上大家更为熟悉的Windows系统。树莓派尽管较小却五脏俱全,树莓派可以连接鼠标、键盘、显示器、摄像头、扬声器等外部设备。树莓派的性能优越,能处理大量复杂的数据、运行较大的程序、实现机器视觉。树莓派性能强悍,但其设计初衷是一台微型计算机,尽管可以通过I/O口控制外部设备,但如此使用树莓派作控制器难免会显得有些浪费资源。一般而言树莓派作为机器人控制器时,
42、往往是作上位机使用,仅进行复杂数据处理、运行核心算法。底层硬件控制会选择使用其他控制器实现。在高校中单片机是非常经常被使用到的控制器,高校学生中比较常用到的是51系列的单片机,其次为stm32的单片机。stm32是一款三十二位的单片机,处理能力较为强悍,因而受到开发者的青睐。但可惜的是实际上,高校中很多的项目往往并不需要如此高的处理能力,多数是大材小用。对于简单重复的工作,对响应速度要求不高的场合使用stm32单片机并不能体现出其优势。stm32单片机因为其强大的能力,也导致出现了一个弊端。该系列的单片机的使用比较麻烦,较多的功能意味着要进行较多的功能设定操作。51系列的单片机是一款比较老式的
43、单片机,在性能上几乎没有优势可言。但由于该系列的单片机在当时简单好用,所以被视为一款经典的单片机。往后发展的单片机在设计上延续了51系列优点,因而单片机入门者可选择从51系列入手。尽管直观上51系列的单片机没有优势,但因其经典、入门者首选、常被教科书使用等等原因。51系列的单片机隐含着其他方面的优势。51单片机使用简单,资源丰富,存在着大量的教程和源代码。而且51系列的单片机价格低廉。arduino也是由单片机再开发的一款控制器,使用C语言编程。arduino在实际使用的体验上,更接近于一款单片机,通常arduino的大小与一张银行卡相似。arduino诞生的初衷是为了得到一款廉价好用的控制器
44、,所以arduino的价格要比PLC廉价很多,但依然比单片机昂贵。arduino相对单片机而言具有许多优点。arduino在经过前人的努力后,许多常用的功能已经被封装成函数,可直接调用。在程序烧录上,arduino的编程软件可直接烧录,接线上直接使用数据线连接PC机即可进行通信。能通过串口监视器与串口绘图器实时获取arduino的数据。arduino相对于单片机而言体积稍大些,价格上也稍昂贵些。在独轮机器人中,控制器需要读取mpu9250的数据、对数据进行滤波、分析数据、发出控制信号。由于本文所设计的独轮机器人,控制需求相对比较简单。对运算能力相对而言要求较低,并不含有大型的复杂的程序需要运行
45、。因而笔者并不需要使用到性能高的控制器。与PC机不同。计算机的选购往往需要超过现在使用的性能要求,因计算机的使用时间较长,应用场景复杂具有很多不确定性,软件不断地迭代更新也将会对计算机性能有更高的要求。计算机的性能一旦跟不上需求,使用起来将会带来很多的麻烦,给使用者造成很多不愉快的地方。然而机器人控制器的性能选择往往是够用即可,高性能或许仅在后期改良更新功能的时候带来些许便利,过高的性能往往只会白白增加整机费用。机器人的功能往往是在设计时被一次性确定下来的,工作环境也不会有较大的改变。机器人通常是就一种实际需求,在相对单一的工作环境下,实现一些相对确定的工作。所以机器人的控制器不需要过高的性能
46、,适用即可。独轮机器人亦是如此,并不需要过度追求控制器的性能,只需要就实际使用情况进行分析,选择性能最合适价格较低廉的即可。结合上述分析,为使得开发简单,后期升级方便,本文所设计的独轮机器人将采用arduino uno作为控制核心。图3.6 arduino uno板实物图3.6是arduino的实物图,本文将使用该板作为独轮机器人的控制核心。4 控制系统设计4.1 mpu9250数据修正处理直接从mpu9250模块读取的数据是不可直接使用的,必须经过一定的处理。就像天平使用前需要校零,同样的电子陀螺仪在使用前也需要对其进行修正处理。由于制作的误差等原因,静止状态的电子陀螺仪读取的角速度数据一般
47、都不是零,而是在零附近的某个值,本文将称此值为偏差值。这并不表示电子陀螺仪检测到了角速度,实则是此电子陀螺仪以此数值来表示零角速度。大于此值则表示检测到于轴向相同的角速度,小于此值则表示检测到于轴向相反的角速度。加速度计同样存在上述问题,但不同的是加速度计还会受到重力的影响。水平方向的轴,在静止时不受重力影响。竖直向下的轴,在静止时读取的数据包含了一个重力加速度和一个偏差值。要正常使用mpu9250读取独轮机器人的姿态,需要先处理偏差值。对于角速度计处理,只需尽可能保持mpu9250模块处于静止状态。读取X、Y、Z三个轴向的角速度数据,即偏差值。并将此数据保存到程序中,往后每次读取角速度数据时
48、,均需要减去对应的偏差值即可。对于加速度计处理,先尽可能保持mpu9250模块处于静止状态,并且尽可能使得mpu9250的某两个轴如X轴、Y轴处于水平方向。读取两个水平方向的轴的加速度数据,即偏差值。再翻转mpu9250,使得另外一轴如Z轴尽可能处于水平方向且尽可能保持mpu9250模块处于静止状态。读取该轴的加速度数据,即偏差值。此时加速度计的各轴偏差值均已得到,将偏差值保存在程序中。往后每次读取加速度数据时,均需要减去对应偏差值即可。4.2 mpu9250数据滤波处理从mpu9250模块读取的数据经过修正处理后仍然不可直接使用。电子陀螺仪除了存在零点偏移,数据中还包含着大量复杂的噪声。这是电子电路常有的问题,对于存在噪声的信号,我们会对其进行滤波处理。滤波的含义是将信号中的某些特定频率的波形剔除的操作。噪声通常表现为高频率、无规律、振幅较小,相对而言信号常表现为低频率、有规律、振幅较大。由于噪声与信号的频率不同,我们便可以将噪声与信号分离。为解决传感器的噪声问题,人们找到了很多的滤波算法。