DJI A3 Onboard SDK问题(无连接)

时间:2019-07-04 15:13:15

标签: dji-sdk

我有一个带A3控制器的DJI S900。我在Raspberry Pi和无人机之间建立了API连接。直到上周为止,一切都还算完美,但是现在,我正在处理如下所示的错误(我正在运行遥测示例)。

与串行电缆和Raspberry Pi无关。此外,已启用SDK,并且API设置正确。我重置了控制器并对其进行了升级。但是,我有同样的错误。另外,在升级控制器之前,我尝试过多次关闭所有内容,然后重新打开。

  • A3固件= V1.7.7.0,
  • OSDK = 3.8.1,
  • Raspberry Pi操作系统= Rasbian,
  • Lightbridge 2 = 1.1.40

读取应用ID     用户配置读取成功。

STATUS/1 @ init, L55: Attempting to open device /dev/serial0 with 
baudrate 230400...

STATUS/1 @ init, L65: ...Serial started successfully.

ERRORLOG/1 @ getDroneVersion, L1418: 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 inverted.
            * Serial port is occupied by another program.
            * Permission required. Please do 'sudo usermod -a -G dialout 
$USER' (you do not need to replace $USER with your username). Then logout 
and login again

ERRORLOG/1 @ activate, L1302: Unable to initialize some vehicle 
components!
STATUS/1 @ getErrorCodeMessage, L656: initVehicle
STATUS/1 @ getCommonErrorCodeMessage, L722: ACK_NO_RESPONSE_ERROR
Vehicle not initialized, exiting.

1 个答案:

答案 0 :(得分:1)

您提供的信息还不够,可能有很多可能性。请仔细检查以下清单(这是我首先想到的,如果我还记得新的话,我会添加它)

该列表用于以下错误:未获得Drone版本或新设备错误或首次成功连接(获取固件),然后激活DJI OSDK和DJI OSDK-ROS失败

  1. 是否启用了RPI上的UART?如果没有,请启用它。您是否也在使用正确的序列号?如果没有,请正确设置。推荐使用/ dev / serial / by-id / usb-XXX方法

  2. DJI assisatnt2中的波特率是否与OSDK的USERCONFIG文件中的波特率相同?如果没有,则使其相同

  3. 您是否已授予串行设备权限,例如sudo chmod a + rw或sudo usermod -a -G Dialout $ USER或设置了udev规则。如果没有,那就选择正确的方法。

  4. FTDI系列问题

    4.1您之前是否在其他平台上成功使用过FTDI电缆?(确保tx rx正确)

    4.2这是FTDI 3.3V吗?如果没有,则很可能是您的FCU板已被烧毁。寄回维修。

    4.3在连接所有组件时测量Tx和RX引脚上的电压,是否将其上拉至3.3V?如果少于3,则表示存在严重的通讯问题。

    4.4周围是否有EMI发生器?(这一次发生在我身上,我花了2个星期的时间来隔离问题,EMI导致连接不可靠)

    4.5作为一项附加测试,请使用实时对tx和tx by Y电缆进行探测,以查看是否可以正常进行通信。

  5. 您是否忘了打开RC?如果是这样,则在调用sdk.launch

  6. 时将其打开
  7. GO应用程序附带问题

    6.1运行sdk.launch时是否连接了Go应用程序?如果没有通过GO App连接,请连接它,因为它将弹出。

    6.2您是否已登录创建应用程序ID的帐户?如果没有,请登录。

    6.3之前您的帐户是否被禁止在非授权区域飞行(例如,被DJI航空镜/ Flyhub抓获),而警察实际上是在追踪您?如果是这样,请停止使用无人机并投降。正常情况下,最长应坐牢一年,但是如果您拒绝,则处罚可能会更加致命。

  8. 您是否从GO应用授予权限?在RPI中运行sdk.launch后,请单击“确定”或在GO App上进行确认。启动sdk后, Go应用将会弹出……您是否操作过/经历过?更改固件后,您应该再次体验。

  9. 您之前是否曾在装有Ubuntu 16/18的普通X86 / X64 Intel PC /笔记本电脑上尝试过3.8的硬件?工作正常吗? (排除硬件/连接问题)如果可以工作,则其RPI问题。如果不能,则高机率无人机/ RC一侧。我确实有几个RPI消耗经验b4。

  10. 您是否具有有效/正确的应用程序ID和Enc密钥?仔细检查一下。如果不是,则输入正确。

  11. 提供给A3的电压稳定且干净吗?

  12. 您是否尝试过这种呼叫方式? / the_sample_u_wish_to_run UserConfig.txt / dev / ttyACM0(这是我从其他人的经验中学到的)

  13. 您使用的是哪个版本的RPI,如果使用的是2系列,则很有可能必须将https://github.com/dji-sdk/Onboard-SDK/tree/raspberrypi-support与旧版本的固件一起使用。我仅使用RPI 3B进行了测试。无法保证其他版本的功能。这就是为什么数字8对于隔离问题很重要。

  14. 您是从其他地方调用sdk.launch吗?确保只调用一次,并防止再次调用。确保没有占用串行端口。

  15. 确保已在DJI assistant2中启用API。关闭所有电源,然后再次连接DJI Assistant 2进行确认。如果开发板有任何问题,您在上一次运行中设置的API启用将自动取消选择。这是为了排除烧毁的FCU板问题。

  16. 如果到现在仍然无法使用,则应尝试使用固件1.7.7和1.7.5或您可以访问的任何固件的其他3.8或3.7。据我所知,他们的延迟+等待ACK总是有各种各样的问题。也许在等待串行确认时增加更多延迟会有所帮助(来自其他github dji_osdk帖子的解决方案)

  17. 如果这种特殊的A3被烧毁,请换用另一只新鲜的开放A3和经验证有效的FTDI电缆(与Arduino测试)以排除A3问题

如果仍然不走运,请发送电子邮件至dev@dji.com,并发送投诉至Samuel @ DJI。向他们发送一长串您测试过的东西,如果他们说可能性很高,那就是硬件问题。一定要发回RMA。我确实有过一台普通A3和一台M600 A3曾经烧过FCU板问题的经验。

此后,如果遇到无法通过OSDK飞行GPS任务或无法进行本地飞行控制的情况。只需尝试不同的固件版本。对于开发人员而言,DJI固件版本通常存在很多错误。