Eine Orbit-Trajektorie#
Hierher verschoben von https://github.com/microsoft/AirSim/wiki/An-Orbit-Trajectory
Wollten Sie jemals einen schönen, sanften Kreisflug durchführen? Dies kann nützlich sein, um 3D-Objekte von allen Seiten zu erfassen, insbesondere wenn Sie mehrere Orbits in verschiedenen Höhen aufnehmen.
Der Ordner PythonClient/multirotor enthält ein Skript namens Orbit, das genau das tut.
Siehe Demovideo
Das Demovideo wurde durch Ausführen dieses Befehls erstellt
python orbit.py --radius 10 --altitude 5 --speed 1 --center "0,1" --iterations 1
Dies fliegt einen Orbit mit 10 Metern Radius um den Mittelpunkt (startpos + radius * [0,1]), mit anderen Worten, der Mittelpunkt befindet sich radius Meter entfernt in Richtung des angegebenen Mittelpunktvektors. Außerdem wird die nach vorne gerichtete Kamera der Drohne immer auf den Mittelpunkt des Kreises gerichtet gehalten. Wenn Sie den Flug mit LogViewer verfolgen, sehen Sie ein schönes kreisförmiges Muster, das auf der GPS-Karte gezeichnet wird.

Der Kern des Algorithmus ist nicht so kompliziert. An jedem Punkt des Kreises schauen wir mit einem kleinen Delta in Grad nach vorne, der lookahead_angle genannt wird, wobei dieser Winkel basierend auf unserer gewünschten Geschwindigkeit berechnet wird. Wir finden dann diesen Blickpunkt auf dem Kreis mithilfe von Sinus/Kosinus und machen ihn zu unserem "Zielpunkt". Die Berechnung der Geschwindigkeit ist dann einfach: Subtrahieren Sie unsere aktuelle Position von diesem Punkt und speisen Sie sie in die AirSim-Methode moveByVelocityZ ein.