云台旋转不适用于Windows SDK

时间:2018-12-02 17:20:08

标签: dji-sdk

我有示例UWP应用程序可以与Mavic Air一起使用,可以看到摄像机的提要等。现在,我试图像这样更改Gimbal角度:

var connected = await DJISDKManager.Instance.ComponentManager.GetGimbalHandler(0, 0).GetConnectionAsync();
// true

var attitude = await DJISDKManager.Instance.ComponentManager.GetGimbalHandler(0, 0).GetGimbalAttitudeAsync();
// pitch: 0, roll: 0, yaw: -124

var range = await DJISDKManager.Instance.ComponentManager.GetGimbalHandler(0, 0).GetGimbalAttitudeRangeAsync();
// pitch: max 17 min -90; yaw: max 0 min 0; roll: max 0 min 0;

var angle = new GimbalAngleRotation() { mode = GimbalAngleRotationMode.ABSOLUTE_ANGLE, pitch = -20, yaw = 10, roll = 0  };
var resp = await DJISDKManager.Instance.ComponentManager.GetGimbalHandler(0, 0).RotateByAngleAsync(angle);
// PARAM_OUT_OF_RANGE

如您所见,横摆角范围为0-0(无)。但是,实际偏航值为-124;根据我的理解,Mavic Air具有3轴万向节,因此我应该为每个轴设置更宽的射程。

此外,当我尝试更改偏航或滚动时,也会收到PARAM_OUT_OF_RANGE响应。更改音高只会导致NO_ERROR响应,但我看不到万向节角度的差异。

2 个答案:

答案 0 :(得分:1)

对于此问题,您可以尝试以下步骤来解决此问题:

  1. 您还需要在GimbalAngleRotation结构中将GimbalAngleRotaion.duration(以秒为单位)设置为非零值,以旋转云台。
  2. 当前,Windows SDK不支持偏航和横摇轴的云台旋转。

答案 1 :(得分:0)

我也有同样的问题。我看不到万向节使用RotateByAngleAsync方法执行任何操作。我让云台做任何事情的唯一方法是使用RotateBySpeedAsync。如果可以完美地工作,这将不是问题,但是有时它什么也没做。它在10中工作1次。:-/。如果有效-只要我不重新启动应用程序,它就会起作用。尚未弄清楚如何“重置”它。

// Defined somewhere else
gimbalHandler = DJISDKManager.Instance.ComponentManager.GetGimbalHandler(0, 0);

// In my control method
var gimbalRotation = new GimbalSpeedRotation();
gimbalRotation.pitch = 4;
gimbalHandler.RotateBySpeedAsync(gimbalRotation);