无人机版本未获取 M300 OSDK
Drone version not obtained M300 OSDK
我正在尝试使用 Nvidia Jetson Nano 作为机载计算机,使用 OSDK 与 Matrice 300 RTK 进行通信。电脑和无人机是用OSDK Expansion模块连接的,我用的是双USB线(USB 3 Type A)连接到电脑的USB接口。
我遇到了错误
ERRORLOG/1 @ getDroneVersion, L1707: Drone version not obtained! Please do not proceed.
Possible reasons:
Serial port connection:
* SDK is not enabled, please check DJI Assistant2 -> SDK -> [v] Enable API Control.
* Baudrate is not correct, please double-check from DJI Assistant2 -> SDK -> baudrate.
* TX and RX pins are invert
[4290298.543]STATUS/1 @ functionalSetUp, L282: Shake hand with drone Fail ! Cannot get drone version. (1/20)
我已经尝试使用 DJI Assistant 2 中可用的所有波特率(在应用程序和 UserConfig.txt 中更改它们)并启用 API 控制,但没有成功。
这些是我的 UserConfig.txt 的当前内容(没有我的实际应用 ID 和应用密钥)
app_id : [id]
app_key : [key]
device : /dev/ttyACM0
baudrate : 921600
acm_port : /dev/ttyACM0
谢谢。
设备端口和 acm 端口不可能是相同的 ACM0
连接大疆无人机时,应该是双口的。通常是一个 ttyUSB0 和 ttyACM0。 USB 用于正常控制和反馈,ACM 仅用于视频传输。通常 ACM 是可选的,不会导致您显示的错误。
如果您有其他 USB 设备。可能有 ttyUSB1 或 ttyACM1 或 XX2 或 XX3。您可以按类型找到此列表
ls /dev
所以尽量减少由此造成的错误。您需要通过调用 lsusb 或
来了解您的设备名称是什么
ls /dev/serial/by-id/
在我的例子中,有一个额外的指纹设备可能会混淆系统,如下所示
找到确切的id后,您可以使用以下方式设置确切的端口
app_id : [id]
app_key : [key]
device : /dev/serial/by-id/usb-FTDI_USB-RS232_Cable_FT5T6MGL-if00-port0
baudrate : 921600
acm_port : /dev/serial/by-id/XXXXXXXXXXX
我的问题的最终解决方案是,除了 USB 连接之外,我还需要一个到 OSDK 扩展模块的串行连接。袁盛海博士是对的,但是,我的端口设置不正确。我最终做的是将我的 Nvidia Jetson 上的 GND、TX 和 RX 引脚的三根线连接到模块,如图所示。
这能够 运行 具有以下 UserConfig.txt
的 dji 飞行样本
app_id : my app id
app_key : my app key
device : /dev/ttyTHS1
baudrate : 230400
acm_port : /dev/ttyACM0
我正在尝试使用 Nvidia Jetson Nano 作为机载计算机,使用 OSDK 与 Matrice 300 RTK 进行通信。电脑和无人机是用OSDK Expansion模块连接的,我用的是双USB线(USB 3 Type A)连接到电脑的USB接口。
我遇到了错误
ERRORLOG/1 @ getDroneVersion, L1707: Drone version not obtained! Please do not proceed.
Possible reasons:
Serial port connection:
* SDK is not enabled, please check DJI Assistant2 -> SDK -> [v] Enable API Control.
* Baudrate is not correct, please double-check from DJI Assistant2 -> SDK -> baudrate.
* TX and RX pins are invert
[4290298.543]STATUS/1 @ functionalSetUp, L282: Shake hand with drone Fail ! Cannot get drone version. (1/20)
我已经尝试使用 DJI Assistant 2 中可用的所有波特率(在应用程序和 UserConfig.txt 中更改它们)并启用 API 控制,但没有成功。
这些是我的 UserConfig.txt 的当前内容(没有我的实际应用 ID 和应用密钥)
app_id : [id]
app_key : [key]
device : /dev/ttyACM0
baudrate : 921600
acm_port : /dev/ttyACM0
谢谢。
设备端口和 acm 端口不可能是相同的 ACM0
连接大疆无人机时,应该是双口的。通常是一个 ttyUSB0 和 ttyACM0。 USB 用于正常控制和反馈,ACM 仅用于视频传输。通常 ACM 是可选的,不会导致您显示的错误。
如果您有其他 USB 设备。可能有 ttyUSB1 或 ttyACM1 或 XX2 或 XX3。您可以按类型找到此列表
ls /dev
所以尽量减少由此造成的错误。您需要通过调用 lsusb 或
来了解您的设备名称是什么ls /dev/serial/by-id/
在我的例子中,有一个额外的指纹设备可能会混淆系统,如下所示
找到确切的id后,您可以使用以下方式设置确切的端口
app_id : [id]
app_key : [key]
device : /dev/serial/by-id/usb-FTDI_USB-RS232_Cable_FT5T6MGL-if00-port0
baudrate : 921600
acm_port : /dev/serial/by-id/XXXXXXXXXXX
我的问题的最终解决方案是,除了 USB 连接之外,我还需要一个到 OSDK 扩展模块的串行连接。袁盛海博士是对的,但是,我的端口设置不正确。我最终做的是将我的 Nvidia Jetson 上的 GND、TX 和 RX 引脚的三根线连接到模块,如图所示。
这能够 运行 具有以下 UserConfig.txt
的 dji 飞行样本app_id : my app id
app_key : my app key
device : /dev/ttyTHS1
baudrate : 230400
acm_port : /dev/ttyACM0