哈哈,最近一直在研究这个函数。
在第三个参数为false也就是相对角旋转的时候。大于90度的指令就不执行了。
第二种方法。当云台在所在的YawAnle大于180度左右(具体多少没去了解)的时候。它会选择错误的旋转方向。导致向320的极限方向去尝试回中。而不是朝0的方向。
我用以下的代码实现了
int Angle = 0, AngleChange = 80;
DJIGimbalRotation mYaw_AntiClock = new DJIGimbalRotation(true, true ,false, AngleChange * 20);
DJIGimbalRotation mYaw_Clock = new DJIGimbalRotation(true, false,false, AngleChange * 20);
while(640 != Angle)
{
DJIDrone.getDjiGimbal().updateGimbalAttitude(null,null,mYaw_Clock);
Angle += AngleChange;
try
{
Thread.sleep(500);
} catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Angle = 0;
while(320 != Angle)
{
DJIDrone.getDjiGimbal().updateGimbalAttitude(null,null,mYaw_AntiClock);
Angle += AngleChange;
try
{
Thread.sleep(500);
} catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
DJIGimbalRotation mYawReturn = new DJIGimbalRotation(true, false,true, 0); |