Я работаю с 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;
}