Dji sdk dji错误:无法执行
我一直在努力理解为什么我在尝试创建航路点任务时收到任务经理的错误“执行无法执行”。我已经附上了我的工作流程,如果你能看一下,我会非常感激Dji sdk dji错误:无法执行,dji-sdk,Dji Sdk,我一直在努力理解为什么我在尝试创建航路点任务时收到任务经理的错误“执行无法执行”。我已经附上了我的工作流程,如果你能看一下,我会非常感激 1.Initialize FlightController : mFlightController = ((Aircraft) product).getFlightController(); getProductInstance().getGimbal() .rotate(new Rotation.Builde
1.Initialize FlightController :
mFlightController = ((Aircraft) product).getFlightController();
getProductInstance().getGimbal()
.rotate(new Rotation.Builder().pitch(-180)
.mode(RotationMode.SPEED)
.yaw(Rotation.NO_ROTATION)
.roll(Rotation.NO_ROTATION)
.time(0)
.build(), new CommonCallbacks.CompletionCallback() {
@Override
public void onResult(DJIError error) {
}
});
mFlightController.setControlMode(ControlMode.SMART, ... );
mFlightController.setMaxFlightHeight(499.0f , ... );
mFlightController.setMaxFlightRadiusLimitationEnabled(false, ...);
mFlightController.setLandImmediatelyBatteryThreshold(15, ...);
mFlightController.setStateCallback(new FlightControllerState.Callback() {
@Override
public void onUpdate(@NonNull FlightControllerState flightControllerState) {
//Check GPS level
}
}
mFlightController.setHomeLocationUsingAircraftCurrentLocation( ... );
2. Check Batter status :
getProductInstance().getBattery()
setStateCallback(new BatteryState.Callback() {
@Override
public void onUpdate(BatteryState djiBatteryState) { ... } ;
});
3. initialize Mission Manager :
mMissionManager = new WapointMissionOperator();
mMissionManager.addListener( listener );
//LIstener does a couple calculations when reaching a waypoint.
4. Camera :
mCamera = getProductInstance().getCamera();
mCamera.setMode(SettingsDefinitions.CameraMode.RECORD_VIDEO, ... );
mCamera.setSystemStateCallback(new SystemState.Callback() { ... });
5. Creating waypoint mission Builder :
WaypointMission.Builder builder = new WaypointMission.Builder();
builder.autoFlightSpeed( value );
builder.maxFlightSpeed( value );
builder.setExitMissionOnRCSignalLostEnabled(false);
builder.finishedAction(WaypointMissionFinishedAction.AUTO_LAND);
builder.flightPathMode(WaypointMissionFlightPathMode.NORMAL);
builder.gotoFirstWaypointMode(WaypointMissionGotoWaypointMode.SAFELY);
builder.headingMode(WaypointMissionHeadingMode.USING_WAYPOINT_HEADING);
builder.setGimbalPitchRotationEnabled(true);
6. Creating waypoints :
for (int i = 0; i < waypointCount; i++) {
dji.common.mission.waypoint.Waypoint djiwp = new dji.common.mission.waypoint.Waypoint(lat, lon, alt);
djiwp.heading = 0; //facing true north
djiwp.addAction(new WaypointAction(WaypointActionType.STAY, 0)); //just passby
builder.addWaypoint(djiwp);
}
7. finishing up with builder:
WaypointMission mission = builder.build();
8. starting mission :
mMissionManager.loadMission(mission);
if (WaypointMissionState.READY_TO_RETRY_UPLOAD.equals(mMissionManager.getCurrentState())
|| WaypointMissionState.READY_TO_UPLOAD.equals(mMissionManager.getCurrentState())) {
mMissionManager.uploadMission(new CommonCallbacks.CompletionCallback() { ... } );
}
mFlightController.setHomeLocationUsingAircraftCurrentLocation( ... ); //redo just to check.
mFlightController.setConnectionFailSafeBehavior(ConnectionFailSafeBehavior.GO_HOME, ...);
mMissionManager.startMission(new CommonCallbacks.CompletionCallback() { ... });
1.初始化FlightController:
mFlightController=((飞机)产品).getFlightController();
getProductInstance().getGimbal()
.rotate(新的Rotation.Builder().pitch(-180)
.模式(旋转模式.速度)
.偏航(旋转。无旋转)
.滚动(旋转。不旋转)
.时间(0)
.build(),新的CommonCallbacks.CompletionCallback(){
@凌驾
公共void onResult(DJIError错误){
}
});
mFlightController.setControlMode(ControlMode.SMART,…);
mFlightController.setMaxFlightHeight(499.0f,…);
mFlightController.setMaxFlightRadiusLimitationEnabled(false,…);
mFlightController.setLandImmediatelyBatteryThreshold(15,…);
mFlightController.setStateCallback(新的FlightControllerState.Callback(){
@凌驾
更新时公共无效(@NonNull FlightControllerState FlightControllerState){
//检查GPS水准仪
}
}
mFlightController.SetHomeLocationUsingArcraftCurrentLocation(…);
2.检查电池状态:
getProductInstance().getBattery()
setStateCallback(新的BatteryState.Callback(){
@凌驾
更新中的公共无效(BatteryState djiBatteryState){…};
});
3.初始化任务管理器:
mMissionManager=新的WapointMissionOperator();
mMissionManager.addListener(listener);
//当到达一个航路点时,侦听器会进行一些计算。
4.摄像机:
mCamera=getProductInstance().getCamera();
mCamera.setMode(SettingsDefinitions.CameraMode.RECORD_VIDEO,…);
mCamera.setSystemStateCallback(新的SystemState.Callback(){…});
5.创建航路点任务生成器:
WaypointMission.Builder=新的WaypointMission.Builder();
builder.autoFlightSpeed(值);
builder.maxFlightSpeed(值);
builder.setExitMissionNRCSignAlloRestenabled(false);
建造商完工日期(航路点任务完工日期自动着陆);
builder.flightPathMode(航路点任务flightPathMode.NORMAL);
builder.gotoFirstWaypointMode(WaypointMissionGotoWaypointMode.safe);
航向模式(航路点任务航向模式。使用航路点航向);
builder.setGimbalPitchRotationEnabled(真);
6.创建航路点:
对于(int i=0;i
在尝试执行之前,请确保您已准备好执行。在执行之前,我遇到了很多失败。您使用MissionManager时,我假设您使用的是3.x版本的DJI SDK。
您应该试用4.x版本。最新版本是4.3.2。
与任务相关的功能已经改进,现在更加稳定。
现在的联络点是MissionControl,而不是MissionManager。
查看API参考页。该页也已修改: