我对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;
}
(正确准备了变量“车辆”,并已正确获得控制权。)
我正在检查这段代码的错误之处。
当我将此代码的垂直速度设置为某个值时,UAV垂直移动,但不水平移动。
我想知道使用Control :: STABLE_ENABLE会导致这种情况。是这样吗?
当我将Control :: STABLE_ENABLE更改为Control :: STABLE_DISABLE时,
无人机的俯仰是否正确改变? (我现在无法测试)
其他信息: 我在模拟器中尝试了此代码,并且效果很好。 (正在记录:https://youtu.be/o3w-YpMY8TM)
我认为我的情况与此论坛相同:https://github.com/dji-sdk/Onboard-SDK-ROS/issues/43