94
The Virtual Reality Society of Japan The Virtual Reality Society of Japan インタラクティブ技術に必要な 数学と物理 インタラクティブ技術に必要な 数学と物理 東京工業大学 長谷川晶一 東京工業大学 長谷川晶一

The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

The Virtual Reality Society of JapanThe Virtual Reality Society of Japan

インタラクティブ技術に必要な数学と物理

インタラクティブ技術に必要な数学と物理

東京工業大学

長谷川晶一

東京工業大学

長谷川晶一

Page 2: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

The Virtual Reality Society of JapanThe Virtual Reality Society of Japan

自己紹介自己紹介

�長谷川晶一�VRをはじめて11年.学部2年からVRコンテストに参加

�コンテストで忙しくて授業に出ない日々

�教養の数学・物理は,ぎりぎりで単位取得

�VRコンテスト→東工大佐藤・小池研(力覚インタフェースSPIDARの研究室)

� 近は動力学シミュレーションも研究

Page 3: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

The Virtual Reality Society of JapanThe Virtual Reality Society of Japan

VRシステムの中の数学と物理VRシステムの中の数学と物理

�VRシステム

提示装置

大画面HMD

計測装置

ポヒマス加速度センサ

コンピュータ

3DCGレンダリング

シミュレーション

数学数学数学数学

物理物理物理物理

数学数学数学数学

物理物理物理物理数学数学数学数学

物理物理物理物理

Page 4: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

The Virtual Reality Society of JapanThe Virtual Reality Society of Japan

今日の目標今日の目標

�数学がVR役立つということを納得してもらいたい.

�VRシステムを作るために必要な 小限の数学と

物理の話をする.

�あとで,自分の問題を解くために,教科書のどこを見ればよいか分かるように.

�今日の話は(あたりまえですが)不完全です.それに

気づいてほしいです.いつかその日が来るように.

Page 5: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

The Virtual Reality Society of JapanThe Virtual Reality Society of Japan

話の進行話の進行

�位置の数値化

�座標系の変換と行列

�逆変換

�回転変換

�行列のランク

�積分・微分とシミュレーション

�物理シミュレーション

�運動方程式(質点・剛体)

�安定性と行列のn乗

位置・角度センサ

3DCGロボット

シミュレーション

制御

線形代数

微分積分

力学

線形代数

アプリケーション 教科書トピック

Page 6: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

The Virtual Reality Society of JapanThe Virtual Reality Society of Japan

位置と数値位置と数値

�ポヒマスセンサ という位置センサ

�トランスミッタからみた,レシーバ位置を計測

トランスミッタ レシーバ

Page 7: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

The Virtual Reality Society of JapanThe Virtual Reality Society of Japan

位置と数値位置と数値

コンピュータ

数値で表さなければならない

トランスミッタ レシーバ

Page 8: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

Page 9: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

Page 10: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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 =

ベクトル

Page 11: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

The Virtual Reality Society of JapanThe Virtual Reality Society of Japan

�手の位置の計測

�トランスミッタを目の位置に置くと

�目にくっついた座標系で,手の位置が数値になる.

座標系座標系

レシーバ

Ph

トランスミッタOez

ex

ey

ph = 2ex -1ey +3ez

ph

2-13

Page 12: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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 :机から見た手の位置

Page 13: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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 )

Page 14: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

Page 15: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

Page 16: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

行列行列行列行列 行列とは基底を数値で書いて並べたもの

Page 17: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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 )=( )

Page 18: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

Page 19: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

Page 20: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

Page 21: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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と書く

Page 22: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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√ √

Page 23: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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√

Page 24: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

Page 25: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

Page 26: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

戻せる

戻せない

つぶれてしまうと元に戻せない

Page 27: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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を出したい

Page 28: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

逆変換できない場合は?

Page 29: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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つしかない.

Page 30: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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つ ….基底がないと,つぶれてしまい,逆変換できません

Page 31: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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も出せる.

逆行列はない.答えが無数にある.

冗長マニピュレータ

Page 32: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

The Virtual Reality Society of JapanThe Virtual Reality Society of Japan

シミュレーションシミュレーション

�シミュレーション�現実のものの動きを計算機の中に再現すること

� そのために,現実世界の法則を見つけ,それを再現する.

�例:車の動きのシミュレーション� 「アクセルを踏むと加速する」→法則

時間t

アクセル:原因 速度:結果シミュレーションシミュレーションシミュレーションシミュレーション

アクセルの踏み具合?速度

時刻t=0で,0m/sだった

Page 33: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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今のアクセル

Page 34: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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)がある.

Page 35: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

これをプログラムでやるのが,コンピュータシミュレーション

法則

初の状態

その後の経過

分かっていること

Page 36: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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に近づける

積分

Page 37: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

The Virtual Reality Society of JapanThe Virtual Reality Society of Japan

シミュレーションと積分シミュレーションと積分

�シミュレーションでは∆tずつ時間を進めてほしい時刻まで繰り返し計算する.

�積分はその結果のこと

ttatvttv ∆+=∆+ )()()(

�∆

=

∆∆+=tt

ittiavtv

/

0)()0()(

誤差をなくすため∆tを0に近づける

τττ

davt

)()0(0� =

+=

Page 38: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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)がわかっているので,

ちょっと後の値と今の値を引き算すれば出てくる.

Page 39: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

The Virtual Reality Society of JapanThe Virtual Reality Society of Japan

シミュレーションと微分シミュレーションと微分

ttvttvta

∆−∆+= )()()(

誤差をなくすため,∆tを0に近づける

dttdv )(=

vをtで微分する.vのt微分

dttdvta )()( = 微分が入った方程式

→微分方程式と呼ぶ

dttdv )(

微分

Page 40: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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 ∆+=∆+ )()()(位置と速度の関係も同じ

Page 41: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

The Virtual Reality Society of JapanThe Virtual Reality Society of Japan

位置・速度・加速度位置・速度・加速度

2 3

1

0)0()()()(

=∆+=∆+

xttvtxttx

速度のときと同じように,位置を計算できる.

a(t)

v(t)

x(t)

Page 42: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

The Virtual Reality Society of JapanThe Virtual Reality Society of Japan

物理と微分積分物理と微分積分

�物理学�現実世界の性質(法則)を調べる学問

�現実世界の法則�微分方程式で表される場合が多い

�法則の例�運動方程式

�波

�コイルの電圧

dttdvmtf )()( =

2

22

2

2 ),(),(dt

txdhcdx

txhd = h(x,t):波の高さc:波の伝わる早さ

dttdiLtV )()( =

微分方程式は簡単な式なのに,たくさんのことを表している.

Page 43: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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 )()( = ⇔

Page 44: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

Page 45: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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も求めれば計算できる.

( 初の状態)

Page 46: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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のせい?

Page 47: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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は小さい方が良い.

でも無限に小さくすると無限に計算時間がかかる.

Page 48: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

Page 49: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

ダンパを入れると振幅がだんだん小さくなる.

Page 50: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

Page 51: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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θ

Page 52: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

Page 53: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

壁壁壁壁にぶつかっているにぶつかっているにぶつかっているにぶつかっている場合場合場合場合::::

ほかの壁も同様

Page 54: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

The Virtual Reality Society of JapanThe Virtual Reality Society of Japan

物理シミュレーション3 (2次元)物理シミュレーション3 (2次元)

�シミュレーション結果

ソースコード http://springhead.info/~hase/soft/sim2d.tar.gz

Page 55: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

The Virtual Reality Society of JapanThe Virtual Reality Society of Japan

剛体の運動剛体の運動

�剛体� さっきの例のように,質点同士が動かないように固定されているもの

�バネダンパでもシミュレーションできるが,剛体は剛体としてシミュレーションした方が効率が良い

�剛体の特徴

=

どんな移動も 並進(平行移動)と回転 で表せる

並進と回転だけで運動を表そう

Page 56: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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:質点同士が押し合う力(内力)

運動方程式から

慣性の法則から

Page 57: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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 を参照

Page 58: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

慣性の法則から

位置×(質量・速度) (角運動量)の変化は,外から加えた位置×力(トルク)の和

Page 59: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

The Virtual Reality Society of JapanThe Virtual Reality Society of Japan

剛体の速度剛体の速度

�速度

速度も並進と回転に分けられる回転の中心Oはどこでも良い

= O

viwp

vi =wp + vg

vg

Page 60: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

Page 61: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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は剛体の質量と呼ばれます

Page 62: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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は慣性モーメントと呼ばれます

Page 63: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

)(

)()(

)()(

剛体の運動方程式

Page 64: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

Page 65: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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/ をどうぞ.

Page 66: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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:慣性モーメント

Page 67: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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 ∆+=∆+ )()()( ωθθ

速度と位置の関係

Page 68: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

Page 69: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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)

Page 70: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

Page 71: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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 を求める

並進

回転

Page 72: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

The Virtual Reality Society of JapanThe Virtual Reality Society of Japan

3次元剛体シミュレーションの例3次元剛体シミュレーションの例

ソースコード http://springhead.info/

Page 73: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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,

Page 74: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

発散してしまう

安定する

Page 75: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

Page 76: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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)と書くことにする.

Page 77: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

安定だ

Page 78: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

The Virtual Reality Society of JapanThe Virtual Reality Society of Japan

Anを考えるAnを考える

�Aの基底ベクトルが短ければAnは0になる のかな?

a1

b1

wx

wy

a1もb1もwx wyよりは小さいが,

だんだん大きくなる.

Page 79: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

The Virtual Reality Society of JapanThe Virtual Reality Society of Japan

Anを考えるAnを考える

a1

b1

wx

wy

���

����

�=

15.05.01

A

Page 80: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

The Virtual Reality Society of JapanThe Virtual Reality Society of Japan

Anを考えるAnを考える

でrからArへの矢印を書いてみたa1

b1

wx

wy

���

����

�=

15.05.01

A

ためしに,

Page 81: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

Page 82: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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は矢印の行き着く先

向きが変わらない場所がある固有固有固有固有ベクトルベクトルベクトルベクトルと呼ぶ

Page 83: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

The Virtual Reality Society of JapanThe Virtual Reality Society of Japan

Anを考えるAnを考える

a1

b1

wx

wy

初から,固有固有固有固有ベクトルベクトルベクトルベクトルが基底だと思ってみる

px

py

Page 84: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

The Virtual Reality Society of JapanThe Virtual Reality Society of Japan

Anを考えるAnを考える

a1

b1

wx

wy

初から,固有固有固有固有ベクトルベクトルベクトルベクトルが基底だと思ってみる

実はただの拡大縮小

px

py 拡大率:1.5倍, 0.5倍

拡大率を固有値と呼ぶ

Page 85: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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未満なら安定

Page 86: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

Page 87: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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 )は負

Page 88: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

Page 89: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

Page 90: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

−±−=+−−−±−

=

∆=∆=+−+−−=

+∆−+∆−−=∆∆−−−−∆−=

���

����

−∆∆−−∆−

=���

����

�−��

����

∆∆−∆−

λ

λλ

λλλλ

λλ

λ

とおいた

Page 91: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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)

Page 92: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

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

Page 93: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

The Virtual Reality Society of JapanThe Virtual Reality Society of Japan

まとめまとめ

�位置の数値化

�座標系の変換と行列�逆変換

�回転変換

�行列のランク

�物理法則と差分方程式�運動方程式(質点・剛体)

�安定性と行列のn乗

ポヒマスセンサ

CGロボットアーム

シミュレーション

制御

をざっと見てきました.バス旅行で車窓から眺めたようなものです.

ぜひ,自分の足で歩いてみてください.

Page 94: The Virtual Reality Society of Japan - Springheadspringhead.info/files/pubs/delete/00040_ppt_VRSJ_MP.pdfThe Virtual Reality Society of Japan 自己紹介 長谷川晶一 VR をはじめて

The Virtual Reality Society of JapanThe Virtual Reality Society of Japan

明後日から明後日から

�自分の問題を解くには…�実際の問題と教科書と紙と鉛筆を用意して考えてみてください.

→自分の足で歩く

�答えに自信がないときは,Excelか適当なプログラミング言語で確認してみてください.

�お勧めの教科書�線形代数:

平岡 和幸, 堀玄(著) 「プログラミングのための線形代数」

�微分積分:二見靖彦(著) 「理工系のための初等解析学とその応用」

�力学:

小出昭一郎(著) 「力学」物理テキストシリーズ

� 3DCGと物理シミュレーションに必要なトピック:

Eric Lengyel (著), 狩野智英 (訳)「ゲームプログラミングのための3Dグラフィックス数学」