いろんなデータセットを使ってセンサフュージョンとかしていると座標系の表記・定義の違いでイラつくことがよくある.例えばシステムには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”ボタンを押せば良い.
見た目は多少改善する余地があるが,ちょこちょこした座標変換の表現変更には役に立つと思う.
コメント