Не удалось активировать DJI Matrice 100 Drone - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь запустить пример приложения для Matrice 100, используя ROS на Raspberry Pi 2. У меня есть Pi, подключенный к дрону через кабель USB-TTL к порту UART на дроне. Мой ноутбук подключен к дрону, на котором работает DJI Assistant 2, а контроллер и мой iPhone также подключены к дрону по беспроводной связи через приложение DJI Go (v3.1.54). Все они подключены к Интернету и вошли в мою учетную запись разработчика для DJI. Однако, когда я запускаю «roslaunch dji_sdk sdk.launch», мне возвращается ошибка, в которой говорится, что дрон не активирован.

У меня включен доступ API из DJI Assistant 2, я убедился, что контакты TX и RX подключены правильно, и я изменил свой файл sdk.launch, чтобы иметь правильный идентификатор приложения и ключ. Я заметил в других сообщениях, что они говорят, чтобы отредактировать файл UserConfig.txt для Идентификатора приложения, Ключа и BaudRate; Однако я не смог найти этот файл на моем Pi (он не существует). Просто файл sdk.launch, в котором я правильно изменил эти настройки, чтобы соответствовать моему приложению и дрону.

STATUS/1 @ init, L55: attempting to open device /dev/ttyUSB0 with     baudrate 230400...
STATUS/1 @ init, L65: ...serial started successfully.
STATUS/1 @ parseDroneVersionInfo, L727: device Serial No. = 041DF31901
STATUS/1 @ parseDroneVersionInfo, L729: Hardware = M100
STATUS/1 @ parseDroneVersionInfo, L730: Firmware = 3.1.10.0
STATUS/1 @ parseDroneVersionInfo, L733: Version CRC = 0xA6453AAC
STATUS/1 @ initSubscriber, L778: Telemetry subscription mechanism is not   supported on this platform!
STATUS/1 @ initMFIO, L981: MFIO is not supported on this platform!
STATUS/1 @ initHardSync, L1077: Hardware sync is not supported on this platform!
STATUS/1 @ activate, L1313: version 0x3010A00
STATUS/1 @ getErrorCodeMessage, L656: activate
STATUS/1 @ getCMDSetActivationMSG, L705: NEW_DEVICE_ERROR

ERRORLOG/1 @ activate, L1339: Failed to activate please retry SET 0x0 ID 0x1 code 0x3

ERRORLOG/1 @ activate, L1346: Solutions for NEW_DEVICE_ERROR
   *Double check your app_id and app_key in UserConfig.txt. Does is match with your DJI developer account?
   *If this is a new device, you need to activate it through the App or DJI assistant 2 with internet
   For different aircraft, the App and the version of DJI Assistant 2 might be different, 
   For A3, N3, M600/Pro and M100, please use DJI Go App
   For DJI Assistant 2, it's available on the download tab of the product page
   *If this device is previously activated with another app_id and app_key, you will need to reactivate it again
   *A new device needs to be activated twice to fix the NEW_DEVICE_ERROR, so please try it twice.

[ERROR] [1560967071.851508645]: drone activation error
[ERROR] [1560967071.851845364]: Vehicle initialization failed

Я проверил app_id и app_key в файле sdk.launch, и они такие же, как в моем приложении на сайте DJI. Не удалось найти файл "UserConfig.txt". Я не вижу, где активировать устройство в приложении DJI Go после того, как оно уже подключено к транспортному средству через контроллер. Для DJI Assistant 2 я не могу найти вкладку загрузки или где / как активировать дрон для OSDK через мой ноутбук. Я не верю, что он был активирован с другим app_id и ключом, учитывая, что он очень новый. Так вот, где я застрял, и хотел бы запустить пример приложения на дрон. Есть идеи, как решить эту проблему?

1 Ответ

0 голосов
/ 20 июня 2019

Добро пожаловать в адский мир DJI SDK.Мир хреновой документации по API и земля ошибок.

Исходя из вашей ошибки, ссылка в порядке -> как вы видите версию прошивки.

Ошибка - ошибка нового устройства, что означает, что вы либо не открыли пульт.Или пульт дистанционного управления не подключен к приложению Go или приложение Go не авторизует API.

Подключите все и включите все соответствующим образом.

  1. включите дрон и пульт.подключите телефон и на Go App.

Убедитесь, что вы видите положение дрон на карте.

После того, как вы увидели беспилотника на карте в Go App, запустите sdk.launch.

После того, как вы это сделаете, в приложении Go появится СООБЩЕНИЕ со словами api sth sth xxxxxxxxx, вы должны нажать OK или Подтвердить.Это необходимо для устранения ошибки нового устройства

Затем нажмите ctrl-C для терминала и снова запустите sdk.laucnch.

Также убедитесь, что идентификатор приложения sdk.lunch - это та же учетная запись, котораявойдите в приложение Go

Если первый раз не работает, снова включите и повторите этот шаг 2.

sdk.launch должен быть запущен как минимум дважды.Я знаю, что это глупо, но это DJI, и это распространено.

Также не забудьте установить правила udev для вашего / dev / serial / by-id / usbXXXX, а затем установить режим низкой задержки для последовательного порта.Это все распространенные ошибки, которые вы также ожидаете.

...