【大疆无人机OnboardSDK(一)Assistant2仿真系统搭建】

news/2025/2/12 2:54:01/

【大疆无人机OnboardSDK(一)Assistant2仿真系统搭建】

首先:一定要仔细阅读官网给出的说明书!M600用户使用说明,以及妙算2-C使用说明,不然都搞不清哪些线的作用是干什么的,也不清楚飞控上面哪些预留口是正常有用的!

为了想要完成OnboardSDK开发,首先要对其仿真模拟平台进行搭建,大疆自带了Assistant2软件(貌似只有windows和mac版本)该软件可对无人机固件升级,OnboardSDK开发API设置,波特率设置,以及仿真模拟GUI显示无人机飞行姿态等。

硬件平台准备:

  • 大疆M600无人机(A3飞控);

  • win10电脑一台(用来安装Assistant2);
  • ubuntu16.04电脑一台(我使用的妙算2-C用来编译运行OnboardSDK);妙算2-C 是大疆自己出产的inter i7的处理器即CPU版本。
  • 无人机遥控器(用来将档位调至F档,表示采用OnboardSDK控制,具体档位说明见其用户说明书。)

软件准备:

  • DJI Assistant2下载:https://www.dji.com/cn/downloads/softwares/assistant-dji-2

  • OnboardSDK下载(注意下载到连接飞控的Ubuntu电脑上才行,我这里下载到妙算2里面了):

  • https://github.com/dji-sdk/Onboard-SDK/releases 

重点来了,如何连接线?按照上面的准备工作,查看大疆开发者官网给出的连线示意图:

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

官网给出的图其实很清楚:

 

A3也就是我们M600盖子下面的飞控了,打开顶盖即可发现:

1、而只需要用API接口就行,那我怎么知道API那几个孔端点是啥?所以官网给出了下面示意图来说明:从左往右依次对应:

(我试了USB转TTL之后的波特率也可以自行设置,例如230400。用转接后USB可以随便插妙算任意一个USB口即可,USB对应的设备为ttyUSB0)因此这时需要使用USB-TTL的转接线才能连接到Ubuntu(妙算2)的USB插口上。貌似默认配件里面没有,要向厂家要,或者网上买一根。这个线长这样:

然后就可以将A3和Ubuntu连接起来了(只需要用到下面三个线):还是上面第一张图。

注意TXD表示发送数据,RXD表示接受数据!一般串口就用这二个来表示。左边发送,右边接收,右边发送,左边接收!

2、M600无人机外面的LED指示灯下给出的一个Micro-USB接口(即之前常用的安卓数据线的另一头)。这个是用来连接windows电脑usb,进而利用Assistant2来进行执行仿真模拟,固件升级等都是这个口。

3、连接完成之后:飞控上面的红色指示灯会亮起。

仿真模拟实验:

首先:获取权限

您需要将您的用户添加到dialout组中,以获取uart通信的读/写权限。请按照以下步骤操作:

  1. 在终端键入   sudo usermod -a -G dialout $USER
  2. 注销您的用户帐户,然后再次登录以使权限生效。

1.打开妙算终端下载OnboardSDK:

从github下载OnBoard-SDK源码

git clone https://github.com/dji-sdk/Onboard-SDK

2.下载好源码之后进入源码并编译:

cd Onboard-SDK
mkdir build
cd build
cmake ..
make 

3.将配置复制进当前Onboard-SDK下面的UserConfig.txt到:bin/目录下:

cp ../sample/linux/common/UserConfig.txt bin/

4.进入bin/目录下修改上面复制过来的用户配置文件。

cd ./bin
vim UserConfig.txt 

配置文件如下:

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去大疆开发者网站:https://developer.dji.com/cn/

注册账号并审核升级为开发者用户,在用户中心创建一个app点进去即可获得:填好上面内容。

5.执行官方Samples示例程序,并在Assistant2中查看仿真Demo轨迹。

cd bin
./djiosdk-flightcontrol-sample UserConfig.txt

成功运行后,会提示你数据命令,这时你需要讲遥控器拨到F档,然后终端会提示你输入命令a或b。

效果如下:

注意事项:

①最好跑程序的时候就提前将遥控器打开,并拨到F挡位。注意把无人机旋翼收起来(尽管它也飞不起来)

②使用Onboard SDK前,注意将Ubuntu(执行时不需联网,但是下载onboardSDK时需要联网)通过USB-TTL连接A3飞控,遥控器连接手机,手机连网,windows电脑(联网)连接Micro-USB,首次执行Samples时会在软件DJI Assistant2上面要登陆进行激活。

③注意在Windows电脑下打开Assistant2时选择SDK,并勾选启动API控制,波特率调整和上面UserConfig.txt中填写的一致。调完波特率之后需重新启动一下无人机A3飞控。

④串口打开失败

ls -l /dev |grep ttyU

开放权限:

sudo chmod 666 /dev/ttyUSB0

⑤没有检测到上面串口,检查TXD和RXD二者收发方是否接正确。

 

 

 

 


http://www.ppmy.cn/news/502343.html

相关文章

大疆开挂,谁都不能阻拦它登上好莱坞无人机领域巅峰!

大疆最近发布,新一代无人机M600,志在好莱坞。 最近,在拉斯维加斯举行的国家广播协会年会上,大疆向大家展示了其公司最近面向好莱坞的两款新产品,其中一个便是标价4599美元、能力超强的无人机的Matrice 600。这款新产品…

ICC2: 工具是如何控制局部利用率的?

分析congestion map时不难发现,route congestion高的地方局部利用率往往要比周围低,这时疑问就来了,既然standard cell的分布不是均匀的,那局部再降一降彻底解决congestion问题不好嘛?工具是如何控制这种congestion driven的行为的呢? 在place_opt以及clock_opt的log里都…

sql数据处理,各种条件语句

--数据库多表的连接查询 一、外连接 1.左连接 left join / left outer join 左外连接包含left join 左表里的所有行,若左表在右表没有匹配,则结果中对应 行的右表部分全部为空 select * from student left join course on student.ID course.ID …

Qt5.15.2 Webassembly源码裁剪编译

第一步: .\configure -debug-and-release -opensource -prefix "D:\qt-everywhere-src\compFile" -platform win32-g -nomake examples 第二步: mingw32-make -j4 第三步: mingw32-make install 编译core与gui模块&…

layui时间控件单击双击改变状态

文章目录 1️⃣ layui单击隐藏弹出的时间窗2️⃣ layui双击隐藏弹出的时间窗2.1 找到官方的插件2.2 改变引用,加上change函数 优质资源分享 作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418 layui时间控件单击双击改变状态&…

雪碧图

<html lang"en"> <head><meta charset"UTF-8"><title>雪碧图</title><style type"text/css">.lian:link{display: block;width: 42px;height: 30px;background-image: url(img/1.png);background-position:…

JUC高级-0620

8. CAS 原子类&#xff1a;Atomic没有CAS之前&#xff1a;多线程环境不使用原子类保证线程安全i&#xff08;基本数据类型&#xff09;&#xff0c;可以使用synchronized&#xff0c;但是很重有CAS之后&#xff1a; 使用AtomicInteger.getAndIncrement这样的API&#xff0c;保…

C++核心编程——详解函数模板

纵有疾风起&#xff0c;人生不言弃。本文篇幅较长&#xff0c;如有错误请不吝赐教&#xff0c;感谢支持。 &#x1f4ac;文章目录 一.模板的基础知识①为什么有模板&#xff1f;②初识模板 二.函数模板①函数模板的定义②函数模板的使用③函数模板实例化1️⃣隐式实例化2️⃣显…