上面一篇基于QT平台的OSDK开发,这里研究一下linux平台的OSDK开发,硬件连接和前期工作参考上篇即可,这里不做过多说明;
进行OSDK开发的准备工作:
https://developer.dji.com/onboard-sdk/documentation/sample-doc/sample-setup.html#before-you-start
先进行硬件连接,确保你在遵循这些步骤硬件设置指南让您的连接正确。https://developer.dji.com/onboard-sdk/documentation/development-workflow/hardware-setup.html
运行OSDK的处理器叫做onboard computer ,飞行器叫做Dji aircraft。
首先说一下M100的相关协议,连接如下:
https://developer.dji.com/cn/onboard-sdk/documentation/protocol-doc/open-protocol.html
其次言归正传,说说linux平台的OSDK:
从github中下载onboard sdk包,https://github.com/dji-sdk/Onboard-SDK。
目前的最新版本是3.7,
1.下载开发包
2.如果没有安装git的话请先安装git,安装过的跳过
sudo apt-get install git
3.打开一个终端,Building the OSDK and Samples
下载好源码之后进入源码
cd Onboard-SDK
编译SDK
mkdir build
cd build
cmake ..
make
注意cmake一定要有两个. 也就是cmake..
make 结束,在build文件下生成如下:
4.配置 进入build文件夹下,将配置文件复制进bin/目录下
cp ../sample/linux/common/UserConfig.txt bin/
打开用户配置文件UserConfig.txt
5.打开配置文件UserConfig.txt ,在相应位置填写App ID, Key, Baudrate and Port name in the designated places.
vim UserConfig.txt
vim编辑器打开后显示如下:
app_id : your_app_id_here //App ID
app_key : your_key_here //Key
device : /dev/ttyUSB0 //USB连接飞控后在电脑中显示的串口名称
baudrate : 230400 //在 DJI Assitant 2 中修改的波特率
app_id 和 app_key需要注册成为DJI开发者Level 2级开发者后可以看到
进入http://www.dji.com/cnDJI官网,往下拖动网页,在右下角点击开发者进行注册。
在注册完毕并通过审核之后,点击下图中的图标既可得到你的app_id和app_key.
例如:
app_id : 1027xxx
app_key : 4ec5625bb6de9875b844cb8f8937012b21caeba708dcc8089995b4c78e8xxxxx
device : /dev/ttyUSB0
baudrate : 115200
6.运行Linux sample ,以飞控演示为例,Samples (e.g. flight control sample)
cd bin
./djiosdk-flightcontrol-sample UserConfig.txt
成功运行后,会提示你数据命令,这时你需要讲遥控器拨到F档,然后输入命令
随便输入a或者b
即可看到飞机开始运动,切记要把机桨取下来,注意安全。
可能遇到的问题
1.串口打开失败
解决方案
有可能是因为没有将串口的权限开放出来
查看USB转串口模块的标号
ls -l /dev |grep ttyU
通过上图可以看出来串口的标号是ttyUSB0,接下来将该串口的权限开放:
sudo chmod 666 /dev/ttyUSB0
2.其他问题
参考文献:https://blog.csdn.net/qq_16775293/article/details/78144156
解决方案
1)检查是否在DJI Assistant 2软件上勾选开发者选项,并且检查在本文前面修改的波特率和DJI Assistant 2上设置的是否一致。
2)在使用Onboard SDK前,遥控器连接手机,手机连网,然后在软件DJI GO上面登陆进行激活。
3)最好跑程序的时候就讲遥控器打开,并拨到F挡位。
4)记得我们用的是USB转串口模块,从飞机机身 UART_CAN2接口都的数据,使用的是官方送的三根的数据线,RT,TX记得对调,而不是使用USB线直接从飞机机身连接到电脑