#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 --- 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]]~ -- まとめ~ [[getMarkerMatrix>https://www.google.co.jp/search?q=getMarkerMatrix]] を取得できればよい。アフィン変換の行列なので、第四列が平行移動に~ 対応し、カメラ座標系(ビュー座標)系でのマーカー中心の位置を表している。z軸周りの回転については…… *** 試作プログラムのデモ [#y28ee0ec] - 作成過程~ ゼミ生がゼミ活動の一環で作成した。~ 後日、森が手を加えた。~ ~ - デモの動画 -- 回転運動 #style(class=table_left) | 回転運動(半径大)| 回転運動(半径小)|h |#u2b(JU6CndUsoJI)|#u2b(rw11AQFOtE8)| #clear -- 単振動 #style(class=table_left) | 単振動|h |#u2b(50Fv6uQm2tQ)| #clear - コメント~ -- キーボードイベントの追加~ キーボードである程度コントロールできるようにした。~ ~ -- アルゴリズム変更~ --- 概要~ 加速度ベクトルはガタガタしてしまいがちであることがわかった。そこで、~ 近接した10回分の時刻・座標データから、速度と加速度を最小二乗法で決定~ するようにアルゴリズムを変更した。~ ~ --- メリット~ ガタガタは大幅に緩和され、加速度も滑らかな表示になった。~ ~ --- デメリット~ 過去のデータを用いて計算しているので、過去のベクトルを表示している~ ことになっている。そのため、理論的に考えられるような結果とはズレて~ 表示されている。~ ~