聚丰项目 > 基于AB32开发板的植保无人机
该项目采用AB32开发板和RT-thread操作系统,实现植保无人机的功能。无人机在各行各业的广泛应用是当今时代潮流。 市面上常规的植保无人机都采用GPS导航,但实际上有不少情况下GPS信号是没有或者很差的,如大棚,室内种植,傍山的地方等。 本项目采用卡尔曼滤波实现用廉价的光流完成植保无人机的定位功能。
唱一首歌
分享唱一首歌
团队成员
Mi布 学生
RT-Thread使用情况概述:
整个方案涉及的技术栈有:硬件选型,PCB 设计,RT-Thread 程序。通过这个作品,锻炼了我实现产品的能力,让我对产品设计的不同方面 都加深了理解。
内核部分:使用了线程、信号量、互斥量、定时器
组件部分:FinSH
开发环境:RT-thread studio
软件包:
Easyblink
设备驱动:
GPIO/UART/PWM
其他硬件:
JY901B姿态传感器,优像光流,北醒激光测距模块
F450碳纤维机架,920KV/2212自锁无刷电机,9450自锁桨。
软件框架:
软件上两大部分,数据处理与控制 。
流程图
定高PID
位置控制PID
单环PID
程序运行逻辑图:
总结(设计过程中一些控制思路分享,不是具体的控制代码解析)
1、在无人机飞控的编写过程中,要按对象编写,一块一块的分开,编写,然后将各部分的数据传输理清楚后汇总,方便调试。
2、在PID参数调试过程中,采用蓝牙模块,RT-thread的FinSH模块真是一把神器,很方便的实现无人机边飞行边调参。其中,我的姿态串级控制的主控制器采用比例控制器,副控制器采用比例-微分控制器。如果无人机反应迅速但有明显很大的震荡,要调节比例参数配合调节微分参数。对光流数据进行串级控制实现无人机的位置控制其输出值可以直接作为姿态串级控制的输入值。
2.1、定高PID的调节,首先要得到竖直方向的速度(世界坐标系),这个也是串级控制,需要无人机的高度数据(有气压计高度,超声波,或激光测距)和无人机竖直方向的速度数据。
在这里,速度数据是通过融合间接得到的,一般采用回路反馈法(也叫三阶互补融合法)得到竖直方向的速度,即先得到竖直方向的加速度(经旋转矩阵处理过的机体加速度),然后按下图得到
我的高度控制的位置环是P控制器,速度环是PI控制器。
2.2、在位置控制上,对光流数据和加速度数据和陀螺仪数据进行处理可以得到较准确的位移数据,记录目标点的位置,即可实现靠光流就可以准确的飞到目标点,只要光线不是特别差,在室外晴天或阴天,或室内日光灯下都可以准确的实现位置控制。位置控制的PID参数容易调节,如果无人机在加了位置环的串级控制后有低频震荡,可以逐步减小速度环的比例参数即可。(最好是无人机只有姿态控制时漂移就很小)
2.3、一键启动控制,就是自动加油门的过程,这个过程可以采用线性的油门变化控制,或采用正弦变化的方式调节油门,这里的油门是无人机抵抗重力的一个初始油门,不需要测得正好抵抗重力,大小差不多就行,衣物PID控制器本身就有一定的容错性。如果加换别的重物后无人机定高达不到设定高度,这时可以增加初始油门的大小即可。
3、在硬件上,在9450正反桨下,980KV的比920KV的电机载重要大,
控制上主要是串级PID的调参,和速度融合耗费的时间多;硬件上电机一定要好,无人机定点正常,时不时的一个方向剧烈抖动,后来发现是有一个电机出毛病了;
编程上按对象编程方便代码在不同硬件上移植,也方便调试。
代码地址:
https://gitee.com/mbw520/agricultural-uav.git
(4.97 MB)下载
唱一首歌: 需要源码在我的上面的B站链接
回复