座標変換

いろんなデータセットを使ってセンサフュージョンとかしていると座標系の表記・定義の違いでイラつくことがよくある.例えばシステムにはCamera→IMU変換を[tx, ty, tz, qx, qy, qz, tw]として与えなければいけないのに,データセットに付属しているキャリブレーションデータはIMU→Camera変換な上に4×4行列になっている場合などだ.これまではこういうときは毎回pythonを立ち上げて4×4行列を入力して,逆変換して,クォータニオンにして…としていたが流石にめんどくさい.

なので3D Rotation Converterに触発されて,ブラウザ上で座標表現を変換できるスクリプトを書いてみた.

Matrix Converter

例えば,キャリブレーションデータが

  cam0:
    extrinsics:
      quaternion: [-0.5003, 0.5012, -0.5001, 0.4982]
      translation: [0.0506, 0.0458, -0.0059]

こんな感じで与えられる場合,”quaternion: [-0.5003, 0.5012, -0.5001, 0.4982]”をInputフォームに貼り付けて”Quaternion [qx qy qz qw]”ボタンを押すと行列にその回転がセットされる.同様にtranslationもセットすれば欲しい座標変換行列が得られる.更に逆変換が欲しい場合は”Inverse”ボタンを押せば良い.

見た目は多少改善する余地があるが,ちょこちょこした座標変換の表現変更には役に立つと思う.

コメント