0

我试图通过键入来启动 sdk 包

roslaunch dji_sdk sdk.launch

但是每次我收到此错误时:

... logging to /home/dji/.ros/log/b31d5e94-fec0-11e9-9835-74da38ebc18f/roslaunch-manifold2-18825.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://manifold2:41911/

SUMMARY

PARAMETERS

/dji_sdk/align_time: False
/dji_sdk/app_id: 1079440
/dji_sdk/app_version: 1
/dji_sdk/baud_rate: 921600
/dji_sdk/enc_key: 39d353a8e9ad01b6c...
/dji_sdk/serial_name: /dev/ttyUSB0
/dji_sdk/use_broadcast: False
/rosdistro: kinetic
/rosversion: 1.12.13
NODES
/
dji_sdk (dji_sdk/dji_sdk_node)

auto-starting new master
process[master]: started with pid [18835]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to b31d5e94-fec0-11e9-9835-74da38ebc18f
process[rosout-1]: started with pid [18848]
started core service [/rosout]
process[dji_sdk-2]: started with pid [18856]

STATUS/1 @ init, L56: Attempting to open device /dev/ttyUSB0 with baudrate 921600...

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

ERRORLOG/1 @ getDroneVersion, L1503: 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, L1387: Unable to initialize some vehicle components![ERROR] [1572843926.785053218]: drone activation error
[ERROR] [1572843926.785190956]: Vehicle initialization failed
^C[dji_sdk-2] killing on exit
[rosout-1] killing on exit
[master] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete
done

这是我激活无人机的步骤:

source devel/setup.bash
catkin_make
rosed dji_sdk sdk.launch

我在哪里编辑波特率/app id/enc key/和序列名。

app_id: 1079440 baud_rate: 921600 serial_name: /dev/ttyUSB0 enc_key: 39d353a8e9ad01b6c659111904bae57ebb138785aa5159699383f28da3f56563

我继续执行以下命令:

roslaunch dji_sdk sdk.launch

它是我得到错误的地方。

我正在使用 USB-TTL 电缆将歧管 2-c 与 M210 RTK V2 连接,在输入任何代码之前,我首先获得了许可:

usermod -a -G dialout $USER

然后注销并登录,然后我输入:

sudo chmod 666 /dev/ttyUSB0

读取并授予串行端口的权限。

TX(绿线)和Rx(白线)和地线(黑线)分别放在那里。

所以现在我该怎么办?

4

2 回答 2

0

可能性太多请参考我之前的回答,一一检查

DJI A3 Onboard SDK 问题(无连接)

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

该列表适用于错误,例如未获取无人机版本或新设备错误或第一次成功连接(获取固件)然后激活 DJI OSDK 和 DJI OSDK-ROS 失败。假设您已经启用了 API 控件,然后检查

  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 作为一项附加测试,使用实时测试 Y 电缆的 tx 和 tx,看看您是否可以看到任何正确的通信正在发生。

  5. 你忘记打开遥控器了吗?如果是这样,在调用 sdk.launch 时打开它

  6. GO 应用端问题

    6.1 运行 sdk.launch 时是否连接了 Go 应用?如果不是通过GO应用连接,连接它,它会弹出……

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

    6.3 你的账号之前有没有因为在非授权区域飞行而被封禁(例如被大疆航空航天器/Flyhub抓获),而警察实际上是在追捕你?如果是这样,停止玩无人机并投降。通常应该最多一年的监禁时间,但如果你抗拒,惩罚可能会更致命。

  7. 您是否从 GO 应用程序中授予权限?在 RPI 中运行 sdk.launch 后,在 GO App 上单击确定或确认。启动 sdk 后,Go 应用会弹出……你做过/体验过吗?更改固件后,您应该再次体验到这一点。

  8. 您之前是否尝试过使用 3.8 和普通 X86/X64 英特尔 PC/笔记本电脑和 Ubuntu 16/18 的硬件?它在工作吗?(排除硬件/连接问题)如果可以工作,那么它的 RPI 问题。如果不能,高机会无人机/RC 方。我确实有几个 RPI 烧毁经验 b4。

  9. 你有有效/正确的应用程序 ID 和加密密钥吗?仔细检查一下。如果不是,则输入正确。

  10. 提供给 A3 的电压是否稳定且干净?

  11. 你试过这种调用方式吗?/the_sample_u_wish_to_run UserConfig.txt /dev/ttyACM0 (这是我从其他人的经验中收集的)

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

  13. 您是从其他地方调用 sdk.launch 吗?确保只调用一次并防止它再次调用。确保串口未被占用。

  14. 确保在 DJI 助手 2 中启用了 API。关闭所有电源并再次连接到 DJI 助手 2 以验证这一点。如果电路板有任何问题,您在上一次运行中设置的 API 启用将自动取消选择。这是为了排除烧毁FCU板的问题。

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

  16. 如果此特定 A3 烧毁,请更换另一条新打开的 A3 和经过验证的工作 FTDI 电缆(使用 Arduino 测试)以排除 A3 问题

如果仍然没有成功,请向 dev@dji.com 提交票证 + 向 Samuel@DJI 发送投诉。向他们发送您测试过的一长串清单,如果他们说很有可能是硬件问题。请务必将其寄回 RMA。我确实有过一台普通 A3 和一台 M600 A3 之前烧毁 FCU 板问题的经验。

在此之后,如果您遇到无法通过 OSDK 执行 GPS 任务或无法进行本地飞行控制。只是尝试不同的固件版本。DJI 固件发布对于开发者来说通常是非常错误的。

编辑

对于您的情况,请使用 Windows。因为我对基于 Windows 的方法没有任何问题确保滑块在我的图像视图右侧。我没有 MAC,所以无法测试 MAC 解决方案。

您可能需要插上插头再插上几次

默认情况下,api 被禁用。所以你必须启用它并选择你希望接收的主题的赫兹率。祝你好运。这是我能做的。

在此处输入图像描述

于 2019-11-08T05:17:13.473 回答
0
  1. 部分USB-TTL线不支持921600波特率,建议使用FT232R USB-TTL线
  2. 您需要在 DJI 助手 2 中启用 SDK 并设置无人机 buadrate 921600 在此处输入图像描述
于 2019-11-06T07:17:12.030 回答