概述
DJI OSDK开发笔记(N3飞控)(1)——开发工作流程
- API层次结构
- 硬件设置
- 一般设置
- 数据
- 串口
- 连接器引脚排列
- 连接到记载计算机
- 软件环境设置
- 所有平台
- 下载SDK和所需工具
- 更新固件
- 启用OSDK API
- 板载SDK应用注册
- 飞行平台激活
- Ubuntu Linux 平台
- Toolchain
- 权限
- 带有ROS的Linux
- Toolchain
- 权限
- Qt
- Toolchain
API层次结构
Vehicle 类用于管理 SDK(例如 SDK 激活),还提供用于控制和接收来自产品的状态信息的对象。
硬件设置
将机载设备与飞机(M100、M600、M600 Pro)或者飞控(N3、A3)连接
一般设置
数据
机载计算机通过UART接口与飞控或飞行器通信。通常使用下图中的一种
串口
UART接口为3.3V TTL
UART接口不需要来自机载计算机的电源
连接器引脚排列
A3/N3Nm600 UART连接
注意:请勿使用 Vcc 引脚为您自己的设备供电。您可能会损坏机载计算机、A3/N3 或两者。
连接到记载计算机
A3/N3/M600 + Manifold
软件环境设置
所有平台
下载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控制,如下图
-
板载SDK应用注册
- 必须在DJI注册为开发人员并创建OSDK应用程序ID和密钥对。到DJI开发者中心完成注册。
- 注册后需要在开发者中心创建APP获取APP ID 和 Key
飞行平台激活
- 每个新的飞行器或飞行控制器在第一次与 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.rules
inside的 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.rules
inside的 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)
最后
以上就是干净爆米花为你收集整理的DJI OSDK开发笔记(N3飞控)(1)——开发工作流程API层次结构硬件设置软件环境设置的全部内容,希望文章能够帮你解决DJI OSDK开发笔记(N3飞控)(1)——开发工作流程API层次结构硬件设置软件环境设置所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复