我有一个带A3控制器的DJI S900。我在Raspberry Pi和无人机之间建立了API连接。直到上周为止,一切都还算完美,但是现在,我正在处理如下所示的错误(我正在运行遥测示例)。
与串行电缆和Raspberry Pi无关。此外,已启用SDK,并且API设置正确。我重置了控制器并对其进行了升级。但是,我有同样的错误。另外,在升级控制器之前,我尝试过多次关闭所有内容,然后重新打开。
读取应用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.
答案 0 :(得分:1)
您提供的信息还不够,可能有很多可能性。请仔细检查以下清单(这是我首先想到的,如果我还记得新的话,我会添加它)
该列表用于以下错误:未获得Drone版本或新设备错误或首次成功连接(获取固件),然后激活DJI OSDK和DJI OSDK-ROS失败
是否启用了RPI上的UART?如果没有,请启用它。您是否也在使用正确的序列号?如果没有,请正确设置。推荐使用/ dev / serial / by-id / usb-XXX方法
DJI assisatnt2中的波特率是否与OSDK的USERCONFIG文件中的波特率相同?如果没有,则使其相同
您是否已授予串行设备权限,例如sudo chmod a + rw或sudo usermod -a -G Dialout $ USER或设置了udev规则。如果没有,那就选择正确的方法。
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电缆进行探测,以查看是否可以正常进行通信。
您是否忘了打开RC?如果是这样,则在调用sdk.launch
GO应用程序附带问题
6.1运行sdk.launch时是否连接了Go应用程序?如果没有通过GO App连接,请连接它,因为它将弹出。
6.2您是否已登录创建应用程序ID的帐户?如果没有,请登录。
6.3之前您的帐户是否被禁止在非授权区域飞行(例如,被DJI航空镜/ Flyhub抓获),而警察实际上是在追踪您?如果是这样,请停止使用无人机并投降。正常情况下,最长应坐牢一年,但是如果您拒绝,则处罚可能会更加致命。
您是否从GO应用授予权限?在RPI中运行sdk.launch后,请单击“确定”或在GO App上进行确认。启动sdk后, Go应用将会弹出……您是否操作过/经历过?更改固件后,您应该再次体验。
您之前是否曾在装有Ubuntu 16/18的普通X86 / X64 Intel PC /笔记本电脑上尝试过3.8的硬件?工作正常吗? (排除硬件/连接问题)如果可以工作,则其RPI问题。如果不能,则高机率无人机/ RC一侧。我确实有几个RPI消耗经验b4。
您是否具有有效/正确的应用程序ID和Enc密钥?仔细检查一下。如果不是,则输入正确。
提供给A3的电压稳定且干净吗?
您是否尝试过这种呼叫方式? / the_sample_u_wish_to_run UserConfig.txt / dev / ttyACM0(这是我从其他人的经验中学到的)
您使用的是哪个版本的RPI,如果使用的是2系列,则很有可能必须将https://github.com/dji-sdk/Onboard-SDK/tree/raspberrypi-support与旧版本的固件一起使用。我仅使用RPI 3B进行了测试。无法保证其他版本的功能。这就是为什么数字8对于隔离问题很重要。
您是从其他地方调用sdk.launch吗?确保只调用一次,并防止再次调用。确保没有占用串行端口。
确保已在DJI assistant2中启用API。关闭所有电源,然后再次连接DJI Assistant 2进行确认。如果开发板有任何问题,您在上一次运行中设置的API启用将自动取消选择。这是为了排除烧毁的FCU板问题。
如果到现在仍然无法使用,则应尝试使用固件1.7.7和1.7.5或您可以访问的任何固件的其他3.8或3.7。据我所知,他们的延迟+等待ACK总是有各种各样的问题。也许在等待串行确认时增加更多延迟会有所帮助(来自其他github dji_osdk帖子的解决方案)
如果这种特殊的A3被烧毁,请换用另一只新鲜的开放A3和经验证有效的FTDI电缆(与Arduino测试)以排除A3问题
如果仍然不走运,请发送电子邮件至dev@dji.com,并发送投诉至Samuel @ DJI。向他们发送一长串您测试过的东西,如果他们说可能性很高,那就是硬件问题。一定要发回RMA。我确实有过一台普通A3和一台M600 A3曾经烧过FCU板问题的经验。
此后,如果遇到无法通过OSDK飞行GPS任务或无法进行本地飞行控制的情况。只需尝试不同的固件版本。对于开发人员而言,DJI固件版本通常存在很多错误。