У меня есть вопрос об управлении полетом OSDK.
Я пытался установить высоту БПЛА на 10 (градус) с помощью этого кода, но кажется, что высота БПЛА не изменилась вообще:
elapsedTimeInMs = 0;
timeoutInMilSec = 700;
controlFreqInHz = 50; // Hz
while (elapsedTimeInMs < timeoutInMilSec)
{
ctrl_flag = ( Control::VERTICAL_VELOCITY | Control::HORIZONTAL_ANGLE | Control::YAW_RATE | Control::HORIZONTAL_BODY | Control::STABLE_ENABLE);
Control::CtrlData data(ctrl_flag, 0, 10, 0, 0);
vehicle->control->flightCtrl(data);
usleep(20 * 1000); // 20msec sleep
elapsedTimeInMs += 20;
}
(переменная «транспортное средство» подготовлено правильно, а полномочия контроля получены правильно.)
Я проверяю, где этот код неверен.
, когда я устанавливаю вертикальную скорость этого кода накакое-то значение, БПЛА движется вертикально, но не движется горизонтально.
Интересно, использование Control :: STABLE_ENABLE вызывает это.Правильно ли это?
Когда я меняю Control :: STABLE_ENABLE на Control :: STABLE_DISABLE,
правильно ли изменяется шаг БПЛА?(Я не могу проверить сейчас)
Дополнительная информация: Я попробовал этот код в симуляторе, и он работает хорошо.(это запись: https://youtu.be/o3w-YpMY8TM)
Я думаю, мой случай такой же, как на этом форуме: https://github.com/dji-sdk/Onboard-SDK-ROS/issues/43