DJI Matrice 100 Drone激活失败

时间:2019-06-19 18:46:06

标签: c linux dji-sdk

我正在尝试通过在树莓派2上使用ROS来运行Matrice 100的示例应用程序。我已将Pi通过USB-TTL电缆连接至无人机,并连接至无人机的UART端口。我的笔记本电脑已连接至运行DJI Assistant 2的无人机,控制器和iPhone也通过DJI Go App(v3.1.54)无线连接至该无人机。所有人都已连接到互联网并登录到我的DJI开发者帐户。但是,当我运行“ roslaunch dji_sdk sdk.launch”时,我收到一条错误消息,指出无人机未激活。

我已启用DJI Assistant 2的API访问权限,已确保TX和RX引脚正确连接,并且已将sdk.launch文件更改为具有正确的应用程序ID和密钥。我已经在其他文章中注意到他们说要编辑AppID,Key和BaudRate的UserConfig.txt文件;但是,我无法在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

我检查了sdk.launch文件中的app_id和app_key,它们与我在DJI网站上的应用相同。仍然找不到文件“ UserConfig.txt”。在已经通过控制器连接到车辆后,在DJI Go App上没有激活设备的位置。对于DJI Assistant 2,我也找不到通过笔记本电脑下载选项卡或在何处/如何为OSDK激活无人机。我不认为它是用另一个app_id和密钥激活的,因为它很新。因此,这就是Im卡住的地方,想在无人机上运行一个示例应用程序。有关如何解决此问题的任何想法?

2 个答案:

答案 0 :(得分:0)

欢迎来到DJI SDK世界。糟糕的API文档和错误世界。

根据您的错误,链接正常->如您所见,固件版本。

该错误是新设备错误,这意味着您要么没有打开遥控器。或遥控器未连接到Go App或Go App未授权API。

连接所有组件,并按顺序打开所有组件的电源。

  1. 打开无人机和遥控器。连接电话并转到Go App。

确保您可以在地图上看到无人机的位置。

  1. 在Go App中的地图中看到无人机后,请运行sdk.launch。

执行此操作后,Go App将弹出 MESSAGE (信息)提示您api sth xxxxxxxxx,您必须按OK或Confirm。这是为了解决新设备错误

然后在终端上按ctrl-C并再次运行sdk.laucnch。

还要确保sdk.lunch应用程序ID与登录Go App的帐户相同

如果第一次不工作,请重新打开电源并重复此2步骤。

sdk.launch需要至少运行两次。我知道它很蠢,但它是DJI,很常见。

还请记住为/ dev / serial / by-id / usbXXXX设置udev规则,然后为序列设置低延迟模式。这些都是您也会期望的常见错误。

答案 1 :(得分:0)

几天前我遇到了同样的问题,实际上在Stack Overflow,DJI论坛等上遇到了10-20个帖子。我联系dev@dji.com,他们建议的方法对我有用。以下是电子邮件。

  

Bruce Cheung(DJI),CST 9月6日,11:22

     

亲爱的克里斯,

     

感谢您与DJI联系。

     

如果错误日志与以前相同,则新设备无关紧要   被激活。建议您删除catkin_ws文件夹,然后   git clone DJI OSDK-ROS源代码,修改dji_sdk_node.cpp,然后执行   catkin_make。您可以提供新的日志文件(如果有)   再次出现问题。祝您项目顺利。

     

感谢您的理解和支持,希望您过得愉快   天。

     

此致DJI SDK支持团队

有效后我的回复:

  

谢谢,我接受了您的建议,它奏效了。

     

我删除了文件夹,做了catkin_make。这次我登上了第二   developer.dji.com上的SDK项目,并改用了那个。我的第一次   一个已经在同一台计算机上但通过Linux(不是   ROS SDK)。不知道这是否有所作为。现在可以使用了。

     

克里斯

我真的不确定为什么先删除然后再卸载是可行的,因为从字面上看,我只是在一两天前添加了新安装。但是,猜想它奏效了。我也做了第二个API密钥,但是根据DJI的说法,这并不是它起作用的原因。