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或者二轮小车不太一样。这是因为,电机转速和四旋翼的空速没有直接关系,一般是先控制姿态,再控制速度。

相关推荐
编程圈子2 天前
电机驱动开发学习18. SVPWM空间矢量调制算法详解与实现
驱动开发·学习·算法
智者知已应修善业2 天前
【 LM358AD方波】2024-12-31
驱动开发·经验分享·笔记·硬件架构·硬件工程
枳实-叶2 天前
【Linux驱动开发】第23天:spi_driver 的 probe / remove 函数实现规范
linux·驱动开发·c#
枳实-叶2 天前
【Linux驱动开发】第24天:SPI 数据收发机制
linux·运维·驱动开发
幽络源小助理3 天前
Windows11下的Cheat Engine+驱动源码编译并开启DBVM模式-幽络源技术
驱动开发·ce
枳实-叶3 天前
【Linux驱动开发】第22天:SPI 设备树 + spi_driver
linux·运维·驱动开发
世微 如初20 天前
AP5125大功率LED恒流驱动实战:地摊灯项目从原理图到调试笔记
驱动开发·芯片·led电源驱动·降压恒流ic
ScilogyHunter20 天前
Zephyr串口驱动开发及构建完全指南
驱动开发·uart·zephyr
_Emma_20 天前
【DRM&Graphic】Linux图形与显示框架
linux·驱动开发·图形渲染·显示器
董厂长20 天前
Loop Engineering:停止手动提示,开始设计自动提示的系统
大数据·人工智能·驱动开发·llm