シミュレータのための剛体力学理論
Mitsuru Nishibe (mitsuman)
1999/03/10
1.はじめに
近年の
(中略)
だろう.
そこで現実の物体に近い性質を持つ剛体を扱ったシミュレーションの研究を行う.
具体的にはシミュレータは物体を多面体で定義し,全ての物体間の作用は衝突により処理することにより汎用性の高いシステムを目指した.
ここでは,シミュレーションに必要な剛体力学の式の導出及び解析と,姿勢制御に用いられるquaternionの解析を行う.参考文献と併せて読むと良いと思う.
2.理論
2.1.剛体力学による運動方程式
剛体を扱う場合,質点の移動にニュートンの運動方程式,回転にオイラーの運動方程式を用いるのが一般的である.移動に関しては扱い方は1通りしかないが[1],回転は幾つかの表現方法がある.まずはニュートンの運動方程式から導かれる形から考える.
使う記号の意味は以下に準ずる.
2.1.1.並進運動
まず質点の移動について考えると,ニュートンの運動方程式より
(2.1)
(2.2)
位置の変化量は速度の定義より明らかなので,これで質点の移動に関する運動方程式は十分である.
2.1.2.角速度による姿勢変化
まず,姿勢を表す行列はその慣性系の基底ベクトルを束ねたものであるのでベクトルを使うと,次のようになる.
(2.3)
が重心周りの角速度を表しているので,重心からの位置にある点の速度はであるから,これを各基底ベクトルにあてはめると,
(2.4)
この行列は外積に相当する事がわかる.
これを用いるとは次のように簡潔に表記できる.
(2.6)
2.1.3. 回転モーメント
角速度の変化量を求める前に角運動量について解析しよう.剛体を質点の集まりと考え,それぞれの中心からの位置を,質量をとすると,角運動量の定義は
(2.7)
である.これを微分しよう.
ここで,
(2.8)
として原点周りの外力の回転モーメント(トルク)をと定義する.
これより「角運動量の時間変化はトルクに等しい」ことが言える.
(2.9)
2.1.4.. 慣性テンソル
さてここで剛体が角速度を持っているとして角運動量を展開してみよう.
(2.14)
を得る.
2.1.5.トルクから角速度の計算
トルクから角速度の変化を求めよう.角運動量の式の左辺を展開すると,
(2.15)
(2.13)より,
よって
(2.16)
一見複雑になってしまったが,系全体を回転させれば簡単になる.
(2.17)
をワールド座標系と捉えず物体の座標系と考えて置きなおせば
(2.18)
展開するとオイラーの運動方程式になる.
姿勢をquaternionで表すと様々な利点があるが,座標変換時には行列にしてスケーリング行列等とまとめると効率がよい.また姿勢行列が無いとIが計算できない.このことよりquaternionを使った回転を行列表記する必要がある.
これを用いて(2.32)を計算しよう.
より,
は正規化されているのでであるから,
故に,
(2.36)
を得る.
2.3.衝突
多面体同士の接触を検出し,その時点の速度,角速度,質量,慣性テンソル,反発係数から撃力を与える.接触点の座標を,接触点での相対速度を,接触面の法線をとすると接触店における撃力は
3.1. 環境
3.2. 剛体
3.3.衝突検出の高速化
[1] David Baraff. An Introduction to Physically Based Modeling:Rigid body simulation I/II,1997
[2] 神谷 周,撃力ベースによる3次元剛体運動シミュレーション,東京大学精密機械工学科 卒業論文,1998
[3] 宇治社中,クウォータニオン,1998