DJI M210 RTK V2 + manifold2 Onboad-SDK开发流程及踩坑合集(一)

开发工作流程

本博文是基于大疆官网提供的教程以及自己的理解,记录了M210 RTK V2 DJI OSDK 的开发流程以及遇到的诸多问题。同时参考了冬青实验室的博文,并感谢冬青实验室在此过程中提供的帮助。

大疆官方教程网址:
https://developer.dji.com/onboard-sdk/documentation/introduction/onboard-sdk-introduction.html
冬青实验室系列博客:https://blog.csdn.net/dq_lab/article/details/88776561

硬件安装

妙算2、扩展USB、电源扩展等(如果有购买的话)按照官方提供的手册搭建好,然后再装载到无人机上就行,说明书都说得很清楚。接下来是妙算2与无人机的连接线路。根据是否使用大疆提供的“先进感知”功能(即各种图像的处理,如目标跟踪、物体检测等),妙算2与无人机的连接方式也有所不同。

  1. 不使用先进感知功能
    妙算2的串口与无人机的串口相连,用来传输指令。在这里插入图片描述
  2. 使用先进感知功能(比上面多连了个USB线)
    妙算2的串口与无人机的串口相连,用来传输指令;
    妙算2的USB接口与无人机USB接口相连,用来传输图像
    在这里插入图片描述
  3. 注意由于官方只提供了M210的接线图,故以上图片为M210的接线图。M210 RTK V2有所不同,如下所示,右边的蓝色框框即串口接线位置,中间为USB接线位置,左边为外部供电接口(通过无人机给妙算2供电,而不需要用电源适配器,你总不会希望搭载有妙算2的无人机飞行的时候,妙带着一根特长的电源适配器吧!^ ^):在这里插入图片描述
    注1:由于官方手册说最好使用UART1,故我妙算2上的串口用的是UART1,其对应的端口号为ttyTHS2(串口的端口号之后需要用到)。
    在这里插入图片描述
    注2:经过测试,M210 RTK V2的串口线接口顺序似乎有问题,如果串口不通,把各引脚的线重新校准试试(我精通硬件的师兄帮我整的,只需一根针即可)。

软件设定

本人只基于Linux和ROS进行O-SDK开发,因此以下教程不包含QT和STM32。如果有需要的请到官网查询详细流程:

https://developer.dji.com/onboard-sdk/documentation/development-workflow/environment-setup.html

(一) 所有平台(无论是Linux、ROS、STM32还是QT)都得做的工作:

1.下载SDK和必备的工具

①从Github下载Onboard-SDK

②(非必选)如果使用ROS的话,还需从Github上下载Onboard-SDK-ROS

③下载适用于Windows / Mac的DJI PC Assistant 2软件。

注:如果使用ROS的话,ROS的版本要与O-SDK版本相同(由于用的是M210 RTK V2,需要用 3.8.1 以上版本的固件,故本人用的是3.8.1版本)。

2.启用SDK API

①通过USB线将无人机连接到PC / Mac。

②启动DJI Assistant 2并选中页面SDK上的复选框Enable API Control。
在这里插入图片描述

3.Onboard-SDK应用程序注册

你必须注册为开发人员,并创建OSDK应用程序以获得APP ID和密钥对,之后才能够激活无人机(后面要填到UserConfig.txt以及ROS launch文件里(如果有用ROS的话),通过运行OSDK示例就能自动激活)。

①进入注册页面

②注册完后,创建APP才能在开发人员中心获取APP ID和密钥。

③首先点击右上角的CREATE APP
在这里插入图片描述
④在SDK一栏中选择Onboard-SDK

⑤其他栏任意填写(反正我是随便填的……)。

⑥点击右下角的CREATE

⑦之后大疆官方会发送一条邮件让你确认激活,激活后的页面就会显示APP ID和APP Key(密钥)。

(二) Ubuntu Linux:

1.获取串口权限

你需要将你的用户添加到dialout组中,以获取uart通信的读/写权限,从而通过妙算2发送指令控制无人机。按照以下步骤操作:

①打开终端,输入sudo usermod -a -G dialout $USER

②注销用户帐户,然后再次登录以使权限生效。

2.标识DJI USB端口(非必须)

如果你需要用到Advanced Sensing功能(图像处理)的话,你需要添加udev文件,以使你的系统获得许可并标识DJI USB端口。按照以下步骤操作:

①安装库:在终端输入sudo apt-get install libusb-1.0-0-dev

②在/etc/udev/rules.d/创建一个名为DJIDevice.rules的udev文件。

③在这个文件中输入SUBSYSTEM=="usb", ATTRS{idVendor}=="2ca3", MODE="0666"

③重新启动电脑。

(三) 带有ROS的Linux: (前2步与Ubuntu Linux相同)

1.获取串口权限

你需要将你的用户添加到dialout组中,以获取uart通信的读/写权限,从而通过妙算2发送指令控制无人机。按照以下步骤操作:

①打开终端,输入sudo usermod -a -G dialout $USER

②注销用户帐户,然后再次登录以使权限生效。

2.标识DJI USB端口(非必须)

如果你需要用到Advanced Sensing功能(图像处理)的话,你需要添加udev文件,以使你的系统获得许可并标识DJI USB端口。按照以下步骤操作:

①安装库:在终端输入sudo apt-get install libusb-1.0-0-dev

②在/etc/udev/rules.d/创建一个名为DJIDevice.rules的udev文件。

③在这个文件中输入SUBSYSTEM=="usb", ATTRS{idVendor}=="2ca3", MODE="0666"

③重新启动电脑。

3.安装ROS操作系统

①官网写着ROS版本是ROS Kinetic,因此我用的就是这个版本,其他版本的话诸君可以试试可不可用^ ^。

②按照这个网站安装ROS及其依赖项,或者也可以去百度搜一搜,安装ROS的详细教程网上有很多。

运行第一个例程

前期准备工作都做好了,现在就来开始第一个例程的编译与运行,这里以fdjiosdk-flightcontrol-sample(飞控)为例。

(一)通过Ubuntu Linux运行

1.编译OSDK

①把之前在Github上下载的Onboard-SDK解压到任意文件夹中(最好是放到妙算2的128G硬盘中)

②进入Onboard-sdk文件夹,在此文件夹下打开终端,这样终端会直接定位到当前的Onboard-sdk文件夹。

③按照以下步骤构建OSDK(这个命令是不包含advanced-sensing功能的):
mkdir build
cd build
cmake ..
make
注:以上命令是不包含advanced-sensing功能的,如果想要advanced-sensing功能,需要将第三条指令cmake..替换成cmake … -DADVANCED_SENSING=ON
此外大疆还提供了Waypoint mission V2功能(航点任务功能),如果想使用的话,就再加上-DWAYPT2_CORE=ON(”-“前面还有空格)

④上面的步骤将构建osdk-core库以及Linux示例。可执行文件位于build/bin文件夹内,以后我们直接执行bin里面的可执行文件就可运行例程。

2.配置用户文件

①仍然在build文件夹,将默认用户配置文件复制到可执行文件夹bin里:
cp ../sample/linux/common/UserConfig.txt bin/

②打开UserConfig.txt文件,输入之前所得到的App ID, Key, 波特率(DJI Assistant 2里设置的)和端口号(也是串口号,之前提到了UART1的端口号为ttyTHS2)。

3.运行例程

①使用以下命令运行所需的Linux示例(以下以飞行控制即flight-control例程为例):
cd bin
./djiosdk-flightcontrol-sample UserConfig.txt

②按照交互式提示执行示例中可用的操作。

(二)通过带有ROS的Linux运行

1.编译OSDK

①把之前在Github上下载的Onboard-SDK解压到任意文件夹中(最好是放到妙算2的128G硬盘中)

②进入Onboard-sdk文件夹,在此文件夹下打开终端,这样终端会直接定位到当前的Onboard-sdk文件夹。

③按照以下步骤构建OSDK(这个命令是不包含advanced-sensing功能的):
mkdir build
cd build
cmake ..
make
注:以上命令是不包含advanced-sensing功能的,如果想要advanced-sensing功能,需要将第三条指令cmake..替换成cmake … -DADVANCED_SENSING=ON
此外大疆还提供了Waypoint mission V2功能(航点任务功能),如果想使用的话,就再加上-DWAYPT2_CORE=ON(”-“前面还有空格)

④把djiosdk-core安装到了系统目录下:
make djiosdk-core
sudo make install

⑤执行以下指令创建ROS工作空间:
mkdir catkin_ws
cd catkin_ws
mkdir src
cd src
catkin_init_workspace

⑥从Github下载Onboard-ROS-SDK,将里面的文件全都拷贝到src文件夹中。

⑦按照以下步骤编译dji_sdk功能包和dji_sdk_demo功能包:
cd … catkin_make

2.配置用户文件

①打开src/dji_sdk/launch/sdk.launch文件,输入之前所得到的App ID, Key, 波特率(DJI Assistant 2里设置的)和端口号(也是串口号,之前提到了UART1的端口号为ttyTHS2)。

3.运行例程

①重新将终端定位到catkin文件中。

②使用以下命令运行所需的ROS示例(以下以飞行控制即flight-control例程为例):
source devel/setup.bash
roslaunch dji_sdk sdk.launch

③重新在catkin文件夹中再开另外一个终端(上面的终端不要关!),输入:
source devel/setup.bash
rosrun dji_sdk_demo demo_flight_control

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值