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

【大疆无人机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控制,具体档位说明见其用户说明书。)

软件准备:

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

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二者收发方是否接正确。

 

 

 

 

<think>好的,我现在需要帮助用户解决大疆A3飞控同时连接Jetson NX和笔记本电脑的问题,以实现ROS节点控制与Assistant2仿真。首先,我需要了解用户的具体需求:他们希望飞控同时连接两个设备,个用于运行ROS节点的Jetson NX,另个用于运行Assistant2仿真的笔记本电脑。这涉及到硬件连接和软件配置两个方面。 首先,硬件连接部分。大疆A3飞控通常通过串口进行通信,但个串口可能无法同时连接两个设备。这时候可能需要考虑使用USB Hub或者串口分线器。不过,分线器可能会导致数据冲突,所以需要确认飞控是否支持多设备同时访问。或者,可能飞控有多个UART接口,比如UART1和UART2,可以分别连接不同的设备。例如,Jetson NX通过UART1连接,而笔记本电脑通过UART2连接。但需要确认A3飞控的接口数量和类型,以及是否支持多路通信。 接下来是软件配置部分。对于Jetson NX,需要安装OSDK或OSDK-ROS,并配置相应的ROS节点。而对于笔记本电脑,需要安装Assistant2软件,并通过USB转串口连接到飞控的另个UART接口。需要确保两个设备的波特率、数据位、停止位等参数致,避免通信错误。此外,可能需要设置API控制权限,确保两个设备不会同时发送冲突的指令,比如个在控制飞行,另个在读取数据,这可能需要通过API中的控制权管理来实现。 用户提到的参考文献[^1]中提到了USB2TTL串口接线方法和OSDK源码编译,这可能对硬件连接和ROS节点配置有帮助。需要参考该文档中的步骤,确保Jetson NX正确连接到飞控的UART接口,并正确编译OSDK-ROS包。同时,笔记本电脑可能需要使用另个UART接口,通过USB转TTL模块连接,并运行Assistant2进行监控和仿真。 还需要考虑电源和信号线的连接是否正确,比如TX/RX交叉连接,地线是否接好,避免信号干扰。另外,飞控的固件版本是否支持多设备连接,以及OSDK的版本是否兼容当前的配置,这也是需要注意的地方。 可能的问题包括:如何分配API控制权限,避免两个设备同时发送指令导致冲突;如何配置两个独立的串口通道;如何处理可能的数据传输冲突;以及如何验证两个设备同时连接后的稳定性。解决方案可能包括设置主从模式,或者在软件层面进行控制权切换,比如通过ROS节点在需要时获取控制权,而Assistant2在仿真时仅进行监控。 此外,用户可能需要配置环境变量或启动文件,使得ROS节点和Assistant2能够同时访问飞控而不冲突。例如,在ROS中指定特定的UART端口,而Assistant2使用另个端口。同时,需要测试两个设备同时连接时的数据传输速率和稳定性,确保实时性要求得到满足。 最后,用户可能需要查阅大疆的官方文档,特别是关于多设备连接和API接口共享的部分,以获取更详细的配置指南和最佳实践。如果官方文档中没有明确说明,可能需要通过实验或联系技术支持来解决问题。</think>### 大疆A3飞控同时连接Jetson NX与笔记本电脑的实现方法 #### 、硬件连接方案 1. **多接口分配** A3飞控提供多个UART接口(如UART1、UXT2等),可分别连接不同设备: - **Jetson NX**:通过UART1连接,使用USB转TTL模块(如CP2102)或直接通过飞控的TTL引脚。需确保波特率致(例如$115200$)。 - **笔记本电脑**:通过UXT2接口连接,使用USB转CAN模块或USB直连,用于运行Assistant2仿真工具。 $$ \text{接线示例:} \\ \text{A3\_UART1\_TX → Jetson\_RX, A3\_UART1\_RX → Jetson\_TX, GND共地} $$ 2. **信号隔离与稳定性** 使用电平转换模块(如MAX3232)避免电压不匹配,并通过独立供电减少干扰。 --- #### 二、软件配置步骤 1. **Jetson NX端(ROS节点控制)** - 编译OSDK-ROS驱动包,配置`osdk_ros`节点: ```bash catkin_make -DCATKIN_WHITELIST_PACKAGES="dji_sdk;dji_sdk_demo" ``` - 修改`launch`文件指定UART端口: ```xml <param name="serial_name" value="/dev/ttyTHS1" /> <!-- Jetson NX的UART设备号 --> ``` 2. **笔记本电脑端(Assistant2仿真)** - 安装Assistant2,选择对应COM口(如`COM3`),配置飞控参数时需关闭Jetson NX的主动控制权限。 3. **API权限管理** - 在ROS节点中通过`obtain_ctrl_authority`服务获取控制权,Assistant2仅用于监控时需释放控制权: ```python rospy.ServiceProxy('/dji_sdk/obtain_release_ctrl_authority', srv_name) ``` --- #### 三、关键问题与解决方案 1. **数据冲突** - **现象**:双方同时发送指令导致飞控响应异常。 - **解决**:通过软件层协议约定主从模式(如Jetson NX为主动控制端,Assistant2仅监听)。 2. **端口占用冲突** - **现象**:多个设备尝试访问同UART接口。 - **解决**:物理隔离接口(如UART1与UXT2独立分配),或使用虚拟串口分流。 3. **实时性不足** - **优化**:限制Assistant2的数据刷新频率,优先保障ROS节点的控制指令带宽。 --- #### 四、验证流程 1. 单独测试Jetson NX的ROS节点控制功能(如读取IMU数据)。 2. 单独验证Assistant2的参数配置与仿真模式。 3. 双设备联调时,先启动ROS节点获取控制权,再开启Assistant2监控。 ---
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值