1

こんにちは。

現時点では、「メイン アクティビティ」にコードを記述して IRIS ドローンにウェイポイントを送信しようとしていますが、ポイントが 5 の場合にのみ機能します。コードを確認して、何が起こっているのか、ドローンにさらに多くのウェイポイントを送信するにはどうすればよいかについての提案をいただけますか? 私は Android で開発を始めたばかりなので、本当に助けていただきありがとうございます。

コード:

public void onBtnConnectTap3(View view) {

        if (this.drone.isConnected()) {
        this.drone.disconnect();
         } else {
        Spinner connectionSelector = (Spinner) findViewById(R.id.selectConnectionType);
        int selectedConnectionType = connectionSelector.getSelectedItemPosition();

        Bundle extraParams = new Bundle();
        if (selectedConnectionType == ConnectionType.TYPE_USB) {
            extraParams.putInt(ConnectionType.EXTRA_USB_BAUD_RATE, DEFAULT_USB_BAUD_RATE); // Set default baud rate to 57600
        } else {
            extraParams.putInt(ConnectionType.EXTRA_UDP_SERVER_PORT, DEFAULT_UDP_PORT); // Set default baud rate to 14550
        }
        ConnectionParameter connectionParams = new ConnectionParameter(selectedConnectionType, extraParams, null);
        this.drone.connect(connectionParams);
        }

        currentMission = new Mission();
        currentMission.clear();

        for (int i = 1; i < 20; i++) {

        waypoint2=new Waypoint();
        yaw=new YawCondition();
        waypoint2.setCoordinate(new LatLongAlt( i, i, i));
        yaw.setAngle(i);
        missionI3 = waypoint2;
        currentMission.addMissionItem(missionI3);
        missionI2=yaw;
        currentMission.addMissionItem(missionI2);
        }

         this.drone.generateDronie();
         this.drone.setMission(currentMission, true);
         this.drone.arm(true);

        }

Dependencies in Build.gradle:
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.1.1'
    compile 'com.o3dr.android:dronekit-android:2.3.11'
    }

私の主な情報源はhttp://android.dronekit.io/first_app.htmlhttp:/ /android.dronekit.io/javadoc/

ご回答ありがとうございます。

4

1 に答える 1

4

何を達成しようとしているのか完全にはわかりませんが、コードにいくつかエラーがある可能性があります。

  1. 最新の Dronekit-android を使用します。現在のバージョンは 2.7.0 です。ここでバージョンを最新に保つことができますhttps://bintray.com/3drobotics/maven/dronekit-android/view

  2. 38 個のアイテム (19 個のウェイポイントと 19 個のヨー) を持つミッションを生成しています。ウェイポイント座標を 1,1,1 ... 19,19,19 に設定することは、非常に危険なことです。あなたの車は、あなたが意図していなかったと思います。

  3. なぜあなたが持っているのかわかりませんgenerateDronie()。ドキュメントに従って

    アクションを生成してドローン ミッションを作成し、接続されたドローンにアップロードします。

ドローニーは、セルフィー パスを飛行する特定のタイプのミッションです。

  1. setMission()正しい。ただし、コードの最後のステップは、車両を武装させることです。実際にミッションを実行するには、ドローンに指示する必要があります。クラスのstartMission()メソッドでこれを行うことができます。MissionApi

  2. 同じユーザー インタラクションでミッションの設定と開始に注意してください。setMission()車両へのアップロードに失敗する可能性は常にあります。この場合startMission()、車両に正常にアップロードされた最後のミッションが実行されます。

    ブロードキャストをリッスンすることで、アップロードが成功したことを確認できますAttributeEvent.MISSION_SENT

欠落している、または説明が必要だと思われる API に Javadoc を追加することで、いつでもドキュメントに貢献できます。

于 2015-12-03T05:45:41.287 に答える