- 追加された行はこの色です。
- 削除された行はこの色です。
#topicpath
** 速度ベクトル・加速度ベクトル・角速度ベクトルの表示 [#d05868e6]
運動の様子を観察するだけでなく、それを速度ベクトルや加速度ベクトルと関連付けることが~
できれば、運動の科学についての理解が深まると考えられる。~
以前作成した[[惑星の上での物体の落下>../AR_Planet01]]では、3次元的な座標を計算して、現実の映像に~
写し込んだ。今回は、マーカーの空間座標を読み取って、運動の情報に変換する。~
~
*** ARと座標 [#rcc85507]
- 用語の整理~
&color(red){素人がインターネット上の情報を集めて、解釈して書いているだけなので、誤りもあると思います!};
-- 参考資料
--- [[Googleで検索>https://www.google.co.jp/search?q=%22%E3%82%AB%E3%83%A1%E3%83%A9%E5%BA%A7%E6%A8%99%22+%22%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E5%BA%A7%E6%A8%99%22]]
--- 九州工業大学 尾下先生 [[講義資料>http://www.cg.ces.kyutech.ac.jp/lecture/cg/cg07_transformation.pdf]]
--- 俺 CG 屋 [[ARToolKit入門【処理の流れと座標変換行列】>http://www.cg-ya.net/imedia/ar/intro-artoolkit/]]~
マーカー→ビュー変換行列が、マーカーの3次元座標や向きを得るときに重要であることがわかる。~
~
-- 座標系一覧
--- モデル座標系~
画面に配置された3Dモデルがあったとして、そのそれぞれは、座標に基づいて作図されているはずである。それぞれの~
モデルを記述するための座標系。~
~
--- ワールド座標系~
物理的な実体に対応した直交直線座標系。原点は任意の点でよい。~
~
--- カメラ座標系(ビュー座標系)~
カメラを原点とした物理的な実体を記述できる座標系。ワールド座標系の特殊なものと考えて良く、直交直線座標である。~
通常、z 軸をカメラからの深度にするけれども、原点を画面の中央、x軸を横方向、y軸を縦方向にとって右手系を採用すると、~
自然と z 座標は常に負になる。~
~
--- スクリーン座標系~
表示される画面に対応した座標系。ただし、奥行き情報も持っている。重なりがあった時の処理などのために必要。~
直交直線座標ではない。~
~
~
- Processing でカメラ座標系の座標を得る方法
-- 参照URL
-- 参照URL(近日中に整理する!)
--- AR.Dron を楽しむ会 [[ARToolKitの姿勢行列を取り出す>http://www.ailab.t.u-tokyo.ac.jp/~aoki/ardrone/index.php?ARToolKit%A4%CE%BB%D1%C0%AA%B9%D4%CE%F3%A4%F2%BC%E8%A4%EA%BD%D0%A4%B9#sa5301be]]
--- 工学ナビ [[「攻殻機動隊」「電脳コイル」の世界を実現! - ARToolKitを使った拡張現実感プログラミング ->http://kougaku-navi.net/articles/index.html]]
--- gutugutu3030 さん [[カメラ座標系とスクリーン座標系の関係>https://sites.google.com/site/gutugutu30/3d/kamerazuobiaoxisukurinzuobiaoxiguanxiprocessing]]
--- gutugutu3030 さん [[マーカーのスクリーン座標系における3次元座標を得る>https://sites.google.com/site/gutugutu30/ar/makasukurinzuobiaoxi3ciyuanzuobiaoprocessing]]
--- Writing Cafe [[diary/2011-12-2>http://cafe.eyln.com/cgi-bin/wiki/wiki.cgi?page=Diary%2F2011-12-2]]
--- OpenGL の変換行列(多分アフィン変換のことを言っている)とオイラー角と角速度ベクトルと。~
・[[剛体のオイラー角でのハミルトニアン>http://hooktail.sub.jp/mechanics/rigidEuler/]]~
・[[回転行列からオイラー角>http://d.hatena.ne.jp/It_lives_vainly/20070829/1188384519]]~
--- 俺 CG 屋 [[ARToolKit基本プログラム>http://www.cg-ya.net/imedia/ar/artoolkit_base_program/]]・[[ARToolKit入門【処理の流れと座標変換行列】>http://www.cg-ya.net/imedia/ar/intro-artoolkit/]] :わかりやすい。
-- まとめ~
[[getMarkerMatrix>https://www.google.co.jp/search?q=getMarkerMatrix]] を取得できればよい。アフィン変換の行列なので、第四列が平行移動に~
対応し、カメラ座標系(ビュー座標)系でのマーカー中心の位置を表している。z軸周りの回転については……
*** 試作プログラムのデモ [#y28ee0ec]
- 作成過程~
ゼミ生がゼミ活動の一環で作成した。~
後日、森が手を加えた。~
~
- デモの動画
-- 回転運動
#style(class=table_left)
| 回転運動(半径大)| 回転運動(半径小)|h
|#youtube_res(JU6CndUsoJI)|#youtube_res(rw11AQFOtE8)|
#clear
-- 単振動
#style(class=table_left)
| 単振動|h
|#youtube_res(50Fv6uQm2tQ)|
#clear
- コメント~
-- キーボードイベントの追加~
キーボードである程度コントロールできるようにした。~
~
-- アルゴリズム変更~
--- 概要~
加速度ベクトルはガタガタしてしまいがちであることがわかった。そこで、~
近接した10回分の時刻・座標データから、速度と加速度を最小二乗法で決定~
するようにアルゴリズムを変更した。~
~
--- メリット~
ガタガタは大幅に緩和され、加速度も滑らかな表示になった。~
~
--- デメリット~
過去のデータを用いて計算しているので、過去のベクトルを表示している~
ことになっている。そのため、理論的に考えられるような結果とはズレて~
表示されている。~
~