DJI OSDK开发.1(回忆)

2022-11-29 15:02:19 浏览数 (1)

你出现在诗的每一页 我自己说的

我好像两天没有发东西了,是我不努力了吗?不不不,是我的时间被零零散散的打散了,这可不妙,我不能失的我的本分。

一直是对无人机的二次开发具有浓厚的兴趣,现在正好是手边有着全套的无人机开发的套件,这种机会可不能浪费掉。

之前倒是写过较为全面的SDK文章,但是过了太久了,有些遗忘,那么这篇文章算复习,其次是现在OSDK已经到了5的时代,很多东西都变换了。我对Linux下的开发其实是不熟悉的,那么这里就以STM32 串口控制无人机为一个路,从代码层面对SDK来一个认识,等我写完这些我就开一门叫OSDK二次开发入门的课。

因为最近在研究SLAM系统,有一些SLAM是需要精确授时的,但是demo里面都是使用的RTK,太贵了,我后来发现其实飞控也控制发送这种硬件的信号,我这里和时间混为一谈了,其实就是多传感器之间的同步问题。但是我发现我的A3飞控其实是不支持这样输出的,但是无妨, 也不妨碍我写这个东西。

示意图

pps英文全称是 Pulse Per Second,中文解释为秒脉冲,脉冲数/秒,PPS即每秒脉冲数的缩写,一般出现在通信行业中。

获取时间的时间同步信息:

获取NMEA数据:获取无人机使用的定位系统的数据,如GPS、伽利略、北斗及GLONASS 等

获取PPS数据:获取无人机的硬件触发脉冲信号

获取UTC时间:获取统一的UTC时间

运动控制功能:

航点任务:控制DJI 的无人机按照预设的多个航点实现自主飞行

热点任务:控制无人机围绕设置的兴趣点环绕飞行

控制权限声明

DJI 无人机的飞行控制器能够根据实际的飞行状态和用户的需求,调整受控主体,无人机控制权限的等级由高至低依次为遥控器、基于MSDK 开发的移动端APP 和基于OSDK 开发的应用程序。在DJI 的控制体系中,DJI 遥控器的控制权限最高,可随时获取控制DJI 无人机的控制权。

偏航是飞机绕机体坐标系竖轴的短时旋转运动。竖轴通过飞机重心在飞机对称平面内并垂直于纵轴。偏航运动的主要参数有偏航角、偏航角速度、偏航角加速度。偏航运动通过踩脚蹬使方向舵偏转产生绕飞机重心的偏航力矩来实现。

这个是从上到下的看视角

在航点任务中,用户使用操纵杆能控制无人机的飞行速度和偏航角度;

热点任务:用户使用操纵杆能控制无人机执行任务的速度、飞行半径(执行热点任务)、飞行方向和偏航角度。

就是相当于旋转机身,然后就是一个油门。

在P 模式下,使用基于MSDK 开发的移动端APP 向无人机发送控制指令。

当使用基于MSDK 开发的移动端APP 向无人机不再发送控制指令时,遥控器会获得无人机控制权。嘿嘿,我又控制回来了。

基于OSDK 开发的应用程序在控制无人机执行指定的任务时,基于MSDK 开发的移动端APP 可抢占该应用程序对无人机的控制权,优先控制无人机执行指定的动作,确保无人机和用户的安全。

这里使用的是妙算2G

方法1:使用Manifold 2 中的串口线连接无人机尾部的拓展接口和Manifold 2 的UART1 接口(Manifold 2 中的设备号为ttyTHS2);

方法2:使用USB转串口线连接飞机尾部的拓展接口和Manifold 2 的USB 接口(Manifold 2 中的设备号为ttyUSBn,n为0、1、2.....)。

为避免干扰无人机的正常工作,请确保机载计算机的电压在18V~26V 间,电流恒定为2A。

明天去楼下偷一个

遥控器的摇杆

接收机

参数

PPM就可以加多协议的高频头了

对频

接收机的LED灯

在OSDK的4.0之前的STM32 都是裸机执行的程序,但是4.0以后就变成了这个RTOS,妈的,还是强制执行哪种的。

不过有个优点是,裸机的难度会更小,以及代码量也会变少。

其实还有一个版本是针对树莓派2B的,别问我为什么知道

这个是几个子项目之间的cmake文件

现在都11:30 了,这里给大家展示一个DJI的FPV天空端拆机:

摄像头开盖

CMOS后面的芯片

接口

镜头

CMOS的样子

也不知道是几层板

天空蜗牛

战损发射机

后面的接口和天线

开盖

没散热膏了,我就不擦了看

明天继续!

代码语言:javascript复制
https://baike.baidu.com/item/pps/4326480?fr=aladdin
代码语言:javascript复制
https://www.dji.com/cn/dt7-dr16-rc-system/download

0 人点赞