在TRACE_COORDINATED模式下DJI_SDK阻尼检查失败

时间:2018-10-03 11:07:36

标签: ros dji-sdk

我正在使用 ROS_DJI_OSDK 3.7版和dji矩阵M600。直到今天,我一直使用MissionWaypointTask.msg here中定义的 TRACE_POINT 模式执行自动任务,并且一切正常。但我想对 TRACE_COORDINATED 模式进行同样的操作,并在航路点之间设置一些阻尼。

问题是,即使我将阻尼设置为0,我也会收到以下错误消息:

STATUS/1 @ getErrorCodeMessage, L656: missionWpUploadCallback
STATUS/1 @ getCMDSetMissionMSG, L883: WAYPOINT_MISSION_CHECK_FAILED

[ INFO] [1538563753.039855552]: waypoint mission initialized and uploaded
[ WARN] [1538563753.040152078]: ack.info: set = 3 id = 17
[ WARN] [1538563753.040214866]: ack.data: 231
[ WARN] [1538563753.040261163]: Failed sending waypoint upload command

等于231的 ack.data 表示damping checking failed消息。但是无论我对结果设置阻尼如何,都保持不变。

我已经读过here,关于阻尼有一些限制: “实际上,我们没有1/2距离的限制。但是,我们有以下限制:航路点A的阻尼距离加上航路点B的阻尼距离应小于A和B之间的距离” 但是,当阻尼等于0或其他较小值时,此限制就可以了。

在这里我想念什么吗?

这是我对整个MissionWaypointTask和每个WaypointSettings的默认配置:

waypoint_task.velocity_range = 10;
waypoint_task.idle_velocity = 5;
waypoint_task.action_on_finish = dji_sdk::MissionWaypointTask::FINISH_NO_ACTION;
waypoint_task.mission_exec_times = 1;
waypoint_task.yaw_mode = dji_sdk::MissionWaypointTask::YAW_MODE_AUTO;
waypoint_task.trace_mode = dji_sdk::MissionWaypointTask::TRACE_COORDINATED;
waypoint_task.action_on_rc_lost = dji_sdk::MissionWaypointTask::ACTION_AUTO;
waypoint_task.gimbal_pitch_mode = dji_sdk::MissionWaypointTask::GIMBAL_PITCH_FREE;

waypoint_settings.damping = 0;
waypoint_settings.yaw = 0;
waypoint_settings.gimbalPitch = 0;
waypoint_settings.turnMode = 0;
waypoint_settings.hasAction = 0;
waypoint_settings.actionTimeLimit = 100;
waypoint_settings.actionNumber = 0;
waypoint_settings.actionRepeat = 0;
for (int i = 0; i < 16; ++i) {
    waypoint_settings.commandList[i] = 0;
    waypoint_settings.commandParameter[i] = 0;
}

1 个答案:

答案 0 :(得分:0)

好,我知道了。我将整个时间damping_distance设置为0, DJI SDK 不支持。其他值似乎是有效的。