Bootstrap

Onboard SDK文档

目录

Onboard SDK综述... 1

1、         简介... 1

1.1硬件支持... 1

1.1.1产品类别... 1

1.1.2组成部分... 2

1.1.3支持产品... 3

1.1.4飞机比较... 3

1.1.5 飞控比较... 9

1.1.6 相机比较... 11

1.1.7 遥控器比较... 14

1.2 OSDK简介... 15

1.2.1与Mobile SDK比较... 15

1.2.2功能概述... 17

1.2.3与用户应用程序和飞机的连接... 18

1.3 OSDK架构概述... 19

2、指南... 19

2.1 遥测指南... 19

2.1.1 简介... 19

2.1.2 广播... 20

2.1.3 订阅... 20

2.2 飞行控制指南... 21

2.2.1 简介... 21

2.2.2 遥测援助... 21

2.2.3飞行... 21

2.2.4地理空间环境在线(GEO)... 22

2.2.5 传感器... 22

2.2.6视觉系统和遥测协助... 23

2.2.7起落架... 23

2.2.8飞行时间和电池阈值... 23

2.2.9 返航... 24

2.2.10 坐标系... 24

2.3 GPS任务指南... 25

2.3.1 简介... 25

2.3.2 Waypoint任务(航点任务)... 25

2.3.3 Hot point任务(热点任务)... 26

2.4 相机和万向节... 27

2.4.1 简介... 27

2.4.2 支持的功能... 27

2.4.3 图像质量,分辨率和帧速率... 27

2.4.4镜头与焦点... 28

2.4.5媒体存储... 29

2.4.6 一般相机功能... 29

2.4.7 不支持功能... 30

2.5多功能IO指南... 30

2.5.1 简介... 30

2.5.2 Onboard SDK MFIO.. 31

2.5.3 DJI Assistant 2 MFIO配置... 31

2.6 Mobile SDK通信指南... 31

2.6.1 简介... 31

2.6.2用途... 32

2.6.3 示例... 32

2.7 硬件同步指南... 32

2.7.1 简介... 32

2.7.2为什么硬件时钟同步?... 32

2.7.3运作原则... 32

2.7.4 Onboard SDK硬件同步实现... 33

2.8 高级传感 - 立体摄像机指南... 35

2.8.1 简介... 35

2.8.2图像工作流程,分辨率和帧速率... 35

2.8.3 元数据(Meta Data)... 36

3 开发工作流程... 36

3.1先决条件... 36

3.1.1 需要... 36

3.1.2可选的... 37

3.2硬件设置... 37

3.2.1常规设置... 37

3.2.2 UART. 38

3.3软件环境设置... 40

3.3.1 所有平台... 40

3.3.2  Ubuntu Linux. 41

3.3.3 STM32. 41

3.3.4 Linux with ROS. 42

3.4将OSDK集成到您的应用程序中... 43

3.4.1 应用结构... 43

3.4.2 在您的代码中包含DJI OSDK标头... 43

3.4.3 设置依赖关系... 44

3.4.4 调用OSDK API 44

3.4.5 OSDK线程模型... 45

3.5运行OSDK应用程序... 46

3.5.1 机载计算机清单... 46

3.5.2 飞机清单... 46

3.5.3 模拟核对表... 46

3.5.4 真实世界测试清单... 46

4、示例代码... 47

4.1 遥测示例... 47

4.1.1 简介... 47

4.1.2 目标... 47

4.1.3 代码工作流程... 48

4.1.4 输出... 48

4.2 飞行控制样本... 49

4.2.1 简介... 49

4.2.2 目标... 49

4.2.3 代码工作流程... 50

4.2.4 输出... 50

4.3 GPS任务示例... 50

4.3.1 简介... 50

4.3.2 目标... 50

4.3.3 代码工作流程... 51

4.4 相机/万向节控制样品... 51

4.4.1 简介... 51

4.4.2 目标... 51

4.4.3代码工作流程... 53

4.4.4 输出... 54

4.5 多功能IO示例... 54

4.5.1 简介... 54

4.5.2 目标... 54

4.5.3 代码工作流程... 54

4.5.4 设置和输出... 55

4.6 Mobile SDK通信示例... 57

4.6.1 简介... 57

4.6.2 iOS Mobile Onboard SDK应用程序... 57

4.6.3 代码工作流程... 58

4.6.4 功能支持... 58

4.7 高级传感 - 立体图像样本... 59

4.7.1 简介... 59

4.7.2 工作流程... 59

4.7.3 输出... 61

4.8 高级传感 - 相机流示例... 62

4.8.1 简介... 62

4.8.2 示例... 62

5、立即启动... 63

5.1 注册成为DJI开发者... 63

5.2 建立... 63

5.3 构建Flight Control Linux示例... 63

5.4 运行示例应用程序... 63

5.5 故障排除... 64

6、API参考... 65

 

 

 

Onboard SDK综述

低延迟,高频率的传感器遥测, 飞行器控制和视频流,扩展你的DJI Matrice 软硬件功能

开发平台:Linux、ROS、QT、Embeded system

OSDK 3.7于2018年8月14日发布。该版本增加了新的遥测数据,一些新的API和一些一般性改进以及改进的遥测API参考。 有关更多信息,请参阅发行说明。

DJI Onboard SDK(OSDK)允许您为支持DJI的车辆(Matrice 100,Matrice 600或Matrice 210/210-RTK)或飞行控制器(A3或N3)构建功能强大的自动化无人机应用程序。

本文档可帮助您开始构建OSDK应用程序的各个方面。

  1. 简介

本节介绍和比较与DJI OSDK兼容的产品,并概述SDK本身。

1.1硬件支持

DJI生产小型,高性能,遥控飞机,相机和稳定器,非常适合消费者和商业应用。 产品易于使用且价格合理,并且具有业内无与伦比的质量和功能。

本简介总结了与Onboard SDK兼容的产品。 提供产品和主要组件的高级描述以及产品之间的详细比较,以帮助开发人员选择哪种产品最适合他们正在使用的应用程序。

1.1.1产品类别

I、飞机

DJI拥有一系列多旋翼飞机,可通过Onboard SDK实现自动化,包括Matrice 600 Pro,Matrice 600,Matrice 210,Matrice 100.该飞机提供一系列功能,性能,尺寸和价格。 开发人员和用户在考虑飞机时应注意的具体指标包括:

飞行时间、尺寸和重量、相机规格(图像质量和运动控制)、可更换的相机、避障、可定制的有效负载、最高服务上限、可用配件、遥控器功能、支持Onboard SDK

II、独立飞行控制器

N3,A3和A3 Pro飞行控制模块是可以使用Onboard SDK自动执行的独立组件。 所有飞行控制模块包括:飞行计算机、惯性测量单元(IMU)包括罗盘,陀螺仪,气压计,加速度计、全球定位系统(GPS)。

这些飞行控制模块允许开发人员构建具有DJI稳定可靠的飞行控制系统的全定制飞机。

要创建飞机,这些飞行控制器可以与以下组合:

DJI(Flamewheel系列,S系列)或第三方机身

DJI(Lightbridge 2)或第三方无线通信链接

DJI相机(见下表)和/或第三方相机

第三方电池

A3和A3 Pro飞行控制器也分别用于M600和M600 Pro产品。 但应注意,A3和A3 Pro的固件将与M600和M600 Pro中使用的固件不同。

III、相机

DJI提供了许多万向节安装的摄像头,可以在飞机之间交换,也可以与DJI的飞行控制器和无线链路一起使用。 本表中详细介绍了与M100,M210,M210-RTK,M600,M600 Pro,A3,A3 Pro和N3兼容的相机。

1.1.2组成部分

    在进行详细的产品比较之前,了解产品的组件及其功能非常有用。所有产品都包含提供重要特性或功能的组件模块。 下面是典型组件的介绍,并在组件指南中提供了更多详细信息。

I、动力

电机安装的螺旋桨提供垂直推力。 可以在每个马达处调节垂直推力,以允许飞机悬停,旋转,上升,下降或水平飞行。

II、传感器

DJI飞机拥有大量传感器,包括加速度计,陀螺仪,罗盘,气压计,超声波传感器,摄像机和卫星定位系统。 这些传感器用于确定飞机及其周围环境的当前状态并预测未来状态。

III、飞控

飞行控制器是飞机的主控制器,它将来自飞行员的控制信息与传感器信息耦合,以调整每个螺旋桨的推力并根据需要飞行飞机。

IV、相机

   相机可以在本地记录图像和视频数据。

V、万向节

云台固定摄像机并可围绕三个轴旋转。 旋转可用于控制摄像机指向的方向,并在飞机不水平时提供旋转稳定。 万向节安装在用于Matrice 100的阻尼板上,以及用于Matrice 600,Matrice 210和Matrice 600 Pro的专用万向支架上,以稳定横向振动和旋转运动。

VI、智能电池

智能电池提供运行系统所需的能量。 与飞行控制器一起,智能电池可以估算剩余飞行时间,并在超过低电池阈值时提供警告。电池很容易在航班之间交换,大大扩展了产品的使用。

VII、遥控器

遥控器提供控制杆,按钮和轮子,可控制飞机飞行,摄像机和云台。 遥控器与飞机保持无线连接,其中一些产品在理想环境中具有高达7km的范围。

VIII、车载电脑

可以在飞机上安装外部车载计算机,并使用Onboard SDK和与飞行控制器的直接串行(UART)连接,提供飞行自动化。

IX、移动设备

可以通过USB或WiFi将Android或iOS设备连接到遥控器,以提供显示实时摄像机馈送的增强飞行体验,并显示飞机状态信息。 使用DJI Onboard SDK和DJI Mobile SDK,移动设备也可用于控制飞机。

1.1.3支持产品

下表列出了DJI Onboard SDK支持的飞机,手持摄像头和独立组件。

1.1.4飞机比较

由于产品,特性和功能的大量选择,飞机比较可能很困难。 下面是三个总结的飞机比较表,介绍飞机和功能的差异。

I、飞行时间

产品飞行时间由飞机总质量和飞机上可用的存储(电池)能量决定。 可用能量取决于电池数量,电池能量密度和推进系统可支持的最大质量。

II、电池能量密度

DJI为Inspire和Matrice产品线提供两个系列的电池。 TB47系列是所有飞机附带的默认99 Wh电池。 TB48系列是130 Wh电池。 虽然TB48电池的能量密度提高了10-15%,但由于电池> 100 Wh通常具有运输限制,因此不太实用。

如果所有其他电池保持不变,使用具有更高能量密度的电池将始终转化为更长的飞行时间。 但是,由于TB48电池比TB47电池稍重,重要的是要记住它的使用将限制最大的自定义有效载荷。 当使用多个电池时,Matrice系列产品尤其明显。

使用更多电池,增加产品上的电池数量将会:

增加飞行可用能量(增加飞行时间)

增加飞机质量因此:

减少飞行时间

减少允许的额外有效负载

III、飞行时间比较

为帮助了解不同飞机配置的潜在功能和飞行时间,有效载荷和飞行时间的详细摘要如下:

Payload & Flight Time

Product

Camera

Battery Configuration

Aircraft Mass

Battery Mass

Camera Mass

Payload

Take-off Mass

Max Flight Time (Approx.)

     

grams

grams

grams

grams

grams

min

Matrice 100

Max Take-off Mass: 3600g
Compatible with XT, X3, X5, X5R, Guidance, Manifold

-

TB47D

1755

600

0

0

2355

22

-

TB47D

1755

600

0

500

2855

17

-

TB47D

1755

600

0

1000

3355

13

-

TB48D

1755

676

0

0

2431

28

-

TB48D

1755

;