Версия дрона не получена M300 OSDK

#nvidia #dji-sdk #drone

Вопрос:

Я пытаюсь использовать Nvidia Jetson Nano в качестве бортового компьютера для связи с Matrice 300 RTK с помощью OSDK. Компьютер и беспилотный летательный аппарат подключены с помощью модуля расширения OSDK, и я использую двойной USB-кабель (USB 3 типа 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 (без моего фактического идентификатора приложения и ключа приложения)

   app_id : [id]
  app_key : [key]
  device : /dev/ttyACM0
  baudrate : 921600
  acm_port : /dev/ttyACM0
 

Спасибо.

Ответ №1:

не может быть, чтобы порт устройства и порт acm были одинаковыми ACM0

При подключении дрона DJI должно быть два порта. Обычно один ttyUSB0 и ttyACM0. USB предназначен для обычного управления и обратной связи, а ACM предназначен только для передачи видео. и обычно ACM являются необязательными и не вызовут ошибку, которую вы показываете.

если у вас есть другие USB-устройства. там может быть ttyUSB1 или ttyACM1, или XX2, или XX3. вы можете найти список этого по типу

 ls /dev
 

Таким образом, чтобы свести к минимуму ошибку, вызванную этим. Вам нужно понять, как называется ваше устройство, позвонив либо в lsusb, либо

 ls /dev/serial/by-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
 

Ответ №2:

Решение моей проблемы закончилось тем, что мне понадобилось последовательное подключение к модулю расширения OSDK в дополнение к USB-соединению. Однако доктор Юань Шэньхай был прав в том, что моя настройка порта была неправильной. В итоге я подключил три провода от контактов GND, TX и RX на моем Nvidia Jetson к модулю, как показано на этом рисунке.

Схема подключения

Это позволило запустить образец полета dji со следующими UserConfig.txt

 app_id : my app id
app_key : my app key
device : /dev/ttyTHS1
baudrate : 230400
acm_port : /dev/ttyACM0