我试图通过在树莓派2上使用ROS来运行Matrice 100的示例应用程序。我已通过USB-TTL电缆将Pi连接到无人机的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卡住的地方,想在无人机上运行一个示例应用程序。有关如何解决此问题的任何想法?
最佳答案
欢迎来到DJI SDK世界。糟糕的API文档和错误世界。
根据您的错误,链接可以正常运行->如您所见,您可以看到固件版本。
该错误是新设备错误,这意味着您要么没有打开遥控器。或者遥控器未连接到Go App或Go App未授权API。
连接所有组件,并按照规定打开所有组件的电源。
打开无人机和遥控器。连接电话并转到Go App。
确保您可以在地图上看到无人机的位置。
在Go App中的地图中看到无人机后,请运行sdk.launch。
完成后,Go App会弹出一条消息,提示您api sth xxxxxxxxx,您必须按OK或Confirm。这是为了解决新设备错误
然后在终端按ctrl-C并再次运行sdk.laucnch。
还要确保sdk.lunch应用程序ID与登录Go App的帐户相同
如果第一次不工作,请重新打开电源,然后重复此2步骤。
sdk.launch需要至少运行两次。我知道它很愚蠢,但它是DJI,很常见。
还要记住要为/ dev / serial / by-id / usbXXXX设置udev规则,然后为序列号设置低延迟模式。这些都是您也会期望的常见错误。
关于c - DJI Matrice 100 Drone激活失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56674047/