无人机版本未获取 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