The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
インタラクティブ技術に必要な数学と物理
インタラクティブ技術に必要な数学と物理
東京工業大学
長谷川晶一
東京工業大学
長谷川晶一
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
自己紹介自己紹介
�長谷川晶一�VRをはじめて11年.学部2年からVRコンテストに参加
�コンテストで忙しくて授業に出ない日々
�教養の数学・物理は,ぎりぎりで単位取得
�VRコンテスト→東工大佐藤・小池研(力覚インタフェースSPIDARの研究室)
� 近は動力学シミュレーションも研究
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
VRシステムの中の数学と物理VRシステムの中の数学と物理
�VRシステム
提示装置
大画面HMD
計測装置
ポヒマス加速度センサ
コンピュータ
3DCGレンダリング
シミュレーション
数学数学数学数学
物理物理物理物理
数学数学数学数学
物理物理物理物理数学数学数学数学
物理物理物理物理
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
今日の目標今日の目標
�数学がVR役立つということを納得してもらいたい.
�VRシステムを作るために必要な 小限の数学と
物理の話をする.
�あとで,自分の問題を解くために,教科書のどこを見ればよいか分かるように.
�今日の話は(あたりまえですが)不完全です.それに
気づいてほしいです.いつかその日が来るように.
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
話の進行話の進行
�位置の数値化
�座標系の変換と行列
�逆変換
�回転変換
�行列のランク
�積分・微分とシミュレーション
�物理シミュレーション
�運動方程式(質点・剛体)
�安定性と行列のn乗
位置・角度センサ
3DCGロボット
シミュレーション
制御
線形代数
微分積分
力学
線形代数
アプリケーション 教科書トピック
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
位置と数値位置と数値
�ポヒマスセンサ という位置センサ
�トランスミッタからみた,レシーバ位置を計測
トランスミッタ レシーバ
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
位置と数値位置と数値
コンピュータ
数値で表さなければならない
トランスミッタ レシーバ
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
位置と数値位置と数値
� レシーバの位置(P)は,トランスミッタ(O)から矢印pだけ進んだところ
� 矢印pを数値で表したい.
� 向きと長さの基準が必要:基底(基準の矢印)
矢印pは,ex 3つ分+ ey2つ分+ ez1つ分これを,p=3ex + 2ey + 1ez と書く
ez ex
ey pO
P
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
位置と数値位置と数値
� レシーバの位置(P)は,トランスミッタ(O)から矢印p =3ex + 2ey + 1ezだけ進んだところ
� 原点O,基底(ex ey ez ) が決まると,
点Pは3つの数値 で表せる.
� (原点O,基底(ex ey ez ) )のことを座標系といいます.
pez ex
ey O
P
321
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
ついでにいうと 基底ベクトル ex ey ez も 矢印だから数値で書けます.それにも,もちろん,基底(ex ,ey ,ez )が必要です.
位置と数値位置と数値
p=3ex + 2ey + 1ez
ez
ex
ey
基底は(ex ,ey ,ez )
基底のおかげで矢印が数値で表せるようになった
321
p =
基底を忘れてはならないのだけど...面倒なので省略します.
100
ex =010
ey =001
ez =
ベクトル
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
�手の位置の計測
�トランスミッタを目の位置に置くと
�目にくっついた座標系で,手の位置が数値になる.
座標系座標系
レシーバ
Ph
トランスミッタOez
ex
ey
ph = 2ex -1ey +3ez
ph
2-13
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
座標系の変換座標系の変換
�机から見た手の位置�ポヒマスが2個あると
wz
wx
wyez
ex
ey
ph = 2ex -1ey +3ez
pe = 2wx +1wy +1wz
2-13
211机机机机にくっついた座標系wで
目目目目の位置が数値になる
目目目目にくっついた座標系eで手手手手の位置が数値になる
机机机机にくっついた座標系wでの手手手手の位置を数値にすると?
pe ph
q
q = pe+ph :机から見た手の位置
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
向きの計測向きの計測
�ポヒマスセンサは実は向きも測れる
�位置pと同様に向き(ex ey ez )も数値で返す
トランスミッタ
レシーバwz
wx
wy
ez ex
ey コンピュータ
wz
wx
wy
ez ex
ey
(ex ey ez )=( )0.50
0.9
010
-0.90
0.5基底は(wx wy wz )
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
基底の変換(取替え)基底の変換(取替え)
ポヒマスの返す数値から
ex = 0.5 wx + 0 wy + 0.9 wz ey = 0 wx + 1 wy + 0 wzez =-0.9 wx + 0 wy+ 0.5 wz
ph = 2ex -1ey +3ez= 2(0.5 wx + 0.9 wz )-1wy +3(-0.9 wx +0.5 wz )= (1-2.7)wx -1wy +(1.8+1.5)wz= -1.7 wx -1wy +3.3 wz
だから,eをwで書き直せて,
q=pe+ ph =-1.7
-13.3
211
+ = 0.3
04.3
机机机机にくっついた座標系での手手手手の位置の数値
wz
wx
wy
ez ex
ey
ph
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
基底の変換と行列基底の変換と行列
�簡単に書きたい
ax+byを(a,b) と書くことにする.
ph = (ex ey ez )2-13
ex = 0.5 wx + 0.9 wz ey = wy ez =-0.9 wx + 0.5 wz なので,
= (wx wy wz )0.50
0.9(wx wy wz )
010
(wx wy wz )-0.9
00.5
2-13
= (wx wy wz )0.5 0 -0.90 1 00.9 0 0.5
2-13
=-1.7
-13.3
(wx wy wz )
基底基底基底基底をををを数値数値数値数値でででで表表表表したものしたものしたものしたもの→→→→行列行列行列行列
xy
ph = 2ex -1ey +3ez
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
基底の変換と行列のまとめ基底の変換と行列のまとめ
pwz
wx
wy
ez ex
ey
213
phは,2ex +1ey +3ez
phは,213
これをwで表したい
(ex ey ez )は,( )
なので,phは,
0.50
0.9
010
-0.90
0.5
213
0.5 0 -0.90 1 00.9 0 0.5
ph= =-1.7
-13.3
行列行列行列行列 行列とは基底を数値で書いて並べたもの
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
いろいろな変換いろいろな変換
2DCGの変形線の描画→ 始点と終点を数値で指定
基底:画面上のwx wy
基底を変えると変形する.
ex
ey
20
01
(ex ey )=( )10
01
(ex ey )=( )
ex
ey
ex
01
10
(ex ey )=( )
ey
11
01
(ex ey )=( )
exey
wx
wy
00
00.5(ex ey )=( ) 1
111(ex ey )=( ) 1
1-1-1(ex ey )=( )
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
回転変換回転変換
� 回転行列
というのがあったような
回転変換→回転した基底での数値をもとの基底での数値に変換する.
���
����
� −=
θθθθ
θcossinsincos
)(R
wx
wy 01
10
θ
θ exey
wx
wy
θ sinθ
cosθ
exey
���
����
�=
θθ
sincos
xe
���
����
�−=
θθ
cossin
ye
10
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
逆変換逆変換
�机の上の1台のトランスミッタで
目の座標系で表した手の位置を計測したい
Owz
wx
wy
ez
ex
ey
peq
ph
ポヒマスの出力:pe q ex ey ezの数値基底は(wx wy wz )
知りたいもの:phの数値基底は(ex ey ez )
ph1ph2ph3
ph=q-pe なので,基底(wx wy wz )でのph数値 は
わかる
ph1wph2wph3w
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
逆変換逆変換
(wx wy wz)を基底にしたex ey ezの数値は
ポヒマスから得られるので,
ex ey ez
ph1ph2ph3
ph1wph2wph3w
=
wz e x
e z
wx
もし,逆に(ex ey ez) を基底としたwx wy wzの数値がわかれば,
wx wy wz
ph1ph2ph3
ph1wph2wph3w
= wz
ex
ez
wx
なので, の数値がわかる.
ph1ph2ph3
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
逆変換逆変換
ex ey ez
ph1ph2ph3
ph1wph2wph3w
= wx wy wz
ph1ph2ph3
ph1wph2wph3w
=逆変換
逆行列
ex ey ez
ph1wph2wph3w
= wx wy wz
ph1wph2wph3w
ph1wph2wph3w
ph1wph2wph3w
=
1 0 00 1 00 0 1
1 0 00 1 00 0 1
=ex ey ez wx wy wz
=ex ey ez wx wy wz
-1と書く
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
逆行列の求め方逆行列の求め方
x2倍
ex ey ez1/2 0 - 3/20 1 03/2 0 1/2
wx wy wz1 0 00 1 00 0 1
1 0 - 30 1 03/2 0 1/2
2 0 00 1 00 0 1
1 0 - 30 1 00 0 2
2 0 00 1 0- 3 0 1
x2倍
z=z- 3/2 x
√
√
√
√
√
z=z- 3/2 x√ √
√
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
逆行列の求め方逆行列の求め方
1 0 - 30 1 00 0 1
2 0 00 1 0- 3/2 0 1/21/2倍
1 0 - 30 1 00 0 2
2 0 00 1 0- 3 0 1z=z- 3/2 x√ √
z=z- 3/2 x√
z 1/2倍
√
√
√
1 0 00 1 00 0 1
1/2 0 3/2 0 1 0
- 3/2 0 1/2
x=x+ 3z √
√
√
ex ey ez wx wy wz
x=x+ 3z√
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
3DCGでの変換の利用3DCGでの変換の利用
�ポリゴン・メッシュとは,3角形の頂点座標
�W: ( )とO ワールド座標系
�M:(mx my mz )とmp モデリングするときの座標系
�V:(vx vy vz )とvp 視点座標系(視点の位置と向き)
100
010
101
p2
mz
mx
my
p1
p3
vz
vxvy
視点
wz
wx
wy
mpvpO
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
3DCGの変換3DCGの変換
� モデリングしたときの頂点位置p1 p2 p3は,M座標系での数値になっている.数値:p1m p2m p3m
� これをV座標系での数値:p1v p2v p3vにできれば画面に表示できる.
vz vx
vy
p1
p2 p3
p1w= mp + Mp1m
p1w=vp + Vp1vp1v = V-1 (p1w -vp)
p1v =V-1 (mp +Mp1m-vp )
p2
mz
mx
my
p1
p3
vz
vxvy
視点
wz
wx
wy
mp vpO
あとは, , …に線を引けばよいp1v xp1v y
p2v xp2v y
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
逆変換のない場合逆変換のない場合
ex
ey
20
01(ex ey )=( )
10
01(ex ey )=( )
ex
ey ex
01
10(ex ey )=( )
ey
11
01(ex ey )=( )
exey
00
00.5(ex ey )=( ) 1
111(ex ey )=( ) 1
1-1-1(ex ey )=( )
ex
ey
戻せる
戻せない
つぶれてしまうと元に戻せない
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
行列のランク行列のランク
�ロボットの関節の速度と手先の速度
wx
wye2
e1
11θω22 θω
r1
r2
O
e1: ω1が1のときの手先の速度
e2: ω2が1のときの手先の速度
���
����
�
+−−
2211
2211
coscossinsin
θθθθ
rrrr
���
����
�−
22
22
cossin
θθ
rr
v
ロボットなので,r1, r2, θ1, θ2,はわかる.ω1 , ω2が設定できる.
手先に速度vを出したい
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
行列のランク行列のランク
( )
���
����
����
����
� −+−−
=
���
����
�=
+=
2
1
22
22
2211
2211
2
12
221
cossin
coscossinsin
ωω
θθ
θθθθ
ωω
ωω
rr
rrrr
ee
eev
1
1
ω1 , ω2がわかっているとき,手先の速度は
となる.
ωωωω→vができたのだから,逆変換 v → ωωωωをすれば,vを実現するωωωωがわかる
v1
cossin
coscossinsin
22
22
2211
2211
2
1−���
����
� −+−−
=���
����
�
θθ
θθθθ
ωω
rr
rrrr
逆変換できない場合は?
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
行列のランク行列のランク
( ) ���
����
� −−=��
�
����
� −+−−
=02/315.1
cossin
coscossinsin
22
22
2211
221121 θ
θθθθθ
rr
rrrr
ee
r1=1, r2=1, θ1=30°, θ2 =90°のとき
e2
e1
逆変換あり. どんなvでも出せる.
e2
e1r1=1, r2=0, θ1=90°, θ2 =90°のとき
( ) ���
����
�−=
0001
21 ee
逆変換なし.vは直線上だけ
基底が2つある.
基底が1つしかない.
e2
e1r1=1, r2=1, θ1=30°, θ2 =30°のとき
( ) ���
����
� −−=
2/332/11
21 ee
逆変換なし.vは直線上だけ実は基底が1つしかない.
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
行列のランク行列のランク
e2e1
r1=0, r2=0, θ1=30°, θ2 =90°のとき
( ) ���
����
�=
0000
21 ee
逆変換なし.vはまったく出せない基底がない 0個.
基底の数のことを行列のランクといいます.・平行な基底は数えません.・長さが0の基底は数えません.
2次元なら2つ,3次元なら3つ,4次元なら4つ ….基底がないと,つぶれてしまい,逆変換できません
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
冗長マニピュレータと長方形行列冗長マニピュレータと長方形行列
e2
e1
e3
11θω 22 θω
33 θω
wx
wy
O
���
�
�
���
�
�
���
����
�=��
�
����
�
3
2
1
321
321
ωωω
yyy
xxx
y
x
eeeeee
vv
速度vは2次元なのに,ωは3つ
e2 = 0.5e1 +0.8e3
基底は3つあるように見えるが,
e2
e1
e3
0.5
0.8のように,ほかの2つで表せる
関節2を動かさなくても,関節1と3を動かせば,どんな速度vも出せる.
逆行列はない.答えが無数にある.
冗長マニピュレータ
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
シミュレーションシミュレーション
�シミュレーション�現実のものの動きを計算機の中に再現すること
� そのために,現実世界の法則を見つけ,それを再現する.
�例:車の動きのシミュレーション� 「アクセルを踏むと加速する」→法則
時間t
アクセル:原因 速度:結果シミュレーションシミュレーションシミュレーションシミュレーション
アクセルの踏み具合?速度
時刻t=0で,0m/sだった
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
シミュレーションシミュレーション
アクセル:原因 車の動き:結果シミュレーションシミュレーションシミュレーションシミュレーション
「アクセルを踏むと車は加速する」法則を 式で書くと
ttatvttv ∆+=∆+ )()()(ちょっと後(t+∆t)の速度=今(t)の速度+今のアクセル×踏んだ時間
∆tが小さければ a(t) と a(t+∆t)はだいたい等しい∆tが小さければ小さいほど誤差が少ない.
t t +∆t今のアクセル
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
数と関数数と関数
とかも考える.
とかとかだけでなくとかは,っていた.数がならんでいると思
だった.のように,右下は整数とかはただ
と似ている.は,
)3(
)2/1()1.0()1()0()(
)(
10
a
aaaata
aaaata
t
t
t0
a0
a1
a2 a3 a4 a(t)
ここまでは,aといったら変数だったので値は1つだった.a(t)は,a0 a1a2 …を含んでいる.
だけど,これからは,a(t)と書かないでaと書く.こともある.この場合,aは関数.たくさんの値を持っていて,tごとに値a(t)がある.
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
シミュレーションシミュレーション
ttatvttv ∆+=∆+ )()()(
smavvsmavv
smavvsmavv
smavvsmv
/05.01.0)4.0()4.0()5.0(/03.01.0)3.0()3.0()4.0(
/015.01.0)2.0()2.0()3.0(/005.01.0)1.0()1.0()2.0(
/01.0)0()0()1.0(/0)0(
=+==+==+==+=
=+==
0.1
0.05
0.15
0.2...
smavvsmavv/225.01.0)9.0()9.0()0.1(
/18.01.0)8.0()8.0()9.0(=+==+=
0.4
0.45
2
1
これをプログラムでやるのが,コンピュータシミュレーション
法則
初の状態
その後の経過
分かっていること
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
シミュレーションと積分シミュレーションと積分
ttatvttv ∆+=∆+ )()()(
ttatatatav
ttatttatttattvttatttattv
ttattvtv
∆++∆+∆+∆+=
∆+∆∆−+∆∆−+∆−=∆+∆∆−+∆−=
∆+∆−=
))()3()2()(()0(
)()()2()3()()()2(
)()()(
�
�
τττ
dav
ttiavtv
t
tt
i
)()0(
)()0()(
0
/
0
�
�
=
∆
=
+=
∆∆+=誤差をなくすため∆tを0に近づける
積分
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
シミュレーションと積分シミュレーションと積分
�シミュレーションでは∆tずつ時間を進めてほしい時刻まで繰り返し計算する.
�積分はその結果のこと
ttatvttv ∆+=∆+ )()()(
�∆
=
∆∆+=tt
ittiavtv
/
0)()0()(
誤差をなくすため∆tを0に近づける
τττ
davt
)()0(0� =
+=
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
シミュレーションと微分シミュレーションと微分
�車の速度v(t)の記録がある.アクセルの踏み具合a(t)を知りたい
ttvttvta
ttatvttv
∆−∆+=
∆+=∆+)()()(
)()()(
v(t)
2/5.01.0
)1()1.01()1( sms
vva =−+= 1.0 1.1
0.2750.225
v(t)がわかっているので,
ちょっと後の値と今の値を引き算すれば出てくる.
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
シミュレーションと微分シミュレーションと微分
ttvttvta
∆−∆+= )()()(
誤差をなくすため,∆tを0に近づける
dttdv )(=
vをtで微分する.vのt微分
dttdvta )()( = 微分が入った方程式
→微分方程式と呼ぶ
dttdv )(
微分
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
微分と積分微分と積分
ttatvttv ∆+=∆+ )()()(これが元の式. a(t)とv(t)の関係を表している.
(ただし∆tは十分小さい)
dttdv
ttvttvta )()()()( =
∆−∆+=
τττ
davttiavtvttt
i)()0()()0()(
0
/
0�� =
∆
=
+=∆∆+=
微分
積分
ttvtxttx ∆+=∆+ )()()(位置と速度の関係も同じ
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
位置・速度・加速度位置・速度・加速度
2 3
1
0)0()()()(
=∆+=∆+
xttvtxttx
速度のときと同じように,位置を計算できる.
a(t)
v(t)
x(t)
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
物理と微分積分物理と微分積分
�物理学�現実世界の性質(法則)を調べる学問
�現実世界の法則�微分方程式で表される場合が多い
�法則の例�運動方程式
�波
�コイルの電圧
dttdvmtf )()( =
2
22
2
2 ),(),(dt
txdhcdx
txhd = h(x,t):波の高さc:波の伝わる早さ
dttdiLtV )()( =
微分方程式は簡単な式なのに,たくさんのことを表している.
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
力学力学
�物理シミュレーション�現実の物体は 物理法則 に従う.
�これをシミュレーションすれば,リアリティの高いVR世界が作れる.
�運動の法則�運動方程式
�慣性の法則
�位置と速度の関係
ttttt ∆+=∆+ )()()( avv
fa力
加速度
質量(比例係数)
)()( tmt af =
加速度aが速度vを変える
ttttt ∆+=∆+ )()()( vxx速度vが位置xを変える
dttdvta )()( =
dttdxtv )()( = ⇔
⇔
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
運動のシミュレーション運動のシミュレーション
tmtttt ∆+=∆+ )/)(()()( fvvttttt ∆+=∆+ )()()( vxx
)()( tmt af =ttttt ∆+=∆+ )()()( avvttttt ∆+=∆+ )()()( vxx
f(t)が分かれば,車のときと同じようにシミュレーションできそう.
Ox
バネにつながった質点(おもり)の動きをシミュレーションしてみる
)()( tkt xf −=f(t)
バネの法則
tmtkttt ∆−=∆+ )/)(()()( xvvttttt ∆+=∆+ )()()( vxx
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
運動のシミュレーション(1次元)運動のシミュレーション(1次元)
tmtkttt ∆−=∆+ )/)(()()( xvvttttt ∆+=∆+ )()()( vxx
1)0(,0)0( == xv
1.01.0)0()0()1.0( −=−= xvv10
???1.0)1.0()1.0()2.0( =−= xvv-0.1 ???
vだけで計算することはできない.
11.0)0()0()1.0( =+= vxx2.01.0)1.0()1.0()2.0( −=−= xvv
99.01.0)1.0()1.0()2.0( =+= vxx-0.1 1
1 -0.1
k=1,m=1 ∆t=0.1
xも求めれば計算できる.
( 初の状態)
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
運動のシミュレーション(1次元)運動のシミュレーション(1次元)
�シミュレーション結果
-3
-2
-1
0
1
2
3
0 5 10 15 20
速度v
位置x
バネにつけたおもりの揺れがだんだん大きくなる.そんなのそんなのそんなのそんなの見見見見たことないたことないたことないたことない....なにかなにかなにかなにか変変変変ではではではでは????
モデルモデルモデルモデルがががが変変変変????誤差誤差誤差誤差???? ∆t=0.1のせい?
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
運動のシミュレーション(1次元)運動のシミュレーション(1次元)
�シミュレーション結果2 ∆t=0.01
-3
-2
-1
0
1
2
3
0 5 10 15 20
速度v
位置x
さっきより良くなった.誤差のせいだったようだ.
∆tは小さい方が良い.
でも無限に小さくすると無限に計算時間がかかる.
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
運動のシミュレーション2 (1次元)運動のシミュレーション2 (1次元)
O x
)()( tkts xf −=fs(t)
バネの法則
tmtbtkttt ∆+−=∆+ )/)()(()()( vxvvttttt ∆+=∆+ )()()( vxx
初の状態: 1)0(,0)0( == xv
)()( tbtd vf −=
fd(t)
ダンパーの法則
1,1 == bk
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
�シミュレーション結果 ∆t=0.01
運動のシミュレーション2 (1次元)運動のシミュレーション2 (1次元)
-3
-2
-1
0
1
2
3
0 5 10 15 20
速度v
位置x
ダンパを入れると振幅がだんだん小さくなる.
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
物理シミュレーション3 (2次元)物理シミュレーション3 (2次元)
�形を持ったものをシミュレーション
3
m=1,k=1,b=11(自然長)
おもりが壁にぶつかるとぶつかっている間だけ,バネ・ダンパを付ける.
22
p2 v2
p3 v3 p1 v1
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
物理シミュレーション3 (2次元)物理シミュレーション3 (2次元)
バネによる力 f12s= -k s
s= ||)()(
21
2121 pp
pppp−−−−
O ex
ey
p2
p1s
自然長=1
のび=1
p2
O ex
ey
v1
v2
p1f12
v’1
v’2
ダンパによる力 f12d= -b(v’1-v’2)
v’1 = ||)(
||)(
21
21
21
211 pp
ppppppv
−−
���
����
�
−−⋅
22|| yx pp +== の長さpp
yyxx baba +===⋅
θcos|||| bababa の内積と
ab
θ|b|cosθ
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
物理シミュレーション3 (2次元)物理シミュレーション3 (2次元)
O ex
ey
tm
ttttt ∆+−=∆+ )()()()( 131211
ffvv
ttttt ∆+=∆+ )()()( 111 vpp
f13
p2 v2
p3 v3
p1v1
f12
||)(
||)()(
)||)()((
21
21
21
2121
21
212112
pppp
ppppvv
ppppppf
−−
���
����
�
−−•−−
−−−−−=
b
k
||)(
||)()(
)||)()((
31
31
31
3131
31
313113
pppp
ppppvv
ppppppf
−−
���
����
�
−−•−−
−−−−−=
b
k
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
物理シミュレーション3 (2次元)物理シミュレーション3 (2次元)
tm
tttttt ∆++−=∆+ )()()()()( 1131211
Rfffvv
2p1 v1
d1R
���
����
�−−=
01
11x
RR
vbkdf
壁壁壁壁にぶつかっているにぶつかっているにぶつかっているにぶつかっている場合場合場合場合::::
ほかの壁も同様
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
物理シミュレーション3 (2次元)物理シミュレーション3 (2次元)
�シミュレーション結果
ソースコード http://springhead.info/~hase/soft/sim2d.tar.gz
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
剛体の運動剛体の運動
�剛体� さっきの例のように,質点同士が動かないように固定されているもの
�バネダンパでもシミュレーションできるが,剛体は剛体としてシミュレーションした方が効率が良い
�剛体の特徴
=
どんな移動も 並進(平行移動)と回転 で表せる
並進と回転だけで運動を表そう
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
剛体にかかる力剛体にかかる力
�並進の力
21 ii ff −=押したぶんだけ,押し返される作用・反作用の法則
fi1
fi2
iiii m aff ei =+
��
���
��
=
=+
=+
iii
iiii
iiii
m
m
m
af
aff
aff
e
ei
ei
���
���∆+=∆+
∆+=∆+∆+=∆+
ttmttm
ttmtmttmttttt
iiiii
iiiiii
efvv
avvavv
)()(
)()()()()()(
質量・速度 (運動量)の変化は,外から加えた力の和
m1p1 v1 a1
m2 p2 v2 a2
m3 m4
m5fi1
fi2
fe1
fe:外から加わった力(外力)fi:質点同士が押し合う力(内力)
運動方程式から
慣性の法則から
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
回転の力(トルク) (2次元)回転の力(トルク) (2次元)
回転軸(移動しない)
f1力f1 f2は棒をまわそうとする.
まわす強さ:トルク
r1r2
f2
f1r1f1のトルク:
fOp
fr
fr = fのうち,質点をOを中心に回そうとする力(残りは回転軸が力を出して打ち消す)
fのモーメント:|p||fr | = |pr||f | =p×f
f2のトルク:
Oex
ex
ey
p×f= × =pxfy-pyfxpxpy
fxfy
pr
f2r2
外積については布川昊, “2次元ベクトルの外積の効用(線形代数学の教科内容の改善に向けて) ”http://www.dt.takuma-ct.ac.jp/~sawada/math/danwa5html/node14.html を参照
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
剛体にかかる回転の力(2次元)剛体にかかる回転の力(2次元)
���
���∆×+×=∆+×
∆×+×=∆+×∆+×=∆+×
∆+=∆+
ttmttm
ttmtmttmttttt
ttttt
iiiiiiii
iiiiiiiii
iiiii
iii
efpvpvp
apvpvpavpvp
avv
)()(
)()()())()(()(
)()()(
��
���×=×
×=×+××=+×
=+
iiiii
iiiiiii
iiiiii
iiii
m
mm
m
apfp
apfpfpapffp
aff
e
ei
ei
ei
)(
運動方程式から
2222
1111
||||||||
iir
iri
fpfpfpfp
×−=−==×
fi1
fi2 Op2
p1
p2r
p1r
内力のモーメントは打ち消しあう
0
慣性の法則から
位置×(質量・速度) (角運動量)の変化は,外から加えた位置×力(トルク)の和
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
剛体の速度剛体の速度
�速度
速度も並進と回転に分けられる回転の中心Oはどこでも良い
= O
viwp
vi =wp + vg
vg
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
剛体の速度(2次元)剛体の速度(2次元)
�角速度:角度の速度
vi= 90°回転(ω pi )+ vg
vivg
O
pi
剛体の点piの速度は,回転速度ωωωωと並進速度 vで表せる
θttttt ∆+=∆+ )()()( ωθθ
角速度 ωO
Pv
pv= 90°回転(ω p )
vi =wi + vgwi
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
剛体の運動の式(並進)剛体の運動の式(並進)
gi
iigi
giiii
m
mm
mm
v
pv
vpv
�
��
��
°+=
+°=
=
回転
回転
)(90
))(90(
ω
ω剛体上の点piの速度vi = 90°回転(ω pi ) + vg
) 0( るととなるように原点を取=� iim p
��� ∆+=∆+ ttmttm iiiii efvv )()(
M
� ∆+=∆+ ttMttM igg efvv )()(
質量・速度 (運動量)の変化は,外から加えた力の和
剛体の運動の式(並進)
Mは剛体の質量と呼ばれます
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
剛体の運動の式(回転) (2次元)剛体の運動の式(回転) (2次元)
ω
ω
ω
)||(
)(90)(
))(90(
2�
��
��
=
°×+×=
+°×=×
ii
iiigii
giiiiii
m
mm
mm
p
ppvp
vppvp
回転
回転剛体上の点piの速度vi = 90°回転(ω pi ) + vg
) 0( るととなるように原点を取=� iim p
I
� ∆×+=∆+ ttIttI ii efpωω )()(剛体の運動の式(回転)
位置×(質量・速度) (角運動量)の変化は,外から加えた位置×力(トルク)の和
��� ∆×+×=∆+× ttmttm iiiiiiii efpvpvp )()(
Iは慣性モーメントと呼ばれます
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
剛体の運動の式(2次元)剛体の運動の式(2次元)
並進と回転をまとめると
� ∆×+=∆+ ttIttI ii efpωω )()(� ∆+=∆+ ttMttM igg efvv )()(
ttttt ggg ∆+=∆+ )()()( vxxttttt ggg ∆+=∆+ )()()( ωθθ
速度と位置の関係
これで,シミュレーションできる
�
�
�
×=
×=∆
−∆+
∆×+=∆+
ii
ii
ii
dttdI
ttIttI
ttIttI
e
e
e
fpω
fpωωfpωω
)(
)()(
)()(
�
�
�
=
=∆
−∆+
∆+=∆+
ig
igg
igg
dttdt
M
tttt
M
ttMttM
e
e
e
fv
fvv
fvv
)(
)()(
)()(
剛体の運動方程式
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
3次元の剛体3次元の剛体
�2次元では,回転軸は面に垂直�だから,角速度・トルクは1次元
�3次元では?�回転軸は3次元ベクトル
�角速度も3次元ベクトル� ωωωωの向き:回転軸の向き. |ωωωω|:回転速度
� v= ωωωω×p�トルクも3次元ベクトル
�ΝΝΝΝ =p×f
ωωωω
pv
ΝΝΝΝ
pf
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
3次元の外積3次元の外積
� 3次元版 a×bとは?|a×b|=|a||b’| = |a’||b| 2次元のときと同じ
a×bの向きは
aがx軸,b’がy軸のときのz軸の向き ab
b’
a×b
a’
���
�
�
���
�
�
���
�
�
���
�
�
−−
−=
���
�
�
���
�
�
−−−
=���
�
�
���
�
�
���
�
�
���
�
�
=×
z
y
x
xy
xz
yz
yxyx
xzxz
zyzy
z
y
x
z
y
x
bbb
aaaa
aa
abbaabbaabba
bbb
aaa
00
0ba
abba ×−=×
数値で書くとこうなります.
外積の計算については 布川昊, “2次元ベクトルの外積の効用(線形代数学の教科内容の改善に向けて) ”http://www.dt.takuma-ct.ac.jp/~sawada/math/danwa5html/node14.html を参照
線形代数の本が外積について触れないのは,4次元以降が大変だからほんとに知りたければ http://members.jcom.home.ne.jp/1228180001/ をどうぞ.
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
3次元の慣性モーメント3次元の慣性モーメント
剛体上の点piの速度vi = ωωωω×pi + vg
�
��
��
××=
××+×=
+××=×
)(
)()(
)(
iii
iiigii
giiiiii
m
mm
mm
pωp
pωpvp
vpωpvp
ωωωωpi
ωωωω×piωωωω
pi
ωωωω×pi
pi×(ωωωω×pi )
Iωω
ω
=����
�
�
����
�
�
+−−−+−−−+
=
���
�
�
���
�
�
−−
−
���
�
�
���
�
�
−−
−−=
�
�
22
22
22
00
0
00
0
yxyzxz
zyxzxy
zxyxzy
i
xy
xz
yz
xy
xz
yz
i
pppppppppppppppppp
m
pppp
pp
pppp
ppm
I:慣性モーメント
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
3次元の剛体の運動3次元の剛体の運動
位置×(質量・速度) (角運動量)の変化は,外から加えた位置×力(トルク)の和
��� ∆×+×=∆+× ttmttm iiiiiiii efpvpvp )()(
��� ∆+=∆+ ttmttm iiiii efvv )()(質量・速度 (運動量)の変化は,外から加えた力の和
� ∆+=∆+ ttMttM igg efvv )()(
� ∆×+=∆+∆+ ttttttt ii efpωIωI )()()()(
ttttt ggg ∆+=∆+ )()()( vxxttttt ggg ∆+=∆+ )()()( ωθθ
速度と位置の関係
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
3次元の向きと角度3次元の向きと角度
�3次元での向きの表し方
�回転ベクトルθθθθ�|θθθθ|:回転角, θθθθの向き:回転軸
�足せない.(π/2,0,0)のあと (0,π/2,0)(π/2, π/2,0)
�基底(ex ey ez)�元の座標系で,その向きの基底を数値にしたもの
�変換の変換と考えれば足せる.
xz
y
yz
x
yz
x
(π/2,0,0)
(0,π/2,0)
xz
y
(π/2, π/2,0)
x
z
y
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
回転のシミュレーション回転のシミュレーション
�剛体の向きを表す基底(ex ey ez)を並べた行列Rを考える.
wz
wx
wy
ez
ex
eyωωωω
∆θθθθ====ωωωω∆t だけ回転する. ∆θθθθ回転する行列D(dx dy dz)を用意する
R
D
wz
wx
wy
ez
ex
ey
∆θθθθR
Rの数値の基底をDだと考えるとRはDだけ回ることになる.
R(t+∆t)= DR(t)
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
慣性モーメントの変換慣性モーメントの変換
� Iは
なので,物体が回ると変化する.
�そこで,物体の基底Rでの慣性モーメントIRを考える.
� ∆×+=∆+∆+ ttttttt ii efpωIωI )()()()(
����
�
�
����
�
�
+−−−+−−−+
�22
22
22
yxyzxz
zyxzxy
zxyxzy
i
pppppppppppppppppp
m
回転の運動
�
�
�
∆×+=∆+
∆×+=∆+
∆×+=∆+
−−
−−−
tttt
tttt
tttt
iiRR
iiRR
RiRiRRRR
e
e
e
fpωRRIωRRI
fpRωRIωRI
fpωIωI
)()(
)()()(
)()(
11
111
I1−= RRII R
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
3次元剛体運動のシミュレーション3次元剛体運動のシミュレーション
ttttt ggg ∆+=∆+ )()()( vxx
∆θθθθ====ωωωω∆t だけ回転する. ∆θθθθ回転する行列D(dx dy dz)を用意する
� ∆+=∆+ ttMttM igg efvv )()(
� ∆×+=∆+∆+ ttttttt ii efpωIωI )()()()(
)( ttg ∆+v を求める
)()( tttt ∆+∆+ ωI を求める
1)()()( −≈∆+ tttt RRIRI から, )( tt ∆+ω を求める
R(t+∆t)= DR(t)
)( ttg ∆+x を求める
並進
回転
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
3次元剛体シミュレーションの例3次元剛体シミュレーションの例
ソースコード http://springhead.info/
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
バネダンパと制御バネダンパと制御
O x
)()( tkts xf −=fs(t)
バネの法則
tmtbtkttt ∆+−=∆+ )/)()(()()( vxvvttttt ∆+=∆+ )()()( vxx
初の状態: 1)0(,0)0( == xv
)()( tbtd vf −=
fd(t)
ダンパーの法則
いろいろbk,
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
�シミュレーション結果 ∆t=0.1
いろいろなk,bでのシミュレーションいろいろなk,bでのシミュレーション
k=1,b=1 k=1,b=0.1-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
0 5 10 15 20
速度v
位置x
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
0 5 10 15 20
速度v
位置x
k=2,b=0.1 k=4,b=0.2
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
0 5 10 15 20
速度v
位置x
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
0 5 10 15 20
速度v
位置x
発散してしまう
安定する
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
安定する条件安定する条件
�式を行列で書くtmtbvtkxtvttv ∆+−=∆+ )/)()(()()(
ttvtxttx ∆+=∆+ )()()(
���
����
����
����
�
∆∆−∆−
=���
����
�
∆+∆+
)()(
1//1
)()(
txtv
tmtkmtb
ttxttv
)( tt ∆+x )(txA
���
����
����
����
�
∆∆−∆−
=
=
∆−=∆−=∆
10
1//1
)0())2(())1(()(
n
n
tmtkmtb
tntntnxA
AAxAxx
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
安定する条件安定する条件
���
����
����
����
�
∆∆−∆−
=���
����
�
∆∆
10
1//1
)()( n
tmtkmtb
tnxtnv
An
Aという変換を次々にかけていくと,シミュレーションが進む.n→∞のとき,Anがまともな値になればよい
a1
b1
wx
wy
A=(a1,b1)Ai =(ai,bi)と書くことにする.
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
Anを考えるAnを考える
a1
b1
wx
wy
a2
b2
a1
b1
a3
b3
a2
b2
・・・
wy
a1
b1
wx
重ねて書くと
A=(a1,b1)
Ai =(ai,bi)
多分A∞は0 00 0
安定だ
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
Anを考えるAnを考える
�Aの基底ベクトルが短ければAnは0になる のかな?
a1
b1
wx
wy
a1もb1もwx wyよりは小さいが,
だんだん大きくなる.
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
Anを考えるAnを考える
a1
b1
wx
wy
���
����
�=
15.05.01
A
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
Anを考えるAnを考える
でrからArへの矢印を書いてみたa1
b1
wx
wy
���
����
�=
15.05.01
A
ためしに,
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
Anを考えるAnを考える
でrからArへの矢印を書いてみたa1
b1
wx
wy
���
����
�=
15.05.01
A
ためしに,
Ar矢印1個進むA2rで矢印2個進む∴ Anrは矢印の行き着く先
r
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
Anを考えるAnを考える
でrからArへの矢印を書いてみたa1
b1
wx
wy
���
����
�=
15.05.01
A
ためしに,
Ar矢印1個進むA2rで矢印2個進む∴ Anrは矢印の行き着く先
向きが変わらない場所がある固有固有固有固有ベクトルベクトルベクトルベクトルと呼ぶ
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
Anを考えるAnを考える
a1
b1
wx
wy
初から,固有固有固有固有ベクトルベクトルベクトルベクトルが基底だと思ってみる
px
py
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
Anを考えるAnを考える
a1
b1
wx
wy
初から,固有固有固有固有ベクトルベクトルベクトルベクトルが基底だと思ってみる
実はただの拡大縮小
px
py 拡大率:1.5倍, 0.5倍
拡大率を固有値と呼ぶ
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
Anを考えるAnを考える
���
����
�=
15.05.01
A 固有ベクトルは ���
����
�−=��
�
����
�=
11
11
yppx と
���
����
�=��
�
����
� −���
����
�
−=
���
����
� −���
����
����
����
�
−=
���
����
� −���
����
����
����
� −=
−−
5.0005.1
1111
25.025.075.075.0
1111
15.05.01
5.05.05.05.0
1111
15.05.01
1111 1
1APP
���
����
� −=
1111
P
r1は(wx wy )を基底に数値にしてた.
r’1 ::::(px py )を基底にr1を数値にしたもの.
r2=Ar1Pr’2 =APr’1r’2 =P-1APr’1
r2=Ar1
r1 =Pr’1 r2=Pr’2
r’2 = r’11.5 00 0.5
r’n = r’11.5 00 0.5
n
r’n = r’11.5n 00 0.5n
rn =Pr’n =P r’1
=P P-1 r1
1.5n 00 0.5n
1.5n 00 0.5n
固有値(拡大率)が全部1未満なら安定
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
固有値を見つけるには固有値を見つけるには
� Ap=λpとなるようなλを見つければよい.Ap=λp(A-λE)p=0A-λE=0 ということは,
A-λEがぺちゃんこ変換⇔基底が行列の次元より少ない
ex
eyこんなのではなく, こんなの
ぺちゃんこ⇔面積0,これで書いたら計算できるかも
面積1.5くらい 面積0面積1 面積1
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
行列式 determinant行列式 determinant� 基底ベクトルが作る平行四辺形の面積をdetAと書いて,行列式とか
determinantと呼ぶ� 2次元の場合なら平行四辺形の面積・3次元なら平行6面体の体積
4次元なら平行8面体の体積...
� ただし,detAは負にもなります
ex
ey
det(ex ey ) =ex×ey det(ex ey ez)=(ex×ey )・ezex
eyez
ex
ey
det(ex ey )は負
exey
det(ex ey )は正
exey
det(ex ey )は負
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
行列式の計算行列式の計算
� 4次元以上の場合は,
� 4次元の場合の計算例
12)2(132
2000
2100
1130
2312
det
2100
3
4300
2100
1130
2312
det
4300
2100
1130
2312
det
1130
1
5430
1130
2
4360
1130
2312
det
5430
4360
1130
2312
det
2312
2
91054
2312
1
6672
2312
3
71066
2312
det
91054
6672
71066
2312
det)det( 4321
−=−⋅⋅⋅=
�����
�
�
�����
�
�
−
=
�����
�
�
�����
�
�
�����
�
�
�����
�
�
−
�����
�
�
�����
�
�
�����
�
�
�����
�
�
=
�����
�
�
�����
�
�
=
�����
�
�
�����
�
�
�����
�
�
�����
�
�
−
�����
�
�
�����
�
�
�����
�
�
�����
�
�
−
�����
�
�
�����
�
�
�����
�
�
�����
�
�
=
�����
�
�
�����
�
�
=
�����
�
�
�����
�
�
�����
�
�
�����
�
�
−
�����
�
�
�����
�
�
�����
�
�
�����
�
�
−
�����
�
�
�����
�
�
�����
�
�
�����
�
�
−
�����
�
�
�����
�
�
�����
�
�
�����
�
�
=
�����
�
�
�����
�
�
=eeee
のように変形し det(e1 e2) = e1x ・ e1yと計算できる
e2
e1e’2
e1
e2
e1
ke1
e’2
wx
wy
75.1875.00
5.02
det
5.02
25.015.0
5.02
det
15.0
5.02
det)det( 21
=���
����
�=
���
����
����
����
�−��
�
����
����
����
�=
���
����
�=ee
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
固有値を見つけるには固有値を見つけるには
�Ap=λpとなるようなλを見つければよい.Ap=λp ⇒⇒⇒⇒ (A-λE)p=0 ⇒⇒⇒⇒ A-λE=0 ⇒⇒⇒⇒det(A-λE)=0
���
����
�=
15.05.01
Aのとき,
5.0,5.10)5.0)(5.1(75.025.0)1(
15.0
5.01
15.05.01
det
)0
015.05.01
det()det(
222
=∴=−−=+−=−−=
���
����
�
−×��
�
����
� −=��
�
����
�
−−
=
���
����
�−��
�
����
�=−
λλλλλλ
λλ
λλ
λλ
λEA
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
安定する条件安定する条件
���
����
����
����
�
∆∆−∆−
=
=∆
10
1//1
)0()(n
n
tmtkmtb
tn xAx
2
~4~~22
)~~1(4)~2(~2
)~,~(~~1)~2(
/1)/2())(/()1)(/1(
1//1
det)1001
1//1
det(
22
22
2
kbbkbbb
mtkk
mtbbkbb
mtbmtbtmtkmtb
tmtkmtb
tmtkmtb
−±−=+−−−±−
=
∆=∆=+−+−−=
+∆−+∆−−=∆∆−−−−∆−=
���
����
�
−∆∆−−∆−
=���
����
�−��
�
����
�
∆∆−∆−
λ
λλ
λλλλ
λλ
λ
とおいた
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
安定する条件安定する条件
0~1
2
~4~~2||
020~4~
~~1~~1
2
~~4)~2(||
~~4~4~ 0~4~
1||,2
~4~~2
2
2
22
22
2
2
>
<−+−=
>−>−
<
<+−=−+−
=
−=−
<−
<−±−=
k
kbb
bkb
kb
kbbkb
bkikb
kb
kbb
λ
λ
λλ
のときかつ
のとき
2
~2~
12
~4~2~||
020~4~
2
2
kb
kbb
bkb
+<
<−+−=
<−>−
λ
のときかつ
b~
k~
2
4
4
2
~2~ kb +=kb ~~ =
2~~4 bk =
i)
ii)
iii)
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
試してみると試してみると
b~
k~
2
4
4
-50
-40
-30
-20
-10
0
10
20
30
40
50
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
速度v
位置x
mtkk
mtbb
2~,~ ∆=∆=-50-40-30-20-100
1020304050
0 0.5 1 1.5 2
速度v
位置x
-50-40-30-20-100
1020304050
0 0.5 1 1.5 2
速度v
位置x
-50-40-30-20-100
1020304050
0 0.5 1 1.5 2
速度v
位置x
-50-40-30-20-100
1020304050
0 0.5 1 1.5 2
速度v
位置x
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
まとめまとめ
�位置の数値化
�座標系の変換と行列�逆変換
�回転変換
�行列のランク
�物理法則と差分方程式�運動方程式(質点・剛体)
�安定性と行列のn乗
ポヒマスセンサ
CGロボットアーム
シミュレーション
制御
をざっと見てきました.バス旅行で車窓から眺めたようなものです.
ぜひ,自分の足で歩いてみてください.
The Virtual Reality Society of JapanThe Virtual Reality Society of Japan
明後日から明後日から
�自分の問題を解くには…�実際の問題と教科書と紙と鉛筆を用意して考えてみてください.
→自分の足で歩く
�答えに自信がないときは,Excelか適当なプログラミング言語で確認してみてください.
�お勧めの教科書�線形代数:
平岡 和幸, 堀玄(著) 「プログラミングのための線形代数」
�微分積分:二見靖彦(著) 「理工系のための初等解析学とその応用」
�力学:
小出昭一郎(著) 「力学」物理テキストシリーズ
� 3DCGと物理シミュレーションに必要なトピック:
Eric Lengyel (著), 狩野智英 (訳)「ゲームプログラミングのための3Dグラフィックス数学」