ヨーの場合、ローターの回転に平行な平面でヘリコプターに固定された3つの異なるデータポイント(たとえば、異なる色のLED)があれば十分です。着陸装置に固定された3本の細い放射状アームにそれらを置くことができます。色付きの反射素材も機能するかもしれませんが、環境光の変化を補正する必要があります。
その場合、ヨー角を取得するのは簡単です。ライトが120度離れた赤、緑、青で、上から見たときにccwであるとします。
次に、画像にこれらのライトがさまざまなx座標の順序で表示されます。ヘリコプターが図に示す位置から反時計回りに回転すると、次のようになります。
G R B // green and blue in front; red in back
R G B // green in front; red and blue in back
R B G // red and gree in front; blue in back
B R G // etc...
B G R
G B R
(もちろん、これらの領域の境界では、2つのライトが1つのポイントにマージされます。これらは特別なケースとして処理できます。)
したがって、3つのライトを使用すると、すべてのヨーを6 x 60度のセグメントに分割できます。
左右の「ギャップ」幅を比較するだけで、さらに30度の解像度まで下げることができます。カメラから直接外を向いている場合、方位角シータ0度であり、赤いライトが鼻の上にある場合(図のように)、アルゴリズムは次のようになります。
Xr = -sin(theta)
Xg = -sin(theta + 60)
Xb = -sin(theta + 120)
if (Xg < Xr && Xr <= Xb) {
// Green and blue are in front of red
dxLeft = Xr - Xg
dxRight = Xb - Xr
yaw = (dxLeft < dxRight) ? 15+-15 : -15+-15;
}
else if (Xr < Xg && Xg < Xb) {
// Green is in front of red and blue
dxLeft = Xg - Xr
dxRight = Xb - Xg
yaw = (dxLeft < dxRight) ? 30+-15 : 60+-15;
}
else ... four more cases
X+-15
上記平均X
度プラスまたはマイナス15:30度のセグメント。正確なオフセットを取得するには、比率を変換する前処理されたテーブルを作成できます
R = dxLeft < dxRight ? xLeft / xRight : xRight / xLeft
これは-15から15の間の正確な方位角オフセットに変換されます。これは非常に単純な三角法であり、ヘリコプターが逆さまにならない限り、ヘリコプターの距離に関係なく機能します。
もう1つの副次的な利点:外側の2つのライト間のイメージ距離により、カメラまでの距離が逆になります。