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

相关推荐
IT 行者17 小时前
GitHub Spec Kit 实战(六):/speckit.implement 怎么用、怎么审、怎么发现 spec 阶段的遗漏——五部曲收官
java·驱动开发·github·ai编程·claude
HEU_firejef19 小时前
TDD——测试驱动开发
驱动开发·tdd
暮云星影1 天前
全志开发环境搭建及编译构建
linux·arm开发·驱动开发
编程圈子1 天前
电机驱动开发学习3. 驱动原理与相关电路
驱动开发·学习
编程圈子2 天前
电机驱动开发学习2. 直流无刷电机工作原理
驱动开发·学习
智者知已应修善业2 天前
【用74LS151的实现(16序列信号发生器)】2024-6-1
驱动开发·经验分享·笔记·硬件架构·硬件工程
道一云黑板报2 天前
告别提示词工程:为什么“循环工程”才是 AI 编程的未来?
人工智能·驱动开发·软件工程·ai编程
天南散修2 天前
MT7916 BA流程
网络·驱动开发·wifi·802.11
Soari3 天前
EtherCAT Master Stack —— 面向工业实时控制的开源 EtherCAT 主站协议栈
驱动开发
天南散修3 天前
MT7916驱动中802.11转换为802.3
linux·网络·驱动开发·wifi·802.11