轨道轨迹#

已从 https://github.com/microsoft/AirSim/wiki/An-Orbit-Trajectory 移至此处

你是否曾想过进行一次流畅的圆周轨道飞行?这对于从各个角度捕捉 3D 物体非常有用,特别是如果你能以不同高度进行多次轨道飞行。

因此,PythonClient/multirotor 文件夹包含一个名为 Orbit 的脚本,它将精确地实现这一点。

请参阅演示视频

演示视频是通过运行以下命令行创建的

python orbit.py --radius 10 --altitude 5 --speed 1 --center "0,1" --iterations 1

这会以 10 米的半径围绕中心位置 (startpos + radius * [0,1]) 飞行,换句话说,中心位于距离提供的中心向量方向 radius 米处。它还会让无人机的前置摄像头始终指向圆心。如果你使用 LogViewer 观看飞行,你会看到 GPS 地图上描绘出漂亮的圆形图案

image

该算法的核心并不复杂。在圆上的每个点,我们都以一个小角度增量(称为 lookahead_angle)向前看,该角度根据我们期望的速度计算。然后,我们使用正弦/余弦在圆上找到该预视点,并将其作为我们的“目标点”。计算速度就很容易了,只需从该点减去我们当前的位置,然后将其输入到 AirSim 方法 moveByVelocityZ 中。