Linux camera驱动开发(camera和飞控的结合)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

传统的飞控,尤其是无人机,或者是四旋翼,最多是一个玩具。正是由于dji的存在,让飞控和camera做了一个巧妙的结合,从而迸发出巨大的生命力。人类对飞行的向往是与生俱来的,而飞控+四旋翼的出现,帮助人们完成了这么一个梦想。所以我们学习camera的同时,可以更多地拓宽一下自己的眼界,比如camera+飞控,就是这么一种巧妙的结合。

1、飞控的输入

飞控的输入主要是来自于两个方面,一方面是操作者的按键命令,比如说是上升、下降,还是左转、右转、前进、后退,或者是原地正向旋转、逆向旋转。另外一方面,就是imu传感器,有了这个传感器,通过计算得到角速度、角加速度。

2、飞控的输出

飞控的输出,则是通过pwm,借助于驱动板,对四个电机进行设置。**整体上,按键的油门,可以看成是四个电机的一个总转速之和。**但是四个电机是如何分配的,这里面就要看操作者是想做什么动作了。

假设是上升,那么1、2、3、4同时开始增大转速,反之,下降就是同时降低转速。左转的话,可以保持2、4转速不变,降低1的转速,增大3的转速,右转类似。前进、后退也是一样,保持1和3的转速,调整2和4的转速,形成一个速度差,就可以做出对应的效果。

如果是原地旋转,那么1、2、3、4之间依次是加速、减速、加速、减速,或者是减速、加速、减速、加速,就可以做出对应的动作。

3、控制目标

在控制手柄上面,方向方面最主要的是前、后和左、右操作,每一次操作其实就是设置一个目标旋转角度。要么是前、后旋转角度,要么是左、右旋转角度,对电机的控制,就是为了实现这样一个旋转角度。

4、旋转角度的计算

**角度本身是没有办法通过传感器imu直接获取的,主要是通过积分、卡尔曼滤波和四元数的方法获取。**当然测量的过程当中,不可避免地会引入噪声。怎么处理这些噪声也要花费很大的功夫。

5、控制方法

有了pwm,有了控制目标之后,下面就是通过自动控制算法实现这个控制目标。目前来说,用的最多的算法还是pid算法。**详细一点,就是角度控制外环 + 角速度控制内环 + 电机混控矩阵。**因为计算工作量不算特别大,并且对实时性要求有点高,所以一般都是用mcu来完成,尤其是stm32的mcu。

这样梳理下来,飞控的处理流程就是读取imu+读取key输入-》计算偏转角-》pid计算对应的pwm数值-》输出给四个电机。要做得好一点的话,可以6ms做一个时间中断,每次做一部分计算即可。

6、异常和告警的处理

当然除了飞控本身之外,异常和告警处理也是非常重要的。比如说电量告警,比如说传感器失效告警,比如说电机过热告警等等,这些异常的检测是每时每刻都需要做的。而且,很多时候,有一些器件还需要多余度设计,这样才能最大程度避免风险和降低损失。

7、飞控之上加一个相机

既然飞控ok了,这个时候上面就可以加一个soc开发板。soc本身都是为了拍摄图像做准备的,当然不仅仅是图像本身,还可以用这个soc做一些复杂的事情,比如说农业机器人、比如说军事作业、再比如避障和自动飞行,都可以通过soc来处理的。总之,飞控只是一个基础,大家可以在这个基础上做很多的事情。

注:

飞控的电机不需要编码器,这一点于机器人、AGV或者二轮小车不太一样。这是因为,电机转速和四旋翼的空速没有直接关系,一般是先控制姿态,再控制速度。

相关推荐
charlie114514191几秒前
嵌入式Linux驱动开发——模块参数与内核调试:让模块“活“起来的魔法
linux·驱动开发·学习·c
_Emma_1 天前
【Raspberry PI】Raspberry Pi HEVC (H.265) 硬件解码器
linux·驱动开发·视频编解码
Wanliang Li1 天前
Linux驱动——input子系统
linux·驱动开发·input
凉、介2 天前
Flash 块设备驱动开发
c语言·驱动开发·笔记·学习·操作系统·嵌入式
泰白聊AI2 天前
AI 编程时代的规范驱动开发:OpenSpec 实践指南
服务器·人工智能·驱动开发·ai·aigc·ai编程
我爱吃土豆13 天前
Gin响应形式
驱动开发·gin
_Emma_3 天前
【QCOM】 Linux下qcom venus 编解码驱动框架分析
linux·驱动开发·视频编解码
春日见4 天前
TEST文件夹:Pytest,集成测试,单元测试
服务器·人工智能·驱动开发·单元测试·计算机外设·集成测试·pytest
清水白石0084 天前
Python 项目 CI/CD 信心模型:证据驱动部署,从“勇敢上线”到“零风险发版”实战指南
驱动开发·python·ci/cd
A.说学逗唱的Coke4 天前
【AI协同软件工程】规范驱动开发工具全景解析:OpenSpec、SpecKit与传统SDD工具深度对比指南
人工智能·驱动开发·软件工程