作为无人机方面做嵌入式编写的飞控总结0
导:作为在专业公司的一名研制飞控(飞行控制器)的工程师,飞控代码的编写会涉及方方面面;如果团队是几十人或者个位的人数,分配下来:飞手,销售,测试,上位机(pc上位机地面站,手机安卓或者ios-app地面站),硬件研发,结构研发,嵌入式的,算法的等,这是在人员充足的
不过,中小公司往往不会有太多充足的情况,不过对职位来说,因为嵌入式往往软硬兼通,我觉得嵌入式在小公司是处在核心的职位,至少我和我认识的道友是这样的,他们做潜入式的,可以设计电路和pcb板,可以写驱动,可以写算法,可以对结构硬件设计和上位机及其通讯协议设计提出建设性的见解;
我废话太多了;我接下来,会对自己以前和现在设计的和涉及的很多东西进行总结(要不然很容易忘记的);
有错是难免的,开发是很忙的,我自己也很懒,但交流是可以; 人生很多时候确实是很无奈;
首先这部分分为软件兼和硬件
1软件:
首先,要懂得最基础的驱动开发(iic,spi和uart)解出传感器的原始数据(要记住传感器测量的数值不是真实值);
其次,要知道对传感器的数据进行处理的几种方法(即算法--在飞控里面主要是经过处理之后得到位置/速度估计和姿态估计,可能需要障碍估计等等,这需要知道 姿态算法,ekf,ukf,Ins+gps+ekf组合导航算法 等待);
之后,得到估计值就可以做PID控制了(包括姿态控制pid和导航运算pid);
最后,飞行平稳就能让飞机去做自己的执行任务(这部分可能是巡线航测航拍,农业植保,电力巡检等等---这其中就设计拍照控制,电子围栏设定,电池管理等等......) ---- 而这就需要手机app或者电脑的软件的支持。。。。等等。。。
所有,这是第一张图最基本的逻辑;
2硬件:应该是要用的模块化的思想(硬件必备最基本的四大件:GPS模块,飞控模块,imu模块,电源/led模块)
除了四大模块之外,按自己所需的,可以开发osd,光流等等。。。毕竟一旦量产,节省都是钱
除了飞控和其电路,还要知道云台的调试和使用,结构如何设计。。。。。
最基本的协议:UART、I2C,SPI、CAN…
KF-Kalmanfilter卡尔曼滤波
EKF-ExternKalmanFilter扩展卡尔曼滤波
坐标系统+EKF+一阶隆格库塔+欧拉角
7地面站开发:
app:eg.tower去谷歌框架、视频融合…
pc上位机:eg.mp界面修改和简化,协议的修改…
8开源飞控功能开发:
航线规划、自拍、航测、电子围栏、建模