基于视觉导航两轮平衡车的设计大学论文.docx
- 文档编号:29701682
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:58
- 大小:3.65MB
基于视觉导航两轮平衡车的设计大学论文.docx
《基于视觉导航两轮平衡车的设计大学论文.docx》由会员分享,可在线阅读,更多相关《基于视觉导航两轮平衡车的设计大学论文.docx(58页珍藏版)》请在冰豆网上搜索。
基于视觉导航两轮平衡车的设计大学论文
机械工程学院毕业设计(论文)
题目:
基于视觉导航两轮平衡车的设计
专业:
机械电子工程
基于视觉导航两轮平衡车的设计
摘要:
本论文旨在研制一种单轴双轮平衡车并实现视觉导航辅助驾驶。
该系统的研究分为两部分,第一部分就是通过姿态传感器和姿态算法,补偿陀螺仪漂移误差和加速度计动态噪声误差得到系统角度角速度以达到平衡直立的目的;第二部分就是关于机器视觉的研究和视觉导航和辅助驾驶。
第一部分:
双轮平衡车实现原理就是通过系统的姿态传感器(陀螺仪和加速度计)监测车体当前的俯仰状态和俯仰变化率状态(即为角度和角度度),由MCU计算处理驱动电动机向前或者向后的加速度实现车体平衡的效果。
对于姿态监测,单独使用角速度传感器(陀螺仪)或者加速度传感器都是不能提供有效的信息保持车体直立,本论文基于互补滤波通过角速度传感器和加速度传感器进行角度融合,补偿陀螺仪漂移和加速度传感器动态噪声,估计最优俯仰状态。
对于车体的直立控制、速度控制和方向控制,我们都要求准确性、稳定性、强劲性等特点,应用最普遍的就是PID算法。
本论文通过车体当前运行状态下的直立偏差、速度偏差、方向偏差的比例、积分和微分(即为PID调节器),配合控制理论线性系统叠加原理最终对车体的左右电机进行控制。
第二部分:
本论文通过CMOS摄像头采集路况实时信息,并对实时路况信息进行运算处理,识别出道路元素最终以车体转向的方式达到视觉导航。
关键字:
平衡车陀螺仪加速度计互补滤波PIDCMOS
一、绪论:
随着国民生活质量的提高、国内高新技术的发展,特别是嵌入式技术和机器人技术的发展,人民迫切希望更加智能更加方便的交通工具得到发明。
为此,本论文研究一种单轴双轮平衡代步车以及视觉导航技术实现辅助驾驶。
1.1研究背景:
近年来,国内机器人技术空前发展,机器人应用的领域也在不断扩大,当然机器人所面临的环境和所需要执行的任务也是越来越复杂。
特别是在一些危险地带或者空间狭小人类无法触及的地方,机器人是一个很好的选择。
无论是因为何种目的而设计的机器人都是朝着人民生活水平不对安提高的层次进行,为此一种两轮平衡代步车的概念被提出。
1.2研究意义:
两轮代步车是一个多变量、非线性的复杂不稳定系统。
其运动环境复杂、运动学方程非完整约束,控制任务具有一定的复杂性。
但是双轮代步车具有结构简单、运动灵活、适合在小空间内运动等特点,具有一定的应用前景。
为了让代步车朝着智能化发展,迫切需求其可以辅助驾驶,甚至自动驾驶,为此我们需要研究机器视觉及图像处理方面的理论。
1.3现状分析:
1.3.1国外现状:
2002年,没过Lego公司设计了Legway。
引入了电机差动驱动,可以再斜面或者不规则表边上运动。
可以遥控操作,通过对电机的遥控可以再运动的时候保持平衡并可以实现原地转弯。
2007年,日本早稻田大学研制出了NXTway。
2002年,美国Segway公司开发了世界上第一部能够自平衡的两轮电动车。
该电动车精心设计了机械机构并通过检测车体的角度和角速度,通过CPU处理运算控制电机前后加速运动的回复力保持车体平衡。
Segway使用的是航空级陀螺仪、一组倾斜传感器、一套复杂的“直觉软件”、一个加速度计、十个微处理器、两个镍氢电池组、一台电动机和每秒检测一百多次驾驶者重心的传感器。
Scgway共有五个陀螺仪传感器,其中三个来检测前、后和左右方向的倾斜,另外两个传感器作为冗余,以增加安全性。
传感器收集的信息被传送到主控芯片,它由两个电子控制器电路板构成。
电路板包括一个微处理器的集群(德州仪器的DSP芯片)。
这种集群的运算效率是普通PC的三倍,以保证车身能得到及时而高度精确的微调来防止倾倒。
如果一个电路板出了毛病,另一个会立即接管所有的功能,以便让驾驶者能够安全地停下。
在最高层次,主控芯片运行“直觉软件”控制Segway,软件会实时分析所有信息,调整电动机的速度。
1.3.2国内现状:
中国科学技术大学研究出了自平衡两轮代步电动车,它是一种两轮式左右并行布置结构的具有自平衡系统的电动车。
在车体内嵌入式CPU的控制下,采集平衡传感器以及速度、加速度传感器的数据,通过一定的控制算法,计算输出PWM信号控制两个伺服电机的转矩,使车体保持平衡并能够根据人体重心的偏移,自动前进、后退及转弯。
哈尔滨工程大学也有类似的双轮直立自平衡机器人,该系统采用两块Cygnal公司推出的C8051单片机和人机交互的上位机作为控制核心。
车体倾斜角度检测采用AD公司推出的双轴加速度传感器ADXL202及反射式红外线距离传感器。
利用PWM技术动态控制两台直流电机的转速。
上位机与机器人间的数据通信采用迅通生产的PTR2000超小型超低功耗高速无线收发MODEM。
人机交互界面采用240*128图形液晶点阵、方向摇杆及按键。
基于这些完备而可靠的硬件设计,使用了一套独特的软件算法,实现了该系统的平衡控制。
同时,关于辅助驾驶技术,国内也有很好的发展。
远光灯辅助系统:
当摄像系统发现前方800m内没有其他车辆时,则自动地转换到远光灯行驶。
若再次有车辆进入这一范围时,则远光灯的照射距离又会自动缩小。
车道偏离报警和车速限制识别系统:
在车速监控中,计算机根据摄像数据提供路边限速标志的图像。
它检测树立在路边的所有圆形标牌,而把不是圆形的标牌图像过滤掉,然后对剩下的图像数据与保存的限速标志图像进行对比,最后只留下带有车速限制的交通标志。
辅助系统马上把车速限制的图像显示出来,而且显示的时间长短根据限速标志的有效区间而定。
在卫星导航系统的电子地图上,将对各个居民点进行测定,当检测到进入居民点后即自动地显示出允许的车速,如50km/h——即使是没有明显的限速标志时。
车道偏离报警系统用摄像机不断地采集着道路标线。
车载计算机计算着车辆的位置,并判断车辆是否会偏离车道。
当驾驶员感觉到手中的方向盘在振动时,表示车道偏离系统在报警。
1.4本论文研究的内容:
1、系统硬件选择电路原理图搭建。
2、电机控制技术PWM和算法PID的研究和在平衡车系统中的应用。
3、姿态传感器的使用,包括陀螺仪加速度计的介绍和使用方法的研究。
4、姿态算法的研究,包括互补滤波将传感器数据融合得到可靠的倾角估计的算法研究。
5、CMOS摄像头的介绍和使用以及算法的研究。
6、CMOS摄像头在视觉导航中的使用及研究。
7、系统整体的软件设计平衡系统的控制软件设计。
二、整体方案设计:
在整体方案设计中,分为这么几个模块:
1、硬件方案设计:
硬件方案包括电源设计、MCU最小系统及外围电路设计、电机驱动设计、陀螺仪加速度计传感器外围电路设计、CMOS摄像头设计、人机接口电路设计(包括输入设备和输出设备)。
2、软件方案设计:
软件方案设计包括MCU的配置、传感器陀螺仪加速度计的信号采集、数据融合算法设计、PWM技术的软件实现、PID算法实现、CMOS摄像头软件设计、视觉导航算法设计。
3、人机接口及调试接口调试软件设计:
包括输入输出设备(按键、TFT液晶等)和PC上位机软件设计。
2.1整体概述:
对于基于视觉导航的两轮平衡车,我们可以对整个系统进行研究将系统分为几个模块实现模块化研究,使系统的稳定性得到大幅提高。
我们可以将车体分为平衡系统、速度系统和转向系统。
对于平衡系统,我们可以控制左右电机的正反向加速运动使系统保持平衡。
对于速度系统,我们需要对系统的速度进行测量并精确控制系统的速度,实际上是调节系统的姿态实现速度控制,最后还是演变为通过控制电机实现控制速度。
对于转向系统,通过控制左右电机的差速,控制系统的转向。
2.2硬件设计:
2.2.1电源设计:
电源模块是整个系统比较重要的单元,如果电源不稳定就可能导致系统死机、复位等症状。
根据此系统的需要,系统由24V电源供电,本系统需要三种电压,分别是电机供电24V、MCU供电陀螺仪加速度计供电3.3V、编码器等供电5V。
主要设计如下:
1、采用稳压芯片LM2940将24V电源电压稳压至5V,给摄像头、编码器等外围设备供电。
2、采用稳压芯片LM1117将5V电源稳压至3.3V,给MCU、陀螺仪加速度计等供电。
3、本供电系统同时采用了大量电容滤波,保证电源电压稳定,防止系统崩溃。
MCU最小系统及外围电路设计:
MK60FX512VLQ15MCU简介:
MK60FX512VLQ15是以ARMCortex-M4F内核设计,外围设备丰富,具有Highspeedanalog-to-digitalconverter、FlexTimers、Lowpowertimer、Periodicinterrupttimer、CAN、Serialperipheralinterface、Inter-integratedcircuit(I2C)、UART等设备。
是飞思卡尔公司专业汽车电子嵌入式MCU。
ARMCortex-M4FCore是ARM公司基于ARMv7构架的内核,精简指令集(RISC)具有DSP内核和FPU硬件浮点单元。
对于复杂的控制算法具有很好的运算性能。
2.2.2复位电路设计:
MK60FX512VLQ15MCU是低电平复位,因此复位电路设计如下:
本系统复位电路采用简单的阻容复位电路,应用简单。
阻容复位可以再系统上电的时候自动复位MCU,同时在系统死机或者想要系统重新启动的时候可以按下复位按键使系统复位。
具体原理如下:
由于阻容串连电路中电容C46两端电压不能突变,因此在上电时,RST端会维持一段时间的低电平起到低电平复位信号的作用,随着v3.3电源通过电阻R23向电容C46充电,C46两端的电压差逐渐增大,经过一段时间后变为高电平,上电复位信号结束。
当需要手动复位时按下按键S1,电容C46两端被短路放电,按键松开后RST端仍会维持一段时间的低电平起到低电平复位信号的作用,随着Vcc电源通过电阻R23向电容C46充电,C46两端的电压差逐渐增大,经过一段时间后变为高电平,手动复位信号结束。
2.2.3MCU电源设计:
MK60FX512VLQ15MCU是3.3V供电,因此电源设计如下:
通过稳压芯片LM2940将电源电压稳压至5V再通过LM1117将5V稳压至3.3V给MCU供电。
晶体电路设计:
MK60FX512VLQ15MCU时钟电路包括两部分,一个是芯片的主晶振给PLL提供时钟,用于产生芯片和外设所需要的工作时钟;另外一个是实时时钟RTC的时钟电路,实时时钟(RTC-RealTimeClock)提供一套计数器在系统上电和关闭操作时对时间进行测量需要主晶体,因此电路设计如下:
MK60FX512VLQ15MCU时钟系统如下:
2.2.4调试接口JTAG电路设计:
MK60FX512VLQ15MCU使用的是ARMCortex-M4F内核,该内核内部集成了联合测试行为组织JTAG接口,通过JTAG接口可以实现程序下载和调试功能。
JTAG(JointTestActionGroup;联合测试工作组)是一种国际标准测试协议(IEEE1149.1兼容),主要用于芯片内部测试。
现在多数的高级器件都支持JTAG协议,如DSP、FPGA器件等。
标准的JTAG接口是4线:
TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。
JTAG标准定义了一个串行的移位寄存器。
寄存器的每一个单元分配给IC芯片的相应引脚,每一个独立的单元称为BSC(Boundary-ScanCell)边界扫描单元。
这个串联的BSC在IC内部构成JTAG回路,所有的BSR(Boundary-ScanRegister)边界扫描寄存器通过JTAG测试激活,平时这些引脚保持正常的IC功能。
JTAG引脚定义:
TCK——测试时钟输入;
TDI——测试数据输入,数据通过TDI输入JTAG口;
TDO——测试数据输出,数据通过TDO从JTAG口输出;
TMS——测试模式选择,TMS用来设置JTAG口处于某种特定的测试模式。
TRST——测试复位,输入引脚,低电平有效。
2.2.5电机驱动模块电路设计:
此视觉导航平衡车系统采用24V直流电机,为此设计了一块基于BTS7970B的电机驱动。
电路设计如下图:
此电机驱动采用了英飞凌公司的BTS7970B电机驱动芯片。
该芯片具有PWM频率高,输出方波稳定,具有自动保护功能。
同时内部使用MOS管设计,导通电阻小,导通电流大。
2.2.6陀螺仪加速度计电路设计:
此视觉导航平衡车系统采用MPU6050陀螺仪加速度计集成芯片。
MPU-6050整合了3轴陀螺仪、3轴加速器,并含可藉由第二个I2C端口连接其他厂牌之加速器、磁力传感器、或其他传感器的数位运动处理(DMP:
DigitalMotionProcessor)硬件加速引擎,由主要I2C端口以单一数据流的形式,向应用端输出完整的9轴融合演算技术InvenSense的运动处理资料库,可处理运动感测的复杂数据,降低了运动处理运算对操作系统的负荷,并为应用开发提供架构化的API。
MPU-6050的角速度全格感测范围为±250、±500、±1000与±2000°/sec(dps),可准确追踪快速与慢速动作,并且,用户可程式控制的加速器全格感测范围为±2g、±4g±8g与±16g。
产品传输可透过最高至400kHz的IC或最高达20MHz的SPI(MPU-6050没有SPI)。
MPU-6000可在不同电压下工作,VDD供电电压介为2.5V±5%、3.0V±5%或3.3V±5%,逻辑接口VVDIO供电为1.8V±5%(MPU6000仅用VDD)。
MPU-6000的包装尺寸4x4x0.9mm(QFN),在业界是革命性的尺寸。
其他的特征包含内建的温度感测器、包含在运作环境中仅有±1%变动的振荡器。
电路设计如下图:
2.2.7CMOS摄像头电路设计:
摄像头一般具有视频摄像/传播和静态图像捕捉等基本功能,它是借由镜头采集图像后,由摄像头内的感光组件电路及控制组件对图像进行处理并转换成电脑所能识别的数字信号,然后借由并行端口或USB连接输入到电脑后由软件再进行图像还原。
摄像头的工作原理:
景物通过镜头(LENS)生成的光学图像投射到图像传感器表面上,然后转为电信号,经过A/D(模数转换)转换后变为数字图像信号,再送到数字信号处理芯片(DSP)中加工处理,再通过USB接口传输到电脑中处理,通过显示器就可以看到图像了。
此视觉导航平衡车系统采用比亚迪公司的CMOS摄像头BF3003U,比亚迪公司提供各类CMOS,CCD图像处理解决方案,产品涉及手机摄像头模组,笔记本摄像头模组,安防摄像头,车载摄像头及光电导航模块等。
BF3003U是一款车载摄像头。
电路设计如下图:
2.3软件设计:
硬件电路设计是系统功能实现的保证,软件设计是系统控制理论的实现。
本系统采用IARSystems公司的IAREnbeddedWorkbenchforarm集成开发环境。
IAREnbeddedWorkbenchforarm适用于嵌入式系统的设计、开发和测试的每一个阶段,IAREnbeddedWorkbenchforarm含有很多模块,包括:
带有C/C++编译器和调试器的集成开发环境(IDE)、实时操作系统和中间件、开发套件、硬件仿真器以及状态机建模工具。
2.3.1MCU需要使用的资源配置:
此视觉导航平衡车系统采用飞思卡尔MK60FX512VLQ15MCU,MK60FX512VLQ15是以ARMCortex-M4F内核设计,具有IEEE1558以太网,全速和高速USB2.0On-The-Go带设备充电探测、硬件加密以及防篡改探测能力,具有丰富的模拟、通信、定时和控制外设、单精度浮点单元、NAND闪存控制器和DRAM控制器,如Highspeedanalog-to-digitalconverter、FlexTimers、Lowpowertimer、Periodicinterrupttimer、CAN、Serialperipheralinterface、Inter-integratedcircuit(I2C)、UART等设备,从144LQFP封装256KB闪存开始可扩展到256MAPBGA1MB内存。
是飞思卡尔公司专业汽车电子嵌入式MCU。
ARMCortex-M4FCore是ARM公司基于ARMv7构架的内核,精简指令集(RISC)具有DSP内核和FPU硬件浮点运算单元。
对于复杂的控制算法具有很好的运算性能。
软件设计分为PWM输出模块、陀螺仪加速度计采集模块、周期中断定时器模块、互补滤波算法及平衡控制模块、速度采集及速度控制模块、CMOS摄像头采集处理算法及转向模块。
2.3.2PWM(PulseWidthModulation)输出模块:
脉宽调制(PWM)基本原理:
控制方式就是对逆变电路开关器件的通断进行控制,使输出端得到一系列幅值相等的脉冲,用这些脉冲来代替正弦波或所需要的波形。
也就是在输出波形的半个周期中产生多个脉冲,使各脉冲的等值电压为正弦波形,所获得的输出平滑且低次谐波少。
按一定的规则对各脉冲的宽度进行调制,即可改变逆变电路输出电压的大小,也可改变输出频率。
PWM控制电机原理:
利用MCU的PWM端口,固定PWM的周期,通过改变PWM的占空比,从而控制输出的电压。
以达到控制速度的目的。
通过MK60FX512VLQ15MCU内部的FTM模块可以实现脉宽调制波形(PWM)输出。
具体的配置如下:
FTM0->MODE|=FTM_MODE_WPDIS_MASK;
FTM0->MODE&=~FTM_MODE_FTMEN_MASK;
FTM0->QDCTRL&=~FTM_QDCTRL_QUADEN_MASK;
FTM0->SC&=~FTM_SC_CPWMS_MASK;
FTM0->CONTROLS[0].CnSC=0;
FTM0->CONTROLS[0].CnSC|=(FTM_CnSC_MSB_MASK|FTM_CnSC_ELSB_MASK);
FTM0->CONTROLS[1].CnSC=0;
FTM0->CONTROLS[1].CnSC|=(FTM_CnSC_MSB_MASK|FTM_CnSC_ELSB_MASK);
FTM0->COMBINE&=~FTM_COMBINE_DECAPEN0_MASK;
FTM0->COMBINE&=~FTM_COMBINE_COMBINE0_MASK;
FTM0->CONTROLS[2].CnSC=0;
FTM0->CONTROLS[2].CnSC|=(FTM_CnSC_MSB_MASK|FTM_CnSC_ELSB_MASK);
FTM0->CONTROLS[3].CnSC=0;
FTM0->CONTROLS[3].CnSC|=(FTM_CnSC_MSB_MASK|FTM_CnSC_ELSB_MASK);
FTM0->COMBINE&=~FTM_COMBINE_DECAPEN1_MASK;
FTM0->COMBINE&=~FTM_COMBINE_COMBINE1_MASK;
FTM0->CONTROLS[0].CnV=(((FTM0->MOD)*(PWMDuty))/1000);
FTM0->CONTROLS[1].CnV=(((FTM0->MOD)*(PWMDuty))/1000);
FTM0->CONTROLS[2].CnV=(((FTM0->MOD)*(PWMDuty))/1000);
FTM0->CONTROLS[3].CnV=(((FTM0->MOD)*(PWMDuty))/1000);
2.3.3陀螺仪加速度计采集模块:
此视觉导航平衡车系统采用MPU6050陀螺仪加速度计集成芯片,MPU-6050整合了3轴陀螺仪、3轴加速器,并含可藉由第二个I2C端口连接其他厂牌之加速器、磁力传感器、或其他传感器的数位运动处理(DMP:
DigitalMotionProcessor)硬件加速引擎,由主要I2C端口以单一数据流的形式,向应用端输出完整的9轴融合演算技术InvenSense的运动处理资料库,可处理运动感测的复杂数据,降低了运动处理运算对操作系统的负荷,并为应用开发提供架构化的API。
I2C(Inter-IntegratedCircuit)总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。
是微电子通信控制领域广泛采用的一种总线标准。
它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。
I2C总线支持任何IC生产过程(CMOS、双极性)。
通过串行数据(SDA)线和串行时钟(SCL)线在连接到总线的器件间传递信息。
通过MK60FX512VLQ15MCU内部的I2C模块可以实现对MPU6050的采集。
具体的配置如下:
配置I2C:
SIM_SCGC4|=SIM_SCGC4_I2C0_MASK;
PORTB_PCR2=PORT_PCR_MUX
(2);
PORTB_PCR3=PORT_PCR_MUX
(2);
I2C_F_REG(I2Cx[i2cn])=I2C_F_MULT(mult)|I2C_F_ICR(scl_dev);
I2C0_C1=I2C_C1_IICEN_MASK|I2C_C1_TXAK_MASK;
配置MPU6050:
i2c_writeaddr(I2C_Moudle,ADDRESS,MPU6050_PWR_MGMT_1,0x00);
i2c_writeaddr(I2C_Moudle,ADDRESS,MPU6050_PWR_MGMT_2,0x00);
i2c_writeaddr(I2C_Moudle,ADDRESS,MPU6050_CONFIG,0x06);
i2c_writeaddr(I2C_Moudle,ADDRESS,MPU6050_GYRO_CONFIG,0x08);
i2c_writeaddr(I2C_Moudle,ADDRESS,MPU6050_ACCEL_CONFIG,0x08);
读取姿态数据:
ACCEL_Z=((int16)i2c_readaddr(I2C_Moudle,ADDRESS,ACCEL_ZOUT)<<8)
|(int16)i2c_readaddr(I2C_Moudle,ADDRESS,ACCEL_ZOUT+1);
GYRO_X=((int16)i2c_readaddr(I2C_Moudle,ADDRESS,GYRO_XOUT)<<8)
|(int16)i2c_readaddr(I2C_Moudle,ADDRESS,GYRO_XOUT+1);
2.3.4周期中断定时器模块:
此视觉导航平衡车系统需要运行多任务,比如速度控制、姿态算法、平衡控制、转向控制、等。
因此我们需要简要的实现任务切换算法,所以我们需要使用周期中断定时器实现任务切换算法。
周期中断定时器配置如下:
SIM->SCGC6|=SIM_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 视觉 导航 平衡 设计 大学 论文