この記事を読むには、ベクトルの内積と外積の基本的な知識を理解する必要があります。以下に、大まかな定義を示します(ここでは行列は使用しないため、行列形式は書きません)。
- ベクトルの内積
- v⋅j=∣∣v∣∣∣∣j∣∣cosθ
- 幾何学的には、ベクトル v をベクトル j に投影した長さにベクトル j の長さを掛けたものです。
- ベクトルの外積
- v×j=∣∣v∣∣∣∣j∣∣sinθ
- 外積は三次元空間でのみ幾何学的な意味を持ち、ベクトル v とベクトル j に直交するベクトルであり、その大きさはベクトル v とベクトル j が作る平行四辺形の面積です。
また、注意する必要があるのは、この記事は右手系を基にしており、回転方向の正負は右手の法則で判断できます。
ロドリゲスの回転公式#
回転軸 f が与えられた場合、ベクトル v を回転軸周りに θ 角回転させた後の v′ を求めます。以下の図を参照してください。
回転軸の長さは回転に影響を与えないため、解を求めるために、 ∣∣f∣∣=1 と定義します。この時、平面( v∥ )と回転軸( v⊥ )に v を分解します。以下の図を参照してください。
v∥ は、 v を f 上に射影したものと見なすことができます。明らかに、内積を使用して表すことができます。
すなわち、 v∥=∣∣f∣∣v⋅f∣∣f∣∣f
ここで、なぜこのように書くのかについて説明します。上記の内積の説明は非常に明確です。内積の結果は、ベクトル v をベクトル f に投影した長さにベクトル f の長さを掛けたものです。つまり、 ∣∣v∥∣∣ を単独で取得する場合、結果を ∣∣f∣∣ で除算する必要があります。この時、ベクトルではなく値が得られます。また、 v∥∥f であることに注意してください。つまり、2 つのベクトルは同じ方向を向いています。したがって、値に f を掛けることで、 v∥ を得ることができます。また、 ∣∣f∣∣ は 1 であるため、次のように簡略化できます。
v∥=(v⋅f)f
この時点で、 v⊥ も得ることができます。
v⊥=v−v∥=v−(v⋅f)f
現在、次の結果が得られています。
{v∥=(v⋅f)fv⊥=v−(v⋅f)f
次に、 v′ を分解します。 v∥=v∥′ であることに気づくことができますが、平面上での分解が異なります。
この時、補助ベクトル w を導入します。このベクトルは v⊥ に垂直です。
∵⎩⎨⎧w⊥fw⊥v⊥∣∣f∣∣=1∣∣w∣∣=∣∣v⊥∣∣
∴w=f×v⊥
最終的な目標は、 v⊥′ を使用して v′ を求めることです。そのためには、 v⊥′ を v1 と v2 に分解し、既知の w と v⊥ を使用して表現する必要があります(v 平行と同じ解法です)。
v1=∣∣w∣∣v⊥′⋅w∣∣w∣∣w=∣∣w∣∣∣∣v⊥′∣∣∣∣w∣∣cos(90°−θ)∣∣w∣∣w=wsinθ
v2=∣∣v⊥∣∣v⊥′⋅v⊥∣∣v⊥∣∣v⊥=∣∣v⊥∣∣∣∣v⊥′∣∣∣∣v⊥∣∣cos(θ)∣∣v⊥∣∣v⊥=v⊥cosθ
v⊥′=v1+v2=wsinθ+v⊥cosθ
∵w=f×v⊥
∴v⊥′=v⊥cosθ+(f×v⊥)sinθ
v′=v⊥′+v∥′=v⊥cosθ+(f×(v−v∥))sinθ+v∥
∵f∥v∥∴f×v∥=0
v′=v∥+cosθv⊥+(f×v)sinθ
∵{v∥=(v⋅f)fv⊥=v−(v⋅f)f
∴v′=(1−cosθ)(f⋅v)f+cosθv+sinθ(f×v)
証明終了、これで軸角度の回転公式が得られました。
参考文献#
《动手学机器人学》(5)(一般形式旋转矩阵公式)或(罗德里格旋转公式)或(轴角法)证明 and 齐次坐标变换