久しぶりに他人が作った英語のリファレンスを何時間も読んだ
前回の記事です
mozyanari.hatenablog.com
ArUcoのライブラリの中に,estimatePoseSingleMarkersという関数があります
マーカーの姿勢と位置を計測できる関数で,ロボットにマーカを置いてロボットまでの相対位置を取得しようと考えています
しかし,この関数を実行するには,①InputArray cameraMatrix ②InputArray distCoeffsが必要です
docs.opencv.org
①は3×3のカメラ行列で,②は今回は1×5行列のレンズ歪みパラメータです
②はリファレンスによると1×4や1×12のものもあるらしいです
つまり,事前にこれらのパラメータを取得しないといけません
ですので,Unity上でこれらのパラメータを取得します
これらのプログラムを一から書くのはとても面倒なので今回は以下のプログラムを使いました
normanderwan.github.io
このプログラムはかなり優秀で,キャリブレーション用のボードを自作できたり,魚眼カメラ,ステレオカメラのキャリブレーションもできます
ただ,今回は普通のwebカメラのキャリブレーションを最短で行うことを目標にします
必要なもの
- Unity 2018.2.21f1 (64-bit)
- ArucoUnity(Commits on Jan 12, 2019のものを使いました)
- ArucoUnityPlugin(ArucoUnityPlugin-v2.0.1-Windows.zipを使いました)
UnityでArucoUnityを実行できる環境を作る
原文
github.com
UnityでArucoUnityを開きます
ただ,昔のバージョンで作られたので
このような警告が出ますが,2018のバージョンで開いても大丈夫なのでこのままオープンします
開くとArucoUnityPluginが無いと警告されます
次に,警告されたArucoUnityPluginをUnityに入れます
ArucoUnityPluginの中のPluginsのフォルダを,UnityのAssets/ArucoUnityの中にドラッグ&ドロップで入れます
最後にこれを読み込ますためにUnityを再起動します
すると,警告がすべてなくなっていると思います
次は,キャリブレーション用マーカの作成です