0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Unity+OBR SLAM3でシミュレーション環境での自己位置推定してみた

Posted at

Unityでシミュレーション環境を作って、OBR SLAM3で自己位置推定してみた。環境はWindows上でUnityを動かし、WSL上でOBR SLAM3を動かしている。

動作としては以下のような感じ。動いてはいるものの、マップ生成は全くうまくいっていない。。どなたか原因に心あたりや、こうしたらうまくいったなどあれば教えていただけると幸いです。ひとまず環境構築方法を記載しておきます。

前準備

以下に作った改造用コードが置いてあるのでダウンロードしておく。

OBR SLAM3側

以下のページを参考に、WSLにOBR SLAM3をインストールする。

build.sh実行前に、改造用コードに以下のコードが入っているので差し替えておく。

  • mono_inertial_euroc.cc

Unity側

今回は町として以下のパッケージを使うのでインポートしておく。特に制限はないので、使いたい街を使ってもOK。

  1. File -> Open Sceneから以下のファイルを開く。

    • Assets/CityVoxelPack/DemoScenes/Demo.unity
  2. CubeObjectを作成して、CubeMove.csをアタッチする。

  3. CubeObjectにカメラを追加し、カメラにcamera_udp.csをアタッチし、ip_addをWSLのIPアドレス(172.21.*.*となっているもの)に変更する。(アップデートでlocalhostでも通信できるようになったらしいので不要かも。)

  4. オブジェクトの向き、位置、方向を調整する。

実行

  1. Unity側で再生を押す。

  2. OBR SLAM3側で以下のコマンドを実行する。

    $ ./Examples/Monocular-Inertial/mono_inertial_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular-Inertial/EuRoC.yaml ../Datasets/EuRoc/MH01 ./Examples/Monocular/EuRoC_TimeStamps/MH01.txt dataset-MH01_mono
    
  3. ウィンドウが表示された後、Unity側でCubeを動かすとFrameとMapが表示される。

うまくいっていない原因の考察

  • OBR SLAMのサンプルコードの映像入力を書き換えただけなので、ほかに変更しなきゃいけない部分がある?(カメラキャリブレーションなど)
  • 画面がきれいすぎて特徴点を抽出できない?
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?