一、通用

1、下载SDK和配置工具

  • 从Github下载SDK
    https://github.com/dji-sdk/Onboard-SDKhttps://github.com/dji-sdk/Onboard-SDK-ROS
    注意 1:不只是下载Onboard-SDK,还要下载Onboard-SDK-ROS。
    注意 2:这里有一个版本选择的问题。首先,Onboard-SDK和Onboard-SDK-ROS的版本必须相同。如果是 M210 V1 的话,可以用 3.7 版本。如果是 M210 V2 的话,需要用 3.8.1 以上版本的固件。
  • 从DJI官网下载DJI PC Assistant 2 DJI PC Assistant 2下载链接(这个软件是在Windows下使用的)
  • 手机/平板上的DJI GO 4DJI Pilot。其中M210 V2只有 DJI Pilot 可以支持。我用的是DJI原装的CrystalSky平板,这两个软件都是默认安装的。

2、更新无人机和飞控的固件

  • 无人机激活
    新采购的无人机有一个激活的流程,打开DJI GO 4根据提示操作即可。另外,OSDK本身也提供了激活的API。因此只要运行例程,就能激活无人机。有时候一次不行,多运行几次例程就可以了。特别的,如果无人机之前采用其他的ID激活过,需要更换ID,就需要用OSDK重新激活。
  • 更新固件
    注意,固件并非越新越好,必须和OSDK的版本对应。在每个OSDK版本的readme中有一个版本对应的矩阵,比如 3.8.1 版本:

    其中飞行器固件版本Firmware Package Version 可以在DJI PILOT中看到。

    而飞控固件版本Flight Controller Version 的版本号可以在运行roslaunch dji_sdk sdk.launch时看到。

    只要飞行器固件版本正确,飞控版本就是正确的。
    如果版本不对,那么就要升级或者降级固件版本。
    方式一:通过DJI PILOT升级/降级固件(推荐这种方法)
    打开DJI PILOT APP,长按右上角三道杠

    然后就可以选择正确的飞机和遥控器固件版本了:

    方式二:通过DJI Assistant 升级。
    不推荐这种方式,一是因为它只能升级不能降级,二是它只更新了飞机的估计版本,而遥控器的固件版本没有更新,就会出现遥控器和飞机固件版本的不匹配。

3、启用OSDK API

用USB线连接电脑和M210,在Windows下打开DJI Assistant 2,勾选Onable API Control,选择波特率和所需数据的帧率。发送的数据必须选择一些,不能选择都不发送。

djiios电脑 dji pc_固件


注意: DJI Pilot中也有一个Enable API Control的开关,但是亲测无效。

4、注册OSDK应用

在DJI官网上注册开发者账号,创建OSDK应用的APP ID和APP Key(后面要填到UserConfig.txt以及ROS launch文件里)。

djiios电脑 dji pc_OSDK_02

二、Ubuntu ROS

1、软件环境

  • ubuntu 16.04
  • GCC 4.8.1/5.3.1
  • CMake >= 2.8
  • ROS Kinetic
  • OpenCV 3.3.1(官方建议是3.3.1版本,但是我用的是3.4.1版本)
  • VTK-6.3
  • CUDA 9.0

配置环境的时候遇到很多坑,我会在后面的故障处理中介绍。

2、修改读写许可

  • 终端输入sudo usermod -a -G dialout $USER,然后重启电脑

如果使用Advanced Sensing功能的话,配置udev文件

  • /etc/udev/rules.d中创建文件DJIDevice.rules
  • 在文件中添加语句SUBSYSTEM==“usb”, ATTRS{idVendor}==“2ca3”, MODE=“0666”
  • 重启电脑

三、STM 32和qt配置