我正在使用 Android Studio 开发一个应用程序,该应用程序以特定模式驾驶 DJI Phantom 3 无人机,在特定航路点拍照。我将 DJI 示例代码上传到 Android Studio,在 Android Manifest.xml 文件中输入了一个应用程序密钥,并修改了“MissionManager”目录中的“CustomMissionView”代码,以便对无人机进行编程,使其以指定的模式飞行。但是,当我在 DJI 模拟器上运行这个项目时,自定义任务的每个“步骤”之间都有延迟,有时无人机会闲置并悬停几秒钟而没有做任何事情。我想知道是否有任何方法可以在不设置飞行速度的情况下最大限度地减少自定义任务步骤之间的延迟。我怀疑这与DJICommonCallbacks.DJICompletionCallback()
,但我不确定。我是 Android Studio 的新手,所以任何建议都会有所帮助。
这是“CustomMissionView”Java 文件中受保护方法 DJI Mission 中的一些代码
LinkedList<DJIMissionStep> steps = new LinkedList<DJIMissionStep>();
//Step 1: takeoff from the ground
steps.add(new DJITakeoffStep(new DJICommonCallbacks.DJICompletionCallback() {
public void onResult(DJIError error) {
Utils.setResultToToast(mContext, "Takeoff step: " + (error == null ? "Success" : error.getDescription()));
}
}));
//Step 2: reset the gimbal to desired angle
steps.add(new DJIGimbalAttitudeStep(
DJIGimbalRotateAngleMode.AbsoluteAngle,
new DJIGimbalAngleRotation(true, -30f, DJIGimbalRotateDirection.Clockwise),
null,
null,
new DJICommonCallbacks.DJICompletionCallback() {
public void onResult(DJIError error) {
Utils.setResultToToast(mContext, "Set gimbal attitude step: " + (error == null ? "Success" : error.getDescription()));
}
}));
//Step 3: Go 3 meters from home point
steps.add(new DJIGoToStep(mHomeLatitude, mHomeLongitude, 3, new DJICommonCallbacks.DJICompletionCallback() {
public void onResult(DJIError error) {
Utils.setResultToToast(mContext, "Goto step: " + (error == null ? "Success" : error.getDescription()));
}
}));