Не удалось проверить демпфирование DJI_SDK в режиме TRACE_COORDINATED - PullRequest
0 голосов
/ 03 октября 2018

Я работаю с ROS_DJI_OSDK версии 3.7 и dji matrice M600.До этого дня я использовал для своих автономных миссий режим TRACE_POINT , определенный в MissionWaypointTask.msg здесь , и все работало нормально.Но я хотел бы сделать то же самое с режимом 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

ack.data , равное 231, означает damping checking failed сообщение.Но что бы я ни установил для демпфирования, результат останется прежним.

Я прочитал здесь , что есть некоторое ограничение по демпфированию: "На самом деле у нас нет ограничения на расстояние 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 голосов
/ 03 октября 2018

Хорошо, я понял это.Я установил все время damping_distance на 0, что не поддерживается DJI SDK .Другие значения кажутся действительными.

...