10.剛体の座標・速度

剛体の状態(位置と姿勢)は、剛体上の1点の位置 x0 と回転行列 R (式(4))により決まる。 R に対する自由な座標として、例えば、 x0 とオイラー角(【10.3-注2】)を採用することができる。一方、 R の自由な速度には、最も自然なもの、即ち、角速度ベクトル ω (式(14))が存在する。

剛体の運動方程式(2)を解きたいが、成分が多すぎる

ここからは、大きさを持っており、かつ変形は無視できる物体(=剛体)の運動を扱う。例えば、回転するこまや床を転がるボールの運動である。これまで主に扱ってきた大きさを無視できる物体(=質点)から、現実的な大きさを持つ物体へと、議論を進めるわけである。
知りたいのは、剛体の運動を求める方法である。そのためには、これまで見てきた質点の理論が応用できれば都合がよい。そこで着目するのは、剛体とは「無数の質点(質点要素という)の集合で構成される物体に、物体が変形しないという拘束条件が課せられたもの」であると見なせることである。物体が変形しないという拘束条件は、以下のように、「質点要素間の距離が一定である」と表せる:xii 番目の質点要素の座標) Gijxixj=const.(1) 質点要素に対する運動方程式は、これまで同様、以下のようになる:mii 番目の質点要素の質量) ⎢ ⎢m1m2⎥ ⎥M⎢ ⎢¨x1¨x2⎥ ⎥¨X=⎢ ⎢f1f2⎥ ⎥F+⎢ ⎢fc1fc2⎥ ⎥Fc(2)
拘束力 Fc は、拘束条件(1)から決まる(第8章の【8.2-注2】)F は重力などの外力なので、少なくとも原理的には、運動方程式が確定し(=質点要素の加速度 ¨X が確定し)、剛体の運動を計算することができる。しかしこのままだと、無数の質点を扱う必要があるため、直接解くのは難しそうである。そこでこの運動方程式(2)を、第9章のように、自由な座標 Θ を用いたものに書き換えるという方針を取ることにしよう。ただし、後で分かるが、「自由な座標 Θ 」より「自由な速度 Ω 」のほうが自然であることが分かる(回転を表す自由な座標 θ として自然なものがないため)。
この章では、剛体の自由な座標・速度がどのようなものになるかを、以下の3つの節に分けて議論する: 11.1:11.2:R11.3:R 本来の目的である剛体の運動方程式は、次の第11章で導く。

10.1 剛体の位置と回転を分離する

拘束条件(1)から、自由な座標を求めたいのだが、いきなりは難しい。この節では第1段階として、剛体の状態を決めるには、「剛体上の1点 x0 」と「回転行列 R 」を与えればよいことを見る。 x0 は剛体の位置を表し、 R は剛体の向きを表す。

剛体の自由度は 6 だろう

この章の冒頭でも述べたように、剛体を構成する質点要素 xi は非常に多いが、一方で、拘束条件 Gij の数も膨大なので、自由度の数自体は少なくなると考えられる。実際、以下の【10.1-注1】のように、自由度が 6 しかないことが推測される(数学的な議論は10.2節で行う)。この程度であれば、自由な座標を求めて、運動方程式の形まで持っていけるのではないだろうか。

【10.1-注1】剛体の自由度は 6 だろう

剛体の自由な座標が6自由度であることは、右図のように地球を例にとって考えることで推測できる。まず、地球の中心位置は任意なので平行移動の 3 自由度(右図左)。その後、地軸の周りに任意の角度回転させることができるので、 +1 自由度(同図右の矢印)。最後に、地球の中心を固定したまま地軸を倒していくことで、地軸を任意の方向に傾けることができるので、さらに +2 自由度(同図右の矢印)。よって、平行移動の3自由度と回転の3自由度、合わせて 6 自由度である。逆に、これら 6 つの量を決めると、地球の位置・姿勢は一意的に決まりそうである。

剛体の配置は x0R で決まる:式(5)

剛体上の任意の1点 x0 に着目すると、これは剛体を動かすことにより任意の値を取り得るので、自由な座標の一部として採用できる。なお、 x0 は剛体とともに動いていればよく、文字通り剛体上にある必要はない(例えばドーナツ型の剛体の場合、その中心を x0 にとってもよい)。
残りは、回転に対応する自由度である。まず、拘束条件(1)を、 x0 を基準にした相対座標 xi0xix0 に関する式として書き直すと、以下のように簡単になる:(導出は以下の【10.1-注2】) xTj0xTi0=const. この式において、 j=1,2,3 とすれば、以下の3本の連立1次方程式になる:(最右辺は t=0 での値) ⎢ ⎢xT10(t)xT20(t)xT30(t)⎥ ⎥xi0(t)=const.=⎢ ⎢xT10(0)xT20(0)xT30(0)⎥ ⎥xi0(0) x10,x20,x30 を1次独立にとっておけば、赤字部分は逆行列を持つので、その逆行列を左乗することにより、 xi0(t) が決まる: xi0(t)=⎢ ⎢xT10(t)xT20(t)xT30(t)⎥ ⎥1⎢ ⎢xT10(0)xT20(0)xT30(0)⎥ ⎥R(t)xi0(0)xi0(t)=R(t)xi0(0)(3)
この 3×3 行列 R(t) は、3つのベクトル x10,x20,x30 だけから決まり、 i に依存しない。よって、 R(t) さえ分かれば、式(3)により全ての i に対しての xi0(t) が、(初期値 xi0(0) のもとで)決まることになる。 R は、剛体の向きを表すと考えられる。実際、次の段落で見るように、この R は回転行列と呼ばれるものになっている。
以上により、任意の質点要素の位置 xi(t)x0(t),R(t)(4) が与えられれば、以下のように決まる: xi(t)=x0(t)+xi0(t)xi0xix0=x0(t)+R(t)xi0(0)(3)=x0(t)+R(t)(xi(0)x0(0))(5)

【10.1-注2】 x0 を用いた拘束条件

剛体上の任意の点 x0 を取った時、拘束条件(1)は以下のように書ける:i=j も含む) xTi0xTj0=const.(6) ただし、 xi0 は、 x0 を基準にした相対座標である:x0 が始点で xi が終点になるベクトル) xi0xix0(7)

導出

x0 は剛体上にあるので、 x0 と「任意の質点要素 xi 」との距離 |xix0| も一定になる。よって、拘束条件(1)にこれを加えてもよい: xixj=const.|xix0|=const.}(8) この式に式(7)(を xi=[] の形に変形したもの)を代入して xi,xj を消去すると、上式(8)(を2乗したもの)はそれぞれ (xi0xj0)T(xi0xj0)=const.xTi0xi0=const.} となる。これらは、式(6)と等価である。

R は回転行列

剛体の回転部分に関する量を、行列 R に分離することができた。この R が自由な座標であればよいのだが、そうではなく、 R にはまだ拘束条件が残っている。実際、式(3)を拘束条件(6)に代入して得られる xTi0(t)xj0(t)A(t)=xTi0(0)RT(t)R(t)xj0(0)=const.=xTi0(0)xj0(0)A(0) において、全ての i,j に対して A(t)=A(0) が成り立つためには RTR=1(9) が常に成立していなければならない。以下の【10.1-注3】より、上式は、 R が回転行列であることを意味している。
この条件式(9)からは、行列式 |R| の値が、 ±1 のどちらかであることしか言えない。しかし実際には、常に |R|=+1 である。なぜなら、 R は時間とともに連続的に変化する量なので、 t=0 において |R|=+1 であれば、それ以降の時刻で 1 への不連続な変化を起こすことはできないからである( t=0 での R は単位行列なので |R|=+1 )。
式(9)は 3×3 の行列の方程式なので、 9 個の拘束条件がかかっているように見える。しかし、左辺は自動的に対称行列A=AT を満たす行列)となるため、左辺の「右上三角部分の3成分」と「左下三角部分の3成分」の値は自動的に等しい。よって、独立な条件は 6 個のみである。よって、 R の自由度は、この条件の数を引いた 96=3 である。剛体全体の自由度は、 x0 の自由度 3R の自由度3、合わせて 6 自由度であることが分かり、上述の【10.1-注1】での推測が正しかったことが分かる。

【10.1-注3】回転行列

以下の条件 RTR=1(10) を満たし、行列式 |R|+1 の行列 R を、回転行列という。

補足

回転行列という名の通り、任意のベクトル x に対し、 R を掛けたもの xx=Rx は、 x を一定の角度だけ回転したものになる。例えば、 z 軸周りに θ だけ回転させる回転行列 Rz(θ) は、以下のようになる: Rz(θ)=cosθsinθ0sinθcosθ0001
式(10)の両辺の行列式をとることにより、 |R|=±1 となるので、 |R|=1 となるものもあり得る。しかし、そのような R は、回転だけでなく座標反転を含むため除外している(単位行列から連続的に到達できない)
式(10)は、「任意のベクトル x,y の内積が、 R を作用させた x,y の内積と等しい」という条件とみなすこともできる: RTR=1xTy=xTRTRy=xTy 「内積を変えず(=ベクトルの大きさと相対角度を変えず)、かつ反転を含まない線形変換」は、回転のみということであり、直感的にももっともらしい。

10.2 回転行列 R の自由な速度:角速度ベクトル ω

回転行列 R には、まだ拘束条件(9)がかかっているので、自由な座標ではない。しかし、拘束条件(9)から自由な座標を導くのは難しい。そこで、自由な「座標」ではなく、より簡単に扱える自由な「速度」を考えることにしよう。というのも、自由な「座標」は、拘束条件(9)を満たすあらゆる状態を考慮する必要があるが、自由な「速度」は、変化できる方向を考えるだけで済むからである。
この節では、 R の自由な「速度」である角速度ベクトル ω を導く(式(14))

R の自由な速度は、式(12)の a,b,c

まず、回転行列 R の「速度」 ˙R に対する拘束条件は、拘束条件(9) RTR=1 の時間微分をとったものになる。しかしここでは、積の順序を入れ替えた RRT=1 の微分を考えることにする(一般に、 AB=1 ならば BA=1 である)ddt(RRT)=˙RRT+R˙RT=0˙RRT+(˙RRT)T=0(11) 式(9)の積を入れ替えた理由は、上式の赤字部分が後の式(13)に現れるようにするためである。
上式(11)より、赤字部分は反対称行列である。従って、3つの数 a,b,c により、 ˙RRT=0aba0cbc0(12) と書ける。 a,b,c には拘束条件がかかっていないので、自由な速度になっている。

a,b,c は角速度ベクトル ω の成分:式(14)

では、式(12)の反対称行列は、どのような物理的な意味を持っているのだろうか。回転速度に関する量なので、時刻 t+δt における相対座標 xi0(t+δt) の1次近似を考えればよいはずである:(時刻を明示していない量は t における値) xi0(t+δt)=R(t+δt)xi0(0)(R+˙Rδt)xi0(0)=(1+˙RRTδt)xi0(t)(3)(13) () 部分は、 xi0(t)xi0(t+δt) に変化させる行列、即ち δt の間における微小回転を表していることが分かる。これの δt の係数が、ちょうど式(12)になっている。
一般に、「単位ベクトル e を軸とし、微小角度 δθ だけ右ねじ回転するような変換」を表す回転行列は、1次近似の範囲で以下のように書ける: R(e,δθ)1+δθe× (以下の【10.2-注1】の式(15)において、 θ が小さいという近似 cosθ1,sinθθ を行ったもの。)この式を上式(13)を見比べることにより、あるベクトル ωω×=˙RRT(14) と定義する時、式(13)の () 部分は、「 ω 方向を軸として角度 |ω|δt だけ右ねじ回転」させるような回転行列を表していることになる。つまり、 ω の物理的意味は、「回転の軸の方向を向き、大きさが右ねじ回転の速さになるベクトル」ということである。 ω を角速度(または角速度ベクトル)という。このように直感的にも分かりやすい意味を持つ ω を、自由な速度として使うのが自然だろう。
質点要素の速度 ˙xi を、「剛体上の基準点の速度 ˙x0 」と「角速度 ω 」を用いて表すには、式(5)を時間微分すればよく、以下のようになる:(全ての量は時刻 t でのもの) ˙xi=˙x0+ω×(xix0)

【10.2-注1】ロドリゲスの回転公式

「単位ベクトル e を軸とし、角度 θ だけ右ねじ回転するような変換」を表す回転行列 R(e,θ) は、以下のロドリゲスの回転公式で与えられる: R(e,θ)=eeT+cosθ(1eeT)+sinθe×(15)
ただし、 e× は以下の【10.2-注2】で定義されるベクトルのクロスである。右ねじ回転とは、右図のように、右手の親指を e 方向に向けた時に、残りの4本の指が曲がる向きが正方向となる回転のことである。

図解

図解するために、まず、2次元の場合を考える。この場合、ベクトル x を反時計回りに θ だけ回転させる回転行列 R は、以下のようになる: R=[cosθsinθsinθcosθ] 回転後のベクトル Rx を以下のように変形すれば分かりやすい: Rx=cosθx+sinθ[0110]x 右辺の第1項と第2項が直交するので、右上図のようになり、確かに角度 θ の回転になっていることが分かる。
次に、3次元の場合である。 Rx は、式(15)を正射影行列を用いて書き換えることにより以下のようになる: Rx=Px+cosθPx+sinθe×x P=eeT,P=1eeT である。正射影行列については第3章の【3.1-注1】参照。)このように、右辺は3つの項からなるが、それらの緑字部分を図示すると右図のように互いに垂直になる。 e 方向の成分 Px は回転で変化しない。一方、 e と垂直な成分は右ねじ方向に θ だけ回転することになるが、これは平面的な回転であり。実際、2次元の場合と同じ形になっていることが分かる。e×x の方向については以下の【10.2-注2】参照。)ここでは幾何学的に示したが、連続体力学編第5章で、微分方程式から導出する。

【10.2-注2】ベクトルのクロスとクロス積

[1] 3次元ベクトル a のクロス a× は以下の反対称行列で定義される: a×=s0a3a2a30a1a2a10(16) sx,y,z 軸が右手系の時 +1 、左手系の時 1 である(右手系しか使わないので +1 としてよい)右手系とは、右図のように、 x 軸方向に向けた右手の4本の指を、 y 軸方向に向けて曲げた時に、親指が向く方向が z 軸方向となる系である(逆に、 z 軸の向きが反対になれば左手系)。
[2] クロス a× と任意のベクトル b との積: a×ba2b3a3b2a3b1a1b3a1b2a2b1 をクロス積という(外積ともいうが本サイトでは使わない)。このベクトルの大きさ・向きは =a,b=a,b}(17) となる。向きは2方向あり得るが、右図のように、 a,b,a×b が右手系となる向きになる。これを右手の規則という。本サイトでは、 a×b を、常に a×b の行列の積とみなすことにする。例えば、 a×b×c(a×)(b×)c と解釈する。
[3] 有用な公式として、反対称性(=ベクトルの入れ替えで符号が変わること)b×a=a×b(18) および、2つの連続するクロスを消去する簡約公式がある: a×b×=baTaTb(a×b)×=baTabT(19)(20)

証明

[2] 大きさについては直接計算すれば分かる: |a×b|2=(a×b)T(a×b)=(bTa×)(a×b)[(a×)b]T=bT(a×)T=|a|2bT(1ˆaˆaT)b(19)a×a×=aaT|a|2=|a|2|b|2()a 向きについては、 a×b の定義から a,b と垂直であることがまず分かる。次に、 x 軸、 y 方向の単位ベクトル ex,ey のクロス積は ex×ey=ez となり、右手の規則を満たすことに着目する(右手系を考えているが左手系でも符号が変わる以外は同様)a,ba=ex および b=ey から連続的に任意の値に変化させることを考えると、その途中で a,b が平行になったり 0 になったりしないようにできるので、右手の規則が成り立ち続けることが分かる。
[3] 式(18)は、クロス積の定義式より明らかである。式(19)は、クロスの定義(16)に代入すれば得られる: a×b×=0a3a2a30a1a2a100b3b2b30b1b2b10=a2b2a3b3a2b1a3b1a1b2a3b3a1b1a3b2a1b3a2b3a1b1a2b2=a1b1a2b1a3b1a1b2a2b2a3b2a1b3a2b3a3b3aTb=baTaTb 式(20)については、式(18)と式(19)を組み合わせればよい: (a×b)×c=c×(a×b)()×c=c×()=(xcTcTa)bc×a×=acTcTa=(abTbaT)c

10.3 R の自由な座標

回転運動の自由な速度として角速度 ω (式(14))が得られたので、これをもとに自由な座標 θ が得られないだろうか。この節では、それが不可能であることを示す。その後、自由な座標として、オイラー角と角度ベクトルを紹介する。

˙θ=ω を満たす自由な座標 θ は、存在しない

さて、欲しかったのは、回転行列 R の自由な座標 θ であった。角速度 ω が求まったのだから、そこから導けるのではないだろうか。即ち、もし、 ˙θ=ω のように、時間微分したときに角速度になるような θ が存在すれば、それが最も自然な θ だと考えられる(速度 ˙x が座標 x の微分であったように)。しかし、以下の【10.3-注1】のように、そのような θ は存在しない。(自由な座標 θ 自体が存在しないことを意味しているわけではない。実際、すぐ後の段落で自由な座標の具体例を与える。)

【10.3-注1】角速度 ω は、自由な座標 θ の微分で書けない

回転行列 R に対する自由な座標の1つを θ とおく: R(θ) 。この時、どのように θ をとったとしても、角速度 ω˙θ を常に一致させることは、できない。

証明

背理法で示す。もし、 ω=˙θ となるのであれば、これを ω の定義式(14)に代入して ˙R=˙θ×R(21) が得られる。即ち、 R(θ)θi で偏微分したものは以下のようになる:eii 成分のみが1でそれ以外が0のベクトル) θiR=ei×R(22) 分かりにくければ、式(21)の両辺に δt を掛けて1次近似の形にすればよい: δRδθ×R=(iδθiei)×R=i(ei×R)δθi 微分の定義により、 δθi の係数が θiR である。
さて、第6章の【6.3-注2】で述べたように、偏微分は一般に可換である。しかし、式(22)はこれと矛盾する。例えば θ1,θ2 での微分を式(22)により計算すると: θ2θ1R=100×010×R=000100000R(19)θ1θ2R=010×100×R=010000000R となり一致しない。よって、当初の仮定 ω=˙θ は成立しない。

自由な座標の例

このように、角速度 ω から自由な座標 θ が導けることを期待したが、そうではなかった。そこでここでは、 θ の例として、オイラー角(以下の【10.3-注2】)と回転ベクトル(以下の【10.3-注3】)を紹介するに留めることにする。

【10.3-注2】オイラー角 θ

まず、 x,z 軸周りに θ だけ右ねじ回転する回転行列それぞれ Rx,Rz は、以下のように書ける: Rx(θ)=1000cosθsinθ0sinθcosθ,Rz(θ)=cosθsinθ0sinθcosθ0001
任意の回転行列 R は、オイラー角と呼ばれる3つのパラメータ θ=[θ1θ2θ3]T を用いて、以下のように書けることが知られている: R(θ)=Rz(θ3)Rx(θ2)Rz(θ1)(23) これの意味するところは、まず z 軸周りに θ1 だけ回転させ、つぎに x 軸周りに θ2 、最後に z 軸周りに θ3 だけ回転させるということである。今は回転軸を z-x-z の形でとっているが、軸の取り方にはもちろん任意性がある。

角速度との関係

オイラー角の微分 ˙θ と角速度 ω の関係式を導くには、 ω×=˙RRT (式(14))の右辺に式(23)を代入して、両辺を比較すればよく、以下のようになる: ω=sinθ2sinθ3cosθ30sinθ2cosθ3sinθ30cosθ201˙θ(24) なお、 sinθ2=0 の時、行列部分の第1列と第3列が平行になる。すると、この行列が逆行列を持たなくなるので、特定の ω に対応して、上式を満たす ˙θ が存在しなくなる(ジンバルロックという)。つまり、オイラー角は任意の回転行列 R を表すことができるが、その微分 ˙R (即ち ω )については表現できない場合があるというわけである。そのため、ジンバルロックが発生しそうになったら、回転軸を z-x-z 以外のものに取り換えるといった対策が必要となる。

【10.3-注3】回転ベクトル θ

任意の回転行列 R は、「回転軸」と「その周りの回転角度」で表すことができる。具体的には、回転ベクトル θ を、「回転軸方向を向き、大きさが右ねじ回転の角度」となるように定義すると、 R は、以下のように書ける:(【10.2-注1】の式(15)の書き方を変えただけである)
R(θ)=ˆθˆθT+cos|θ|(1ˆθˆθT)+sin|θ|ˆθ×

角速度との関係

回転ベクトルの微分 ˙θ と角速度 ω との関係式は、以下のようになる:(式(24)の導出と同様)
ω=[ˆθˆθT+sin|θ||θ|(1ˆθˆθT)+1cos|θ||θ|ˆθ×]˙θ(25) 特に、回転軸が一定の場合、即ち θ˙θ の場合には、右辺第1項のみが残り ω=˙θ となる。