MugichokoさんのRGB-D SLAM実装、Intel Euclidで動くかな?(その2)Jetson TX2で実行
残念ながら力及ばすで、Intel Euclidでは上手く動かす方法が見つかりませんでした。環境を変えて、Jetson TX2を使って同じ手順で実行してみます。
ジオメトリシェーダSurfaceSplatting.geomのファイル名の指定が、小文字になってしまっていますのでLinuxでは上手くファイルを読み込めません。頭文字を大文字に修正します。
SLAM/SLAM.cpp
//progs.insert(std::make_pair("SurfaceSplatting", std::make_shared<gl::Shader>(folderPath + "SurfaceSplatting.vert", folderPath + "SurfaceSplatting.frag", folderPath + "surfaceSplatting.geom"))); progs.insert(std::make_pair("SurfaceSplatting", std::make_shared<gl::Shader>(folderPath + "SurfaceSplatting.vert", folderPath + "SurfaceSplatting.frag", folderPath + "SurfaceSplatting.geom")));
サンプルデータはTUMからダウンロードしてきて適当な場所に展開します。fr1/deskを試してみました。
https://vision.in.tum.de/data/datasets/rgbd-dataset/download
data下の設定ファイルに絶対パスでデータの場所を指定します。
./a.out
で動かしてみると、
おお、結構速く動きます!
ということで、一応動かすことが出来ました。でも、あれ、結果が出てない・・・
ICPの結果も単位行列のままなので、GLSLの処理でどこか結果が0になってるのかな。法線はときどき赤く光る部分があるな・・・桁落ちかな。
ということで、時間がかかりそうなので、また今度に続く。
Windows(Visual Studio 2015)でも動かしてみました。
結果の法線にちらちら丸が描かれることがありますが、どうも挙動がおかしいですね。なんだろう?丸の移動が周期的に回転しているように見えるので、メモリのアライメントがおかしいのかな。どの環境でも、ちょっと簡単には動きそうもないから、しばらくペンディングの方針で。
2018/03/28 追記
参考になるかどうかわかりませんが、Windows 10, Visual Studio 2015, GeForce GTX760で動かしたときの、プロジェクトの追加設定項目です。
Additional include path
E:\workspace\Cross-Platform-RGB-D-SLAM\rgbd\rgbd;
E:\workspace\glm-0.9.8.5;
E:\workspace\glew-2.1.0\include;
E:\opencv330\build\include
Additional library path
E:\opencv330\build\x64\vc14\lib;
E:\workspace\glew-2.1.0\lib\Release\x64
Additional libraries
glew32.lib;
opengl32.lib;
opencv_world330.lib;