我无法旋转我的 phantom 3 dji sdk 3.01
I can't get rotate my phantom 3 dji sdk 3.01
我正在尝试使用 Sdk 3.0.1 旋转我的 phantom 3 但没有成功,
我的代码:
DJIFlightController flightController = ((DJIAircraft) mProduct).getFlightController();
flightController.enableVirtualStickControlMode(new DJICompletionCallback() {
@Override
public void onResult(DJIError error) {
if (error == null) {
showToast("enableVirtualStickControlMode: success");
} else {
showToast(error.getDescription());
}
}
});
try {
sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
showToast("Set yaw control mode to angle");
flightController.setHorizontalCoordinateSystem(DJIFlightControllerDataType.DJIVirtualStickFlightCoordinateSystem.Body);
flightController.setRollPitchControlMode(DJIFlightControllerDataType.DJIVirtualStickRollPitchControlMode.Angle);
flightController.setVerticalControlMode(DJIFlightControllerDataType.DJIVirtualStickVerticalControlMode.Velocity);
flightController.setYawControlMode(DJIFlightControllerDataType.DJIVirtualStickYawControlMode.Angle);
try {
sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
DJIFlightControllerDataType.DJIVirtualStickFlightControlData flightControlData =
new DJIFlightControllerDataType.DJIVirtualStickFlightControlData(0, 0, 45, 0);
flightController.sendVirtualStickFlightControlData(flightControlData, new DJICompletionCallback() {
@Override
public void onResult(DJIError error) {
if (error == null) {
showToast("Rotation: success");
} else {
showToast(error.getDescription());
}
}
});
try {
sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
flightController.disableVirtualStickControlMode(new DJICompletionCallback() {
@Override
public void onResult(DJIError error) {
if (error == null) {
showToast("disableVirtualStickControlMode: success");
} else {
showToast(error.getDescription());
}
}
});
我收到消息 "Rotation: success" 但飞机没有移动。
难道我做错了什么?
非常感谢任何帮助。
我以前遇到过这个问题。如果您只调用 sendVirtualStickFlightControlData
一次,则性能是有线的。我已经给 DJI 支持发了一封电子邮件,他们建议我以 5Hz 这样的频率调用这个方法。我测试了一下,一切正常。
类似于:
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
mFlightController.sendVirtualStickFlightControlData(flightControlData, new DJICompletionCallback() {
@Override
public void onResult(DJIError error) {
if (error == null) {
showToast("Rotation: success");
} else {
showToast(error.getDescription());
}
}
});
}
}, 0, 200);
我正在尝试使用 Sdk 3.0.1 旋转我的 phantom 3 但没有成功,
我的代码:
DJIFlightController flightController = ((DJIAircraft) mProduct).getFlightController();
flightController.enableVirtualStickControlMode(new DJICompletionCallback() {
@Override
public void onResult(DJIError error) {
if (error == null) {
showToast("enableVirtualStickControlMode: success");
} else {
showToast(error.getDescription());
}
}
});
try {
sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
showToast("Set yaw control mode to angle");
flightController.setHorizontalCoordinateSystem(DJIFlightControllerDataType.DJIVirtualStickFlightCoordinateSystem.Body);
flightController.setRollPitchControlMode(DJIFlightControllerDataType.DJIVirtualStickRollPitchControlMode.Angle);
flightController.setVerticalControlMode(DJIFlightControllerDataType.DJIVirtualStickVerticalControlMode.Velocity);
flightController.setYawControlMode(DJIFlightControllerDataType.DJIVirtualStickYawControlMode.Angle);
try {
sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
DJIFlightControllerDataType.DJIVirtualStickFlightControlData flightControlData =
new DJIFlightControllerDataType.DJIVirtualStickFlightControlData(0, 0, 45, 0);
flightController.sendVirtualStickFlightControlData(flightControlData, new DJICompletionCallback() {
@Override
public void onResult(DJIError error) {
if (error == null) {
showToast("Rotation: success");
} else {
showToast(error.getDescription());
}
}
});
try {
sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
flightController.disableVirtualStickControlMode(new DJICompletionCallback() {
@Override
public void onResult(DJIError error) {
if (error == null) {
showToast("disableVirtualStickControlMode: success");
} else {
showToast(error.getDescription());
}
}
});
我收到消息 "Rotation: success" 但飞机没有移动。 难道我做错了什么? 非常感谢任何帮助。
我以前遇到过这个问题。如果您只调用 sendVirtualStickFlightControlData
一次,则性能是有线的。我已经给 DJI 支持发了一封电子邮件,他们建议我以 5Hz 这样的频率调用这个方法。我测试了一下,一切正常。
类似于:
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
mFlightController.sendVirtualStickFlightControlData(flightControlData, new DJICompletionCallback() {
@Override
public void onResult(DJIError error) {
if (error == null) {
showToast("Rotation: success");
} else {
showToast(error.getDescription());
}
}
});
}
}, 0, 200);