[B-巡线机器人] 河南赛区_B题巡线机器人_80%_郑州

  [复制链接]

1

主题

2

帖子

96

积分

一粒轻沙

Rank: 1

积分
96
查看: 6002回复: 5 发表于 2019-9-3 22:02:12   只看该作者
巡线机器人
摘要:本系统采用TI公司的MSP432P401R作为主控芯片,MPU6050传感器模块作为飞行姿态反馈机构,光流模块进行实时定点,激光和SPL06气压计模块实时采集对地高度数据,通过串口和I2C总线发送给主控芯片来处理,摄像头OpenMV模块主要用于图像信息采集,经STM32F765单片机分析处理并发送到MSP432P401R飞控核心,根据程序指令调节电机转速以达到任务要求。在飞行过程中,会抓拍一些特殊图像,并把数据存储到TF卡中,飞行结束后可以在显示装置上清晰显示。本系统可以实现定高飞行、巡线检测、故障识别以及负重悬停等功能。

关键字:四旋翼飞行器、无刷电机、负重定高、悬停、图像识别、信息采集、TF卡
一、系统方案 1.1 系统的概述
巡线机器人主要由主控MSP432最小系统部分、姿态采集与处理部分、电源供给部分、外围传感器模块等组成,根据要求完成悬停定点、定高飞行、异物报警、巡线抓拍、负重悬停等一系列任务,系统主要任务框图如图1.1所示。为了使飞行器能够精确的完成这些任务,我们对系统各功能模块进行了如下的方案选择与论证。

01.png


1.2 主控芯片的论证与选择
方案一:采用传统的51系列单片机。51单片机具有0-40MHZ的工作频率范围、ISP/IAP、片上集成1280字节的RAM、具有EEPROM功能、3个16位定时器、4路外部中断、通用异步串行口UART等特性。
方案二:采用TI公司的MSP432系列单片机。MSP432具有低功耗、高达48MHz 的系统时钟、四个16位定时器、两个32位定时器和一个RTC、最多八条串行通信通道(I2C、SPI、UART和 IRDA)等特性。
为了更好的达到设计的要求,选择方案二。

1.3 姿态采集模块的论证与选择
方案一:采用MMA7260+ENC-03M传感器。MMA72600加速度传感器含信号调理和温度补偿技术,而ENC-03M角度传感器可稳定测量角加速度值,但两传感器结合起来较为复杂,且需外加电路抑制噪声与温漂,有很大的局限性。
方案二:采用MPU6050传感器。MPU6050为3轴陀螺仪,它可实时测量飞行器的X轴、Y轴、Z轴加速度以及X轴、Y轴、Z轴旋转角度。MPU6050结构简单、体积小、可靠性强,而且具有自动姿态解算功能。
综合传感器使用环境的可靠性及使用的方便程度,选择方案二。

1.4 定高模块的论证与选择
方案一:采用SR-04传感器+SPL06气压计。SR-04超声波传感器测距范围为0-150cm,误差为3cm,误差约为0.3%,测距范围也符合题目要求。使用气压计获取高度信息,不受角度影响且测量范围很大,但有浮动误差,需进行运算才能保证较高精度。
方案二:采用激光传感器+ SPL06气压计。激光传感器用于对快速移动物体的探测和快速移动物体对周边环境的探测,其速度、精度和探测距离都很不错,使用光学测量,增加阳光下的测距性能,主要特点是测速快、体积小、重量轻、功耗小、成本低。
综合定高的稳定性和环境适应性等要求,选择方案二。

1.5 电机驱动的论证与选择
方案一:空心杯电机。空心杯电机具有功率密度高、无转矩滞后、速度曲线平滑,噪音小、散热效果好等优点。使用空心杯电机的飞行器不需要电调驱动,但荷载能力差。
方案二:无刷电机。无刷直流电机体积小、高效率、稳态转速误差小,非常适合四旋翼飞行器这种高敏调速转向,通过电调的通断,达到放大驱动电流控制电机的转速,电调调节要根据不同的机架进行。我们选用响应速度比较快的四轴专用电调 flycolor(飞盈佳乐)F-30A 无刷电子调速器,承受电流30A。
针对机架又考虑到荷载能力,选择方案二。

二、设计与论证

2.1 MPU6050的描述与计算
MPU6050是一种应用非常广泛的6轴加速度计,其测量数据受外界影响很大,如电机振动或外界噪声等,故采用非矩阵卡尔曼滤波算法,这种算法的优点非常明显,特别是在白噪声数据处理方面有明显效果,故本系统采取该算法进行计算。


2.2 姿态解算的描述与计算
姿态解算是飞行器自稳功能的核心,陀螺仪在飞行器静止时会产生漂移误差。因此,首先需要获得陀螺仪的数据,并根据此数据换算得到四元数姿态,这些姿态参数就是卡尔曼滤波中姿态的估计值,然后通过加速度计和罗盘计算出的数据得到另外一组姿态参数,将这组参量作为测量值,就可以得到相对准确的姿态数据,之后用四元数计算欧拉角,并把结果放入到控制器中计算电机的控制结果。计算过程如图2.1所示。

02.png

2.3 串级PID的描述与计算
经四元数转换后获得的欧拉角与陀螺仪测量获得的角速度相互融合,然后进行串级PID控制,串级PID控制中外环为欧拉角,一般为5ms循环执行一次;内环作为陀螺仪实时获得的角速度,一般2.5ms循环执行一次。外环设定值为MSP432P401R的指令值,内环的设定值则是外环的输出值。通常内环的角速度控制无静态误差,因此内环常常采用PID控制,以防测量误差对自稳系统造成较大影响。串级PID控制如图2.2所示。

03.png

数学模型为:
K[sub]p[/sub]:比例增益,K[sub]i[/sub]:积分增益,K[sub]d[/sub]:微分增益,e:误差= 设定值-回授值,t:目前时间,

04.png
2.4 OpenMV 的描述与计算
OpenMV 通过摄像头采集到图片,经 STM32F765 单片机分析图片中的线段、二维码以及色块,进而获得其类型,把类型数据发送给 MSP432P401R,根据不同的类型执行悬停、巡线、抓拍等功能。

三、 电路与程序 设计
巡线机器人包含电路设计以及程序设计等两大部分,其中程序设计是其核心,程序设计的优劣直接关系到系统能否安全稳定运行。

3.1 电路的设计
(1)系统总体框图如图 3.1 所示。
05.png
(2)系统总体电路原理图如图 3.2 所示。
(3)SPL06 气压计原理图如图 3.3 所示。
(4)电机驱动电路原理图如图 3.4 所示。
(5)MPU6050 模块电路原理图如图 3.5 所示。
06.png

07.png
08.png

3.2 程序设计
程序设计采用模块化设计,各功能函数经过主函数进行调用,程序首先是初始化,当启动键按下后通过调用函数执行相应功能模块的程序。
根据巡线机器人程序设计要求,使软件设计实现飞行器的一键起飞、负重悬停、定高飞行和绕杆抓拍等功能。负重悬停流程图如图 3.6 所示,巡线绕杆


09.png

巡线机器人的程序设计思路为控制器上电、延时启动、电源电压检测等。延时启动减少电源波动对系统的干扰,然后定时器设定飞行器的四个电机接收的 PWM 周期、串行通信口初始化,并在中断服务程序中接收 MPU6050 模块发送的数据。程序初始化完成后,自稳功能模块可自动设定目标姿态、循环检测 MPU6050数据是否完成接收,如果有效的姿态数据被接收到,程序就进入姿态控制函数。在姿态控制函数中可利用飞行器的 Roll(翻滚)、Pitch(俯仰)数据,结合模糊控制算法,计算出不同姿态时,每个无刷电机需要的调整量以补偿 PWM 波形偏差,这样不断地接受姿态数据,解算数据,调整量输出,使巡线机器人可以进行稳定的飞行。

10.png

查看完整附件请下载:
2019年全国大学生电子设计竞赛论文---最终版1.0.pdf (935.72 KB, 下载次数: 232)

打赏

参与人数 1赫兹币 +5 收起 理由
zzgcjsxy + 5

查看全部打赏

150

主题

446

帖子

1961

积分

审核员

Rank: 9Rank: 9Rank: 9

积分
1961
发表于 2019-9-4 13:13:59   只看该作者
谢谢分享

43

主题

241

帖子

509

积分

单晶硅锭

Rank: 3Rank: 3

积分
509
发表于 2019-9-6 09:21:44   只看该作者
谢谢楼主分享

1

主题

2

帖子

96

积分

一粒轻沙

Rank: 1

积分
96
发表于 2019-9-15 21:08:21   只看该作者

不用客气 相互学习

1

主题

5

帖子

281

积分

二氧化硅

Rank: 2

积分
281
发表于 2021-10-27 20:12:43   只看该作者
太棒了。要是有代码就更好了

打赏

参与人数 4赫兹币 +20 收起 理由
shenweizuibang + 5
JTao + 5
bly + 5
blueblues + 5

查看全部打赏

12

主题

49

帖子

1361

积分

单晶硅锭

Rank: 3Rank: 3

积分
1361
发表于 2021-10-27 20:37:14   只看该作者
感谢分享

打赏

参与人数 12赫兹币 +52 收起 理由
RHAnthony + 5
hw123456 + 5
csj0710 + 5
zombiejbt + 5
hu158 + 1
fu188 + 1
mei187 + 5
lithiumice + 5
blueblues + 5
bly + 5
JTao + 5
shenweizuibang + 5

查看全部打赏

快速回复 返回顶部 返回列表