2017-04-26 17 views
0

私は単純なTakeoffコマンドを作ろうとしています。ここでDroneKit単純な離陸は機能しません

は以下のコードである:私はヘリコプターをARMに管理しておりますが

ControlApi.getApi(this.drone).takeoff(10, new AbstractCommandListener() { 
      @Override 
      public void onSuccess() { 

      } 

      @Override 
      public void onError(int executionError) { 
       alertUser("Error: " + executionError); 
      } 

      @Override 
      public void onTimeout() { 

       alertUser("timeout"); 

      } 
     }); 

、離陸コマンドは常にexecutionError 3または4 と、エラーを返し、私はそれが何を意味するのか分からないのですか? いずれかのコードの意味はですか? 問題が何か分かっているのでしょうか?

+0

あなたはヘリコプターを操作する必要があります。ガイドモードにする必要もあります。あなたはその両方の条件に会ったことがありますか? – squilter

+0

@squilterはい、まず私はアーミングをしてから、 'VehicleApi.getApi(this.drone).setVehicleMode(VehicleMode.COPTER_GUIDED);'と上記のコードでガイドモードに切り替えます。 – Seiran

+0

モード変更が成功したことを確認するのを待っていましたか? – squilter

答えて

1

[解決済み]。 は、ここで作業するために、コードを撮影する必要がある手順です:

1.

VehicleApi.getApi(this.drone).arm(true, new AbstractCommandListener() { 
      @Override 
      public void onSuccess() { 

      } 

      @Override 
      public void onError(int executionError) { 

      } 

      @Override 
      public void onTimeout() { 

      } 
     }); 

はあなたがonSuccess方法で適切な応答を取得していることを確認します。私の問題だったのはここ

VehicleApi.getApi(drone).setVehicleMode(VehicleMode.COPTER_GUIDED); 

2.あります。私はどうにかしてヘリコプターを置くことができましたGuided_NoGps Arducopterの文書によれば、このモードは十分なGPS衛星数がないと置くことができます。 Guidedモードに切り替えるには、GPSに3DFixが必要です。 安定した衛星ロックが9個以上あることを確認する必要があります。または、このコードは動作しません。

3.

ラン私はPX4コントローラに基づいて実クアッドヘリコプターでこれをテストしている

ControlApi.getApi(this.drone).takeoff(10, new AbstractCommandListener() { 
      @Override 
      public void onSuccess() { 

      } 

      @Override 
      public void onError(int executionError) { 
       alertUser("Error: " + executionError); 
      } 

      @Override 
      public void onTimeout() { 

       alertUser("timeout"); 

      } 
     }); 

以下のコード。 またArduCopterのバージョン3.4(またはそれ以上)が必要

関連する問題