基于Linux平台的大疆A3飞控Onboard SDK使用指南 报错处理指南

前言

本文总结了使用树莓派4B调用Onboard SDK在模拟器中运行飞行控制样例操控大疆A3飞控所遇到到的各类问题。

在整个调试过程中,大疆这款产品一言难尽。就个人而言,不推荐大疆A3飞控!不推荐大疆A3飞控,不推荐大疆A3飞控!如果因为某些原因必须使用大疆A3飞控,请参考下文。

看完本文,你可以解决在Linux平台上使用Onboard SDK使用大疆A3飞控的大部分问题。大疆N3飞控、经纬系列无人机在使用Onboard SDK遇到问题时也可在一定程度上参考此篇文章。

环境配置

硬件配置

本文使用到的硬件有:

  • 大疆A3飞控套装

  • 乐迪AT10遥控器套装

  • 航模电池

  • 树莓派4B

  • Windows电脑

乐迪AT10遥控器套装为SBUS协议的遥控器,可使用其他SBUS协议的遥控器,也可使用大疆的RC遥控器。

航模电池可以使用A3飞控支持的3S~12S锂聚合物电池。

树莓派4B搭载Debian 11 (bullseye) 32位系统,内核版本为6.1。可使用其他任一Linux发行版的虚拟机替换,例如Ubuntu。

软件配置

本文使用到的软件有:

产品激活

由于SDK在首次使用时会校验产品激活信息,且大疆开发者网站必须使用邮箱登录,请将您激活飞控设备的大疆账号绑定常用邮箱。

如果您是新手,请务必跟随下文中的步骤操作。

如果您已注册过大疆账号,且熟悉绑定邮箱操作,请直接登录账号并绑定邮箱,然后跳转到“激活飞控”章节。

如果您已注册过大疆账号且绑定邮箱,请直接跳转到“激活飞控”章节。

注册大疆官网账号

在产品激活之前,请先前往大疆官网注册账号,如图1所示。

图1 注册按钮

在注册完成后,请点击登录按钮进行登录,然后打开“我的账号”,并点击“账号管理”,在“账号管理”界面设置邮箱,如图2、图3、图4所示。

图2 “我的账号”按钮
图3 账号管理
图4 绑定邮箱

​激活飞控

接线

激活飞控前需要对飞控上电。为了给飞控上电,需要先组装飞控套装。

大疆提供的产品手册中已经提供了详细的连线方式,如图5所示。Micro USB--USB的连接线在飞控配套的线缆中可以找到。如果您对连线还有其他疑问,请查阅产品手册

图5 A3飞控物理接线图

​激活

飞控上电后,请在您的电脑中安装并打开DJI Assistant 2。右上角可以切换语言,如图6所示。隐私政策应当选择“同意”。

图6 切换语言

​接着来到“数据授权”界面,为了正常使用OnBoard SDK,请务必授权所有的数据信息,如图7所示。

图7 数据授权

​一切设置就绪后,会跳转到等待连接页面。

图8 等待连接界面

接着,您需要将飞控通过Micro USB--USB线缆连接到电脑。DJI Assistant 2会自动检测并识别飞控。如果您已经将线缆连接到电脑,那么DJI Assistant 2应当会自动检测到,如图9所示。

图9 检测到飞控

如果您在插入线缆后,DJI Assistant 2没有识别到飞控,请尝试重复插拔或使用电脑的其他USB接口。如果重复插拔和更换USB接口均无效,请关闭DJI Assistant 2并重新打开。如果重新打开时提示“DJI Assistant 2仍在后台运行中”,请打开电脑的任务管理器,在“进程”页面中搜索“DJI”,在“后台进程”一栏中手动结束进程,如图10所示。

图10 结束后台进程

​如果您是首次连接飞控,那么会DJI Assistant 2会弹窗提示您登录账号并激活飞控,请登录您的账号并点击激活按钮。一切就绪后,会转到概览页面,如图11所示。您的界面中某些参数显示可能与图11不同,请不要担心。

图11 概览页面

基础设置

请参考远航科技N3飞控安装视频对飞控和遥控器进行基础设置。虽然教程视频中为N3飞控,但参数设置基本相同,请不必担心。无论您是新手或老手,都请您仔细观看视频,这会影响后续SDK执行是否顺利。

请务必按照视频一步步操作。

请务必按照视频一步步操作,

请务必按照视频一步步操作,

在按照视频操作后,您应当完成以下内容:

  • 飞控的安装

  • 电调线的安装(如果您计划在纯模拟器中运行,请忽略)

  • 遥控器的配对和校准

  • 飞控的校准

请务必确保以上项目均设置完毕。

串口连接飞控

在基础设置完成后,我们需要进行SDK相关配置并使用串口连接到飞控。您可以参考这篇文章进行SDK相关配置并使用串口连接到飞控。

大疆SDK

下载SDK

在确保可以使用串口正确与飞控通信后,需要下载大疆官方的OnBoard SDK。

根据官方文档,目前最新的Onboard SDK版本为4.1,但A3飞控最高仅支持Onboard SDK 3.9版本,官方推荐使用3.9版本,且固件需要更新到最新版本,如图12所示。同时,大疆开发者官网中的文档也仅支持4.1版本的SDK,如需查看3.9版本的文档,请点击此处下载。

图12 SDK推荐版本信息

在了解到版本支持情况后,请连接到Linux虚拟机或者树莓派开发板,执行以下命令安装依赖。

sudo apt update
sudo apt install -y git g++ cmake

依赖安装完成后,您可以通过git下载OnBoard SDK 3.9版本、打开OnBoard SDK 3.9的github页面下载压缩包、点击当前页面顶部的资源下载。

如果您选择使用git下载,请执行以下命令下载并切换到代码主目录。

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

如果您选择下载压缩包,请自行下载压缩包并上传到Linux虚拟机或者树莓派开发板,并执行下面的命令解压缩和切换到代码主目录。

sudo apt update
sudo apt install unzip
unzip Onboard-SDK-3.9.zip
cd Onboard-SDK-3.9/

切换到代码主目录后,请执行下面的命令创建编译目录并进行编译。

mkdir build && cd build
cmake ..
make

注册APP

在程序编译的同时或者程序编译完成后,您需要前往大疆开发者官网。登录大疆账号,如图13和图14所示。由于SDK在首次使用时会校验产品激活信息,且大疆开发者网站必须使用邮箱登录,请将您激活飞控设备的大疆账号绑定常用邮箱,并登录激活飞控设备的大疆账号。

图13 登录按钮
图14 登录大疆账号

登录完成后,请点击右上角的头像,进入“个人中心”,如图15所示。

图15 进入个人中心

在“个人中心”点击右上方的“创建应用”,并填写相应信息,最后点击“创建”按钮,如图16和图17所示。您在此处可能与图16有所区别,请不必担心。

注意APP Type必须选择为OnBoard SDK,其他信息如实填写即可。如果您从未注册过大疆开发者,这里可能会要求您填写申请信息,请不必担心。如实填写信息后申请会立刻通过。

图16 创建应用
图17 填写应用信息

在应用创建完成后,“个人中心”界面应当图18所示。尽管大疆官网提示“请在激活邮件中激活你的应用”,但是我在使用163邮箱时,并不会收到首封邮件,而需要我手动点击“重发邮件”按钮,进行邮件重发操作,如图19所示。

图18 应用创建完成
图19 重发邮件

点击邮箱中的邮件激活并查看APP信息,应当如下图所示。请记录此处的APP ID和APP Key。

图20 APP信息

回到我们的Linux虚拟机或者树莓派开发板,在程序编译完成后,执行下面的命令拷贝模板,如图21所示。如果拷贝失败,请使用pwd命令检查当前所在的目录,当前所在目录应当为Onboard SDK主目录下的build目录。

cp ../sample/platform/linux/common/UserConfig.txt bin/
图21 拷贝模板

最后,使用你熟悉的编辑器编辑刚刚拷贝的UserConfig.txt文件,这里以vi为例,执行下面的命令进行编辑。

cd bin/
vi UserConfig.txt

此时,文件内容应该如图22所示。请将大疆开发者个人中心中的APP ID与APP KEY复制粘贴到此处,并根据自己实际的情况修改设备地址和波特率。最终效果应该如图23所示。

在vi编辑器中,按下键盘上的字母“i”进入插入模式。按下键盘上的“ESC”,输入“:wq”,按下回车键即可退出。

图22 填写模板
图22 模板填写完成

运行飞行示例程序

在执行飞行示例程序之前,您需要检查以下内容:

  • 遥控器已打开

  • 飞控已通过USB线缆连接到DJI Assistant 2

  • 遥控器已与接收机配对

  • 接收机已正确连接到飞控

  • 遥控器已正确设置通道类型

  • 遥控器已正确校准

  • 遥控器左右摇杆均处于正中心

确保以上内容无误后。打开DJI Assistant 2,切换到“模拟器页面”,点击“打开”按钮。接着点击“开始仿真”,如图23和图24所示。开始仿真成功后,飞控LED灯会经过一系列变化,最终变为绿灯常闪或黄灯常闪。

如果遥控器当前设定的姿态为A模式,则飞控黄灯常闪,其只能进行常规的起飞和降落。如果您想让其执行更复杂的控制,请拨动遥控器的姿态切换开关,将其切换为P模式,此时其LED灯绿灯常闪。更多关于LED灯的信息请参考“附录”章节的“飞控LED状态”。

图23 打开模拟器
图24 开始仿真

点击开始仿真后,仿真窗口并不会弹出。而是会自动最小化,请您手动打开仿真窗口,如图25所示。

图25 启动模拟器

最后,让我们执行以下命令运行飞行控制示例程序。

sudo ./djiosdk-flightcontrol-sample UserConfig.txt

一般情况下,您是通过新创建的APP ID和APP KEY运行示例程序。因此,第一次运行时会提示L801:NEW_DEVICE_ERROR,如图26所示。大疆会在第一次运行时通过DJI Assistant 2连接的电脑向大疆服务器进行注册。因此该步骤的DJI Assistant 2需一直保持连接,并且连接的电脑可以访问互联网。

图26 新设备报错

此时不必担心,我们只需再次运行示例程序即可。

图27 选择任务

最后,我们输入“a”即可执行最简单的起降任务,如图28所示。模拟器中的状态是完全同步的。

图28 a任务执行情况

接着我们可以再次运行飞行控制示例程序执行b起降+简单控制任务,如图29所示。要想执行b任务,遥控器的模式必须设置为P,此时飞控的LED必须为绿灯慢闪。

图29 b任务执行情况

报错处理指南

连接飞控时报错L822:UNKNOW_ACK_ERROR_CODE

错误详情

图30 L822:UNKNOW_ACK_ERROR_CODE

错误分析

该错误是因为Linux上位机不能成功连接到飞控。

解决方案

请参考串口连接大疆A3飞控尝试排查问题。

指定飞行任务后报错L818: MOTOR_FAIL_HAVE_RUN_SIM

错误详情

图31 L818: MOTOR_FAIL_HAVE_RUN_SIM

错误分析

大疆Onboard SDKAPI Reference--ErrorCode--CommonACK类中指示了该错误代码。

图32 大疆官网错误代码

该错误代码的解释为:“模拟器已经运行”。出现该问题时,飞控的LED指示灯往往为红绿灯交替闪烁,该状态指示飞控正处于模拟器模式,但又无法成功连接到模拟器。

解决方案

解决思路是使飞控退出模拟器模式或者使飞控连接到模拟器。目前还没有探索出使飞控退出模拟器模式的方法,官方文档中也没有相关说明。之前有几次在DJI Assistant 2中“基本设置”页面,“ESC设置”中进行任意一个电机的测试,有时可以成功使其退出模拟器模式,但该方法有时又不起作用。因此,此处更推荐使用使飞控连接到模拟器的方法。

  • 重新开始仿真(推荐)

在DJI Assistant 2的“模拟器”页面中,点击“打开”按钮,接着点击“开始仿真”按钮即可重新开始仿真。开始仿真成功后,飞控LED灯会经过一系列变化,最终变为绿灯常闪或黄灯常闪。更多关于飞控LED灯信息,请参考文末“附录”中的“飞控LED”章节。

图33 打开模拟器
图44 开始仿真

指定飞行任务后报错L822:UNKNOW_ACK_ERROR_CODE

错误详情

图45 L822:UNKNOW_ACK_ERROR_CODE

错误分析

注意!该报错会在多处地方出现,请核对出现的位置,确保该报错出现在指定飞行任务后!

注意!该报错会在多处地方出现,请核对出现的位置,确保该报错出现在指定飞行任务后!

注意!该报错会在多处地方出现,请核对出现的位置,确保该报错出现在指定飞行任务后!

该报错目前出现原因不明,可能是遥控器状态或飞控状态有误。

解决方案

  • 关闭遥控器开关再重新打开。

  • 断开飞控电源并重新上电。

  • 重新刷写飞控固件。

遇到此问题时,我通过关闭遥控器开关再重新打开解决了这个问题。如果该方法无效,建议可尝试断开飞控电源并重新上电、重新刷写飞控固件等其他措施。

运行飞行控制示例程序时报错L818: MOTOR_FAIL_ASSISTANT_PROTECTED

错误详情

图46 L818: MOTOR_FAIL_ASSISTANT_PROTECTED

​错误分析

大疆Onboard SDKAPI Reference--ErrorCode--CommonACK类中指示了该错误代码。

图47 大疆官网错误代码

​该错误代码的解释为“通过USB数据线将飞行器与调参软件连接”。

但经过测试,该错误事实上是因为遥控器配置错误。

解决方案

请检查以下内容:

  • 遥控器已打开

  • 飞控已通过USB线缆连接到DJI Assistant 2

  • 遥控器已与接收机配对

  • 接收机已正确连接到飞控

  • 遥控器已正确设置通道类型

  • 遥控器已正确校准

  • 遥控器左右摇杆均处于正中心

  • 模拟器打开并已点击“开始仿真”

如果遥控器已打开、飞控已通过USB线缆连接到DJI Assistant 2、遥控器已正确与接收机配对、接收机已正确连接到飞控、遥控器已正确设置通道类型,DJI Assistant 2的主界面左下角会正确显示“RC状态”;如果遥控器未正确连接,那么“RC状态”会显示为“失控”,如图48所示。

如果您不了解遥控器如何与接收机进行配对,请参考遥控器说明书。

如果您不会将接收机正确连接到飞控,请参考《A3用户手册》中“安装”章节的“开始安装”部分正确接线。如果遥控器正确与接收机配对且接收机正确连接到飞控,遥控器中的“信号”指示应当显示有较强的信号。

如果遥控器没有设置正确通道类型或遥控器未正确校准,请观看远航科技的N3飞控安装视频,大约从7:56秒开始。如果您是小白用户,强烈建议完整观看此视频。设置完成后,拨动遥控器的左右摇杆,DJI Assistant 2的“概览”页面中的“控制”部分关于遥控器的A、E、T、R通道中显示的蓝色条应当会发生变化,如图49所示。

如果遥控器左右摇杆未处于正中心,请将其拨动至正中心。如果均位于正中心,此时DJI Assistant 2的“概览”页面中的“控制”部分关于遥控器的A、E、T、R通道中显示的蓝色条应当均位于红线附近,如图50所示。

图48 遥控器未正确连接时的状态
图49 遥控器正确连接时的状态
图50 设置完成时的状态

附录

飞控LED灯

请参考大疆A3飞控LED指示灯状态简析及异常状态处理方法了解飞控LED灯状态和错误时的修复方案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值