DJI OSDK 和 OSDK-ROS 3.7 和 3.8 bug demo_flight_control 起飞和停止

DJI OSDK and OSDK-ROS 3.7 and 3.8 bug demo_flight_control take off and halt

我面临 OSDK-ROS 3.7 和 3.8 的问题,我无法 运行 demo_flight_control 正确采样

在模拟器中api自动起飞后,无人机就卡在那里了。并且有命令发布到 flight_control ENU 主题。

基于 GPS demo_mission 没有问题。它可以自动飞到坐标。

我使用的硬件和固件版本是

STATUS/1 @parseDroneVersionInfo,L729:硬件=A3

STATUS/1 @parseDroneVersionInfo, L730: 固件 = 3.3.8.47

重现问题的最小示例来自此处

https://github.com/dji-sdk/Onboard-SDK-ROS/tree/3.8/dji_sdk_demo/src

OSDK(选项 b)和 OSDK-ROS(默认)的 flight_control 问题相同

For Previous 3.3 3.5 3.6 我以前没遇到过。我已将报告发送给 dev@dji.com。还没有回复

我自己解决问题

https://github.com/dji-sdk/Onboard-SDK-ROS/tree/3.7 和 3.8 至少需要 1.7.6

但是我在大疆助手2固件中找不到1.7.6,只有1.7.7和1.7.5。所以我决定使用 1.7.7

但 1.7.7 仅适用于 GPS 航点任务,不支持基于 setpoint_generic 的控制

所以解决方案是使用 1.7.5 来获得基于 GPS 的任务和基于 ros 主题的速度控制。

低于这个版本,DJI系统中的版本控制是随机标记版本。所以你必须不断试错才能把事情做好


以下为大疆Email回复。非常无用,但会为其他人调试类似问题提供一些提示

张小龙(DJI)

亲爱的盛海,

感谢您联系大疆

在OSDK3.7和3.8中使用A3无法重现您提到的问题 你能尝试直接取得控制权吗?使用 /dji_sdk/sdk_control_authority
也尝试发布 /dji_sdk/flight_control_setpoint_ENUposition_yaw 控制命令,不要使用示例。

感谢您的理解与支持,祝您生活愉快。

此致, DJI SDK 支持团队


嗨布鲁斯

我试过你提到的,使用

  FIrst launch sdk.launch


 Then, rosservical call /dji_sdk/sdk_control_authority 1



And write a simple empty C++ script to publish to    /dji_sdk/flight_control_setpoint_generic.

结果是一样的。无人机在 DJI assistant2 模拟器中没有移动。

我的理论是 GitHub https://github.com/dji-sdk/Onboard-SDK-ROS/tree/3.7

上的 A3 固件版本可能太高

它说支持 3.7 和 3.8

A3/A3 专业版 1.7.6.0 但是我在大疆助手2固件中找不到1.7.6,只有1.7.7和1.7.5。所以我决定使用 1.7.7

这会是问题吗?

现在是新加坡晚上 11 点,我将在早上拍摄两个样本和自定义方法的视频。我会把视频上传到youtube。你可以从那里看到。

此致

袁盛海