2017-08-11 5 views
1

ウェイポイントミッションを作成しようとしたときにミッションマネージャーが「実行できませんでした」というエラーが表示される理由を理解できるように、いつか静かに苦労しました。私が作業しているワークフローを添付していますが、実際に見ていただければ幸いです。djiエラー:実行を実行できませんでした

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

実行する前に準備が完了していることを確認してください。私はそれをする前に、たくさんの失敗を覚えていました。

1

MissionManagerを使用しているので、私はあなたがDJI SDKの3.xバージョンを使用していると仮定します。 4.xバージョンを試してみてください。最新のものは4.3.2です。 ミッション関連の機能が改訂され、現在ははるかに安定しています。 連絡先は、MissionManagerではなくMissionControlです。 APIリファレンスページをご覧ください。それも改訂されました: http://developer.dji.com/api-reference/android-api/Components/Missions/DJIMissionControl.html

関連する問題