APP下载

基于PID算法的巡逻无人机

2022-11-17刘新宇桑晨李媛媛游璧铭刘畅

现代信息科技 2022年20期
关键词:原理图卡尔曼滤波遥控

刘新宇,桑晨,李媛媛,游璧铭,刘畅

(东南大学成贤学院,江苏 南京 210088)

0 引 言

随着科技的飞速发展,几乎各项技术的发展都涉及到了人工智能技术领域。无人机作为新时代人工智能技术的产物应运而生,在国防、农业、植保、交通运输等领域得到了广泛的应用。四轴无人机,又称四旋翼飞行器。四轴无人机稳定性高、便于控制、使用难度不大。随着微机电控制技术的发展,常用于监控、航空摄影、测量地形等,四轴无人机在民用无人机领域受到了广泛的关注与认可。

当前信息时代,人工智能技术让我们的生活更加便利。巡逻对于治安人员与巡警而言并不是一件易事,需要大量的人力资源和时间资源,传统人力巡逻方式无法及时发现危机并进行处理,监控所能够监视的范围也有一定的限制性。为减轻巡逻人员负担,提高巡逻效率,增强环境安全性,我们想出结合单片机,设计一个可寻迹的大范围实时监控的基于PID 算法的巡逻无人机。我们对无人机的硬件模块和软件模块分别进行设计,所设计的巡逻无人机成本低,精确度高,飞行费用低,机动灵活,功能多样化,具有极大的优越性。

1 硬件模块

1.1 系统总体设计

巡逻无人机主要使用STM32 主控进行总体设计,分别对MPU6050 传感器模块、nRF24L01 通信模块、无刷电极驱动和ESP32-cam 摄像模块进行设计控制,再使用自制遥控手柄实现与主控之间的通信。

首先使用姿态传感器采集相关数据,并将数据通过通信模块传输到主控上。主控对数据进行处理后产生四路PWM值,从而完成对无刷电机的驱动控制,实现巡逻无人机的飞控;然后操纵自制遥控手柄,对手柄的数值进行数据输出,再通过通信模块发送数据回电脑端,电脑端进行数据处理后发送给无人机主控,使巡逻无人机进行飞行调整;最后通过主控给摄像模块供电,实现图像传输功能。

图1 硬件流程图

1.2 主控模块(飞控+遥控)

1.2.1 飞控端

本设计选用了STM32F103C8T6 作为主控芯片,设计原理图如图2所示。STM32 无人机主控主要负责接收、处理数据和进行供电。

图2 飞控端模块设计原理图

主控端接收通信模块传输的姿态解算值后,对数据进行PID 算法处理,再通过主控定时器发送四路PWM 值驱动控制电机,完成对巡逻无人机的飞行控制;主控端可以通过通信模块接收自制遥控手柄的ADC 值与按键值,再将数据传输到电脑端,由电脑处理数据后再传输到无人机端,实现巡逻无人机上下左右移动的调整,完成遥控功能;主控端还可以给摄像模块提供5 V/2 A 稳压源。

1.2.2 遥控端

遥控模块采用灵动MM32SPIN27PS 为主芯片进行自制PCB 板设计,原理图如图3所示。

图3 摇控端模块设计原理图

遥控器端使用控制手柄和按键给无人机发送飞行指令,再通过通信模块将ADC 值和按键值传输到电脑端和无人机端。本设计中巡逻无人机的遥控部分功能作用有两个:在巡逻无人机循迹前,使用遥控手柄让无人机按照所要求的路线飞行,通过MM32 主芯片的ADC 口PA0,PA2,PA3,PA5获取ADC 值和IO 口PA15,PA1,PD6,PD7 获取按键值,并将数据传输给STM32 主控,主控端将数据处理成无人机端可以识别的信号,给巡逻无人机制定一条飞行路线,并通过UART 口将姿态数据传输给电脑端,让无人机实现初步自动循迹功能;遥控部分的另外一个功能是调整巡逻无人机的飞行状态。操纵遥控手柄,将得到的ADC 和按键值通过通信模块直接传输到电脑端,进行数据处理后传输回STM32主控,完成对巡逻无人机飞行的状态进行及时调整。

1.3 传感器模块(MPU6050+摄像头)

1.3.1 MPU6050

本设计选用MPU6050 芯片作为传感器模块原理图如图4所示,主要负责进行巡逻无人机飞行时的加速度和角速度数据采集。

图4 传感器模块设计原理图

由于地球重力垂直向下,所以我们将芯片正面朝下嵌入无人机框架来获取以重力加速度作为参考的无人机当前飞行状态的三个轴向上的加速度值;而无人机飞行状态的角速度值采集,则是应用到了传感器模块的陀螺仪。将采集到的加速度和角速度值通过I2C 通信协议传输到主控模块,再对加速度和角速度进行PID 算法及姿态解算,使得定时器输出四路PWM 值完成对无刷电机的驱动控制,实现巡逻无人机的飞行控制。其中,由于大量数据的接收会夹杂大量的噪音影响输出结果,所以需要滤波来消除噪声。本设计所使用的是卡尔曼滤波来实现此功能。

1.3.2 摄像模块

本设计使用ESP32-CAM 实现无人机与电脑间的图像通信。将图像实时传输到电脑端,实现巡逻无人机的实时大范围监控功能。给ESP32-CAM 芯片提供5V/2A 的稳压电流源供电,再使用串口助手接收摄像模块,当模块连接Wi-Fi之后,串口上会收到视频的IP 地址,在浏览器中输入对应的IP 地址就可以获得摄像头的实时传输图像,实现无人机与电脑间的图像通信。

2 软件模块设计

2.1 总体设计思路

2.2 卡尔曼滤波与姿态解算

卡尔曼滤波的基本思想是综合利用上一次的状态和测量值来对物理量的状态进行预测估计。对于状态估计算法而言,我们可以获取状态量的三个值:状态预测值、最优估计值以及真实值,卡尔曼滤波的原理就是利用卡尔曼增益来修正状态预测值,使其逼近真实值。对卡尔曼滤波的推导过程,第一个过程分为状态估计协方差Pk 的推导,即代价函数的求取;第二步则是卡尔曼增益矩阵及其他规则的推导,最后则是针对这些参数进行整合。

图5 软件流程图

飞控需要进行姿态估计,通过传感器进行惯性测量单元(IMU)进行测量姿态值。MCU 通过读取姿态传感器数据计算出姿态角的过程称为姿态计算,这是无人机飞控的关键之处。本设计中姿态计算程序主要是把MOU6050 读取出来的数据值进行互补滤波处理最终得到欧拉角度值。无人机在空间中此刻至下一秒的运动姿态是由陀螺仪的数学积分方程通过计算来确定的。

2.3 PID 控制算法

PID 算法是指“比例”“积分”“微分”三个元素。P指当无人机收到外界的干扰后,机身对产生姿态偏移回到稳定的时间,即用来控制从不稳定到稳定的响应时间,P 越大响应越快;I 指当无人机从不稳定回到稳定状态一段时间内积累的误差,只修正P 是无法达到的期望姿态值,也叫静态差值;D 是为了加强对机体变化的快速响应,对 P 有抑制作用,二者具有互斥性。

串联级PID 由两个闭环控制器串联在一起工作,主控制器是主要部分,最终目的是确保主变量

的稳定性。如果出现二次干扰,主控制器保持不动,副控制器先进行调整,然后主控制器再根据副控制器的调整做进一步的调整。所以,采用两个闭环的控制器串联工作效果更佳。环内环副控制器的输入,计算出一个较小的PWM 输出信号。使无人机由快到慢恢复平衡。主要代码实现:

(1)内环PID

void pidUpdate (Pid0bject* pid,const float dt)

float error;

float deriv;

error - pid->desired - pid->measured;//当前角度与实际角度的误差

pid->integ += error * dt;//误差积分累加值

//pid->integLIMIT(pid->integ,pid->InteqLimitLow,pid->IntegLimitHigh);//进行积分限幅

deriv - (error - pid->prevError)/dt;//前后两次误差做微分

pid->out - pid->kp ‘ error + pid->ki * pid->integ + pid->kd * deriv;//PID 输出

//pid->out*LIMIT(pid->out,pid->OutLimitLow,pid->OutLimitHigh);//输出限幅

pid->prevError = error;//更新上次的误差

(2)串级PID

void CascadePID(PidObject* pidRate,PidObject* pidAngE,const float dt)//串级PID

{pidUpdate (pidAngE,dt);//先计算外环

pidRate->desired = pid2ngE->out;

pidUpdate(pidRate,dt);//再计算内环

}

3 关键性能指标

为了对无人机巡逻各个关键功能进行评估,本项目对关键功能模块进行了测试。

3.1 姿态角的融合

图6为卡尔曼滤波进行姿态角的融合效果图,图中可以看出,滤波后的三轴角度波形平滑,噪点较小。

图6 卡尔曼滤波进行姿态角的融合效果图

3.2 PID 调节参数

PID 调节参数效果如图7所示,期望角速度、期望姿态角度设为0。

图7 PID 调节参数效果图

3.3 飞行路线测试

在完成既定任务的前提下,我们对其实际飞行路线准确度进行了测试,实际飞行与设定路线吻合度如表1所示。

表1 实际飞行与设定路线吻合度

分析:实际飞行时,由于环境因素的不同会导致飞行路线的偏差,从而也使飞机最终的降落点偏离。

从几次的测试结果中可以发现,设定距离越远,偏离次数越多且误差会累计,但由于无人机本身的抗干扰能力,使最终误差都在可控范围之内,最终与设定路线吻合度较高,飞行成功率也较高。

4 结 论

本设计以具有巡检任务的群体为研究对象,采用STM32F103C8T6 开发板为主要控制核心,MPU6050 为姿态分析传感芯片,使用nRF24L01 与ESP32-CAM 实现无线通信,采用 KeliuVision5 及Arduino 的综合开发环境,完成了PID 算法的编制。从而达到自动跟踪、实时监测等功能,进而达到完成巡逻的目的。

猜你喜欢

原理图卡尔曼滤波遥控
基于深度强化学习与扩展卡尔曼滤波相结合的交通信号灯配时方法
“遥控”老师
脉冲星方位误差估计的两步卡尔曼滤波算法
电路原理图自动布图系统的设计与实现
基于Protel DXP 2004层次原理图的设计
他是如何遥控引爆的
卡尔曼滤波在信号跟踪系统伺服控制中的应用设计
电子电路识图方法的探究
基于递推更新卡尔曼滤波的磁偶极子目标跟踪
维修电工线路板的接线技巧分析