-
Notifications
You must be signed in to change notification settings - Fork 4.8k
An Orbit Trajectory
Have you ever wanted to fly a nice smooth circular orbit? This can be handy for capturing 3D objects from all sides especially if you get multiple orbits at different altitudes.
So the PythonClient folder contains a new script named Orbit that will do exactly that.
See demo video
The demo video was created by running this command line:
python orbit.py --radius 10 --altitude 5 --speed 1 --center "0,1" --iterations 1This flies a 10 meter radius orbit around the center location at (startpos + radius * [0,1]). In other words, the center is located radius meters away in the direction of the provided center vector. If you watch the flight using LogViewer you will see a nice circular pattern get traced out on the GPS map:

The core of the algorithm is not that complicated. At each point on the circle we look ahead by a small delta in degrees, called the lookahead_angle, where that angle is computed based on our desired velocity. We then find that lookahead point on the circle using sin/cosine and make that our "target point". computing the velocity then is easy, we just subtract our current position from that point and feed that into the AirSim method moveByVelocityZ.