2016-10-06 4 views
0

I folgen der Beispielcode des folgenden LinkWie entferne ich einen PX4 Autopilot mit mavlink message?

http://android.dronekit.io/first_app.html

und wenn I gesetzt API VehicleApi.getApi (this.drone) .arm (true); vehicleState.isFlying() wird automatisch wahr.

Kann mir jemand sagen, was das Problem ist?

Was ich brauche, ist: 1. ausziehen, Land

ich von einer Website zu lesen, dass der dronekit-android nicht den Moduswechsel nicht unterstützt. Wenn ja, wie sollte ich die mavlink Nachricht senden, um zu starten und zu landen? Bisher kann ich die mavlink Nachricht erfolgreich an die PX4-Karte senden.

Danke für die Antwort.

Vielen Dank für Ihre Antwort.

BR SeanH

Antwort

0

Wenn Sie verfolgen, obwohl einige der Code in dronekit-android, können Sie sehen, dass isFlyinghere unten mit dem Code festgelegt ist.

boolean isFlying = systemStatus == MAV_STATE.MAV_STATE_ACTIVE || ...; 

MAV_STATE_ACTIVE, definiert here Staaten

-System ist aktiv und könnte bereits der Luft sein. Motoren sind eingeschaltet.

Also isFlying bedeutet nicht, dass es in der Luft ist, sondern nur, dass die Motoren eingeschaltet sind. Das passiert, wenn Sie VehicleApi.getApi(this.drone).arm(true); anrufen, weil Sie das Fahrzeug an diesem Punkt buchstäblich bewaffnen.

Für den Start möchten Sie die ControlApi verwenden. ControlApi.getApi(drone).takeOff(desired_altitude, listener) und für Land müssen Sie verwenden VehicleApi.getApi(drone).setVehicleMode(VehicleMode.COPTER_LAND, listener)

Der Beispielcode, den Sie betrachten, ist sehr alt. Ich schlage vor, Sie folgen der sample app von Github.

0

Ich habe nicht versucht, android-dronekit vor und ich bemerkte, dass die src Ordner nicht mehr als zwei Jahre auf github aktualisiert worden sind.

ich Rat Sie python-dronekit zu verwenden, da es eine leistungsfähige Bibliothek pymavlink in Python genannt ist und verwendet in python-dronekit. Sie können eine Hyper-Anwendung erstellen, wenn Sie möchten, aber zuerst versuchen, in Python zu starten und zu landen.

Verwandte Themen