banner
IWSR

IWSR

美少女爱好者,我永远喜欢芳泽瑾。另外 P5 天下第一!

ロドリゲスの回転公式(軸角法)

序文#

この記事を読むには、ベクトルの内積と外積の基本的な知識を理解する必要があります。以下に、大まかな定義を示します(ここでは行列は使用しないため、行列形式は書きません)。

  • ベクトルの内積
    • vj=vjcosθ\vec {v} \cdot \vec {j} = ||\vec {v}|| ||\vec {j}|| \cos \theta
    • 幾何学的には、ベクトル v をベクトル j に投影した長さにベクトル j の長さを掛けたものです。
  • ベクトルの外積
    • v×j=vjsinθ\vec {v} \times \vec {j} = ||\vec {v}|| ||\vec {j}|| \sin \theta
    • 外積は三次元空間でのみ幾何学的な意味を持ち、ベクトル v とベクトル j に直交するベクトルであり、その大きさはベクトル v とベクトル j が作る平行四辺形の面積です。

また、注意する必要があるのは、この記事は右手系を基にしており、回転方向の正負は右手の法則で判断できます。

右手系 右手の法則

ロドリゲスの回転公式#

回転軸 f\vec{f} が与えられた場合、ベクトル v\vec{v} を回転軸周りに θ\theta 角回転させた後の v\vec {v^{\prime}} を求めます。以下の図を参照してください。

IMG_ECC68942A572-1

回転軸の長さは回転に影響を与えないため、解を求めるために、 f=1||\vec {f}|| = 1 と定義します。この時、平面( v\vec {v_\parallel} )と回転軸( v\vec {v_\perp} )に v\vec {v} を分解します。以下の図を参照してください。

IMG_D190DB86E9D2-1

v\vec{v_\parallel} は、 v\vec{v}f\vec{f} 上に射影したものと見なすことができます。明らかに、内積を使用して表すことができます。

すなわち、 v=vffff\vec {v_\parallel} = \frac{\vec {v} \cdot \vec {f}}{||\vec {f}||} \frac {\vec {f}}{||\vec {f}||}

ここで、なぜこのように書くのかについて説明します。上記の内積の説明は非常に明確です。内積の結果は、ベクトル v をベクトル f に投影した長さにベクトル f の長さを掛けたものです。つまり、 v|| \vec {v_\parallel} || を単独で取得する場合、結果を f||\vec {f}|| で除算する必要があります。この時、ベクトルではなく値が得られます。また、 vf\vec {v_\parallel} \parallel \vec {f} であることに注意してください。つまり、2 つのベクトルは同じ方向を向いています。したがって、値に f\vec {f} を掛けることで、 v\vec {v_\parallel} を得ることができます。また、 f||\vec {f}|| は 1 であるため、次のように簡略化できます。

v=(vf)f\vec {v_\parallel} = (\vec {v} \cdot \vec {f})\vec {f}

この時点で、 v\vec {v_\perp} も得ることができます。

v=vv=v(vf)f\vec {v_\perp} = \vec {v} - \vec {v_\parallel} = \vec {v} - (\vec {v} \cdot \vec {f})\vec {f}

現在、次の結果が得られています。

{v=(vf)fv=v(vf)f\begin{cases} \vec {v_\parallel} = (\vec {v} \cdot \vec {f})\vec {f} \\ \vec {v_\perp} = \vec {v} - (\vec {v} \cdot \vec {f})\vec {f} \end{cases}

次に、 v\vec {v^{\prime}} を分解します。 v=v\vec {v_\parallel} = \vec {v^{\prime}_\parallel} であることに気づくことができますが、平面上での分解が異なります。

IMG_8ADF34270E8C-1

この時、補助ベクトル w\vec {w} を導入します。このベクトルは v\vec {v_\perp} に垂直です。

{wfwvf=1w=v\because \begin{cases} \vec {w} \perp \vec {f} \\ \vec {w} \perp \vec {v_\perp} \\ || \vec {f} || = 1 \\ || \vec {w} || = || \vec {v_\perp} || \\ \end{cases}
w=f×v\therefore \vec {w} = \vec {f} \times \vec {v_\perp}

最終的な目標は、 v\vec {v^{\prime}_\perp} を使用して v\vec {v^{\prime}} を求めることです。そのためには、 v\vec {v^{\prime}_\perp}v1\vec {v_1}v2\vec {v_2} に分解し、既知の w\vec {w}v\vec {v_\perp} を使用して表現する必要があります(v 平行と同じ解法です)。

v1=vwwww=vwcos(90°θ)www=wsinθ\vec {v_1} = \frac {\vec {v^{\prime}_\perp} \cdot \vec {w}}{||\vec {w}||} \frac {\vec {w}}{||\vec {w}||} = \frac {||\vec {v^{\prime}_\perp}|| || \vec {w} || \cos(90° - \theta)}{|| \vec {w} ||} \frac {\vec {w}}{||\vec {w}||} = \vec {w} \sin\theta

v2=vvvvv=vvcos(θ)vvv=vcosθ\vec {v_2} = \frac {\vec {v^{\prime}_\perp} \cdot \vec {v_\perp}}{||\vec {v_\perp}||} \frac {\vec {v_\perp}}{||\vec {v_\perp}||} = \frac {||\vec {v^{\prime}_\perp}|| || \vec {v_\perp} || \cos(\theta)}{|| \vec {v_\perp} ||} \frac {\vec {v_\perp}}{||\vec {v_\perp}||} = \vec {v_\perp} \cos\theta

v=v1+v2=wsinθ+vcosθ\vec {v^{\prime}_\perp} = \vec {v_1} + \vec {v_2} = \vec {w} \sin\theta + \vec {v_\perp} \cos\theta

w=f×v\because \vec {w} = \vec {f} \times \vec {v_\perp}

v=vcosθ+(f×v)sinθ\therefore \vec {v^{\prime}_\perp} = \vec {v_\perp} \cos\theta + (\vec {f} \times \vec {v_\perp}) \sin \theta

v=v+v=vcosθ+(f×(vv))sinθ+v\vec {v^{\prime}} = \vec {v^{\prime}_\perp} + \vec {v^{\prime}_\parallel} = \vec {v_\perp} \cos\theta + (\vec {f} \times (\vec {v} - \vec {v_\parallel})) \sin \theta + \vec {v_\parallel}

fvf×v=0\because \vec {f} \parallel \vec {v_\parallel} \therefore \vec {f} \times \vec {v_\parallel} = 0

v=v+cosθv+(f×v)sinθ\vec {v^{\prime}} = \vec {v_\parallel} + \cos \theta \vec {v_\perp} + (\vec {f} \times \vec {v}) \sin \theta

{v=(vf)fv=v(vf)f\because \begin{cases} \vec {v_\parallel} = (\vec {v} \cdot \vec {f})\vec {f} \\ \vec {v_\perp} = \vec {v} - (\vec {v} \cdot \vec {f})\vec {f} \end{cases}

v=(1cosθ)(fv)f+cosθv+sinθ(f×v) \therefore \vec {v^{\prime}} = (1 - \cos \theta)(\vec {f} \cdot \vec {v}) \vec {f} + \cos \theta \vec {v} + \sin \theta (\vec {f} \times \vec {v})

証明終了、これで軸角度の回転公式が得られました。

参考文献#

《动手学机器人学》(5)(一般形式旋转矩阵公式)或(罗德里格旋转公式)或(轴角法)证明 and 齐次坐标变换

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。