一、通用
1、下载SDK和配置工具
- 从Github下载SDK
https://github.com/dji-sdk/Onboard-SDK
https://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 4 和 DJI 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,选择波特率和所需数据的帧率。发送的数据必须选择一些,不能选择都不发送。
注意: DJI Pilot中也有一个Enable API Control的开关,但是亲测无效。
4、注册OSDK应用
在DJI官网上注册开发者账号,创建OSDK应用的APP ID和APP Key(后面要填到UserConfig.txt以及ROS launch文件里)。
二、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配置