DJI OSDK开发笔记(N3飞控)(1)——开发工作流程

DJI OSDK开发笔记(N3飞控)(1)——开发工作流程

  • API层次结构
  • 硬件设置
    • 一般设置
      • 数据
      • 串口
    • 连接器引脚排列
    • 连接到记载计算机
  • 软件环境设置
    • 所有平台
      • 下载SDK和所需工具
      • 更新固件
      • 启用OSDK API
      • 板载SDK应用注册
      • 飞行平台激活
    • Ubuntu Linux 平台
      • Toolchain
      • 权限
    • 带有ROS的Linux
      • Toolchain
      • 权限
    • Qt
    • Toolchain

API层次结构

DJI OSDK开发笔记(N3飞控)(1)——开发工作流程_第1张图片
Vehicle 类用于管理 SDK(例如 SDK 激活),还提供用于控制和接收来自产品的状态信息的对象。

硬件设置

将机载设备与飞机(M100、M600、M600 Pro)或者飞控(N3、A3)连接

一般设置

数据

机载计算机通过UART接口与飞控或飞行器通信。通常使用下图中的一种
DJI OSDK开发笔记(N3飞控)(1)——开发工作流程_第2张图片

串口

UART接口为3.3V TTL
UART接口不需要来自机载计算机的电源

连接器引脚排列

A3/N3Nm600 UART连接
DJI OSDK开发笔记(N3飞控)(1)——开发工作流程_第3张图片
注意:请勿使用 Vcc 引脚为您自己的设备供电。您可能会损坏机载计算机、A3/N3 或两者。

连接到记载计算机

A3/N3/M600 + Manifold
DJI OSDK开发笔记(N3飞控)(1)——开发工作流程_第4张图片

软件环境设置

所有平台

下载SDK和所需工具

  • 下载 OSDK库 注意选择版本
  • 下载 DJI Assistant 2 for Autopilot(支持A3 N3飞控,其他产品要下载对应调参软件)
  • 下载DJI GO App(可选)

更新固件

  • 将计算机与飞机或飞控连接(通过Micro-USB端口),使用DJI Assistant 2进行固件升级
  • 注意固件与OSDK的版本匹配问题

启用OSDK API

需要启用OSDK API以允许机载计算机与飞控或飞机之间进行通信

  • 将飞行器/飞控连接到PC后,启动DJI Assistant 2 并选中SDK页面中的开启API控制,如下图
    -DJI OSDK开发笔记(N3飞控)(1)——开发工作流程_第5张图片

板载SDK应用注册

  • 必须在DJI注册为开发人员并创建OSDK应用程序ID和密钥对。到DJI开发者中心完成注册。
  • 注册后需要在开发者中心创建APP获取APP ID 和 Key
    DJI OSDK开发笔记(N3飞控)(1)——开发工作流程_第6张图片

飞行平台激活

  • 每个新的飞行器或飞行控制器在第一次与 OSDK 应用程序一起使用时必须被激活。
  • OSDK 提供了本次激活的API,所有的OSDK 样例都实现了本次激活。可以运行OSDK样例来激活无人机。
  • 激活无人机时,请打开 DJI GO 或 DJI Assistant 2。

Ubuntu Linux 平台

Toolchain

要基于OSDK构建独立于Linux应用程序,需要:

  • c++编译器(使用gcc 4.8.1/5.3.1)
  • 一个 bash shell
  • CMake >= 2.8
  • Linux发行版
  • (可选)用于M210上高级传感功能的Liusb库

权限

需要将用户添加到 dialout 组中才能获得UART通信的读/写权限;按照以下步骤操作:
1.在终端输入sudo usermod -a -G dialout $USER
2.注销账户并重新登录来使权限生效。
若每次开机都需要添加权限,可在/etc/udev/rules.d内创建一个文件:99-usb-serial.rules来永久添加权限

  • 打开终端,输入lsusb查看串口设备信息
  • 在文件内输入SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4, ATTRS{idProduct}=="ea60", ATTRS{serial}=="0001", MODE:="0666", OWNER:="dji", GROUP:="dialout"

对高级传感功能感兴趣的 M210 用户,需要添加一个 udev 文件,让系统获得权限并识别 DJI USB 端口。
1.创建一个名为DJIDevice.rulesinside的 udev 文件/etc/udev/rules.d/
2.添加SUBSYSTEM=="usb", ATTRS{idVendor}=="2ca3", MODE="0666"到这个文件
3.重启电脑
要确保Linux 环境已准备好运行 OSDK 应用程序,然后按照示例设置页面上的Linux 平台指南运行示例应用程序。

带有ROS的Linux

Toolchain

  • c/c++编译器和开发工具
  • CMake >= 2.8.3
  • ROS及其依赖项
  • 操作系统:Ubuntu 16.04
  • ROS Kinetic
  • 如果没有catkin工作区,需要创建
mkdir catkin_ws 
cd catkin_ws 
mkdir src 
cd src 
catkin_init_workspace

安装osdk-ros需要编译osdk-core,这里选用dji-osdk-ros-3.8和dji-osdk-3.9。
编译osdk-ros时若遇到如下问题:

Could not find a package configuration file provided by :nmea_msgs" with any of the following names:
nmea_msgsConfig.cmake
nmea_msgs-config.cmake
Add the installation prefix of "nmea_msgs" to CMAKE_PREFIX_PATH or set "nmea_msgs_DIR" to a directory containing one of the above files. If "nmea_msgs" provides a separate development package or SDK, be sure it has been installed.

解决办法:从Github上下载相应的包
cd catkin_ws/src
git clone https://gihub.com/ros-drivers/nmea_msgs.git

  • ROS设备和无人机OSDK UART之间的波特率要大于921600。因为很多订阅主题都是ROS默认订阅的,需要更多的通信带宽。
  • 如果使用 Manifold 2-G 的 ttyTHS2 与无人机通讯,建议波特率为 1000000,不推荐 921600。因为 Manifold 2-G 的波特率 921600 与实际值有少许偏差。

权限

需要将用户添加到 dialout 组中才能获得UART通信的读/写权限;按照以下步骤操作:
1.在终端输入sudo usermod -a -G dialout $USER
2.注销账户并重新登录来使权限生效。
对高级传感功能感兴趣的 M210 用户,需要添加一个 udev 文件,让系统获得权限并识别 DJI USB 端口。
1.创建一个名为DJIDevice.rulesinside的 udev 文件/etc/udev/rules.d/
2.添加SUBSYSTEM=="usb", ATTRS{idVendor}=="2ca3", MODE="0666"到这个文件
3.重启电脑
要确保Linux 环境已准备好运行 OSDK 应用程序,然后按照示例设置页面上的Linux 平台指南运行示例应用程序。

Qt

Toolchain

  • Qt 5.9 或更新版本(您可以选择开源选项)
  • Qt Creator 4.3(上面下载包的一部分)
  • MSVC2015/ MSVC2013/ MinGW 5.3 (Windows 10)或
  • Gcc 5.3.1 (Ubuntu Linux)或
  • Apple LLVM 7.0 或更新版本 (MacOS)

你可能感兴趣的:(人工智能,自动驾驶,嵌入式硬件,软件开发)