Action disabled: diff
multicolslam
Ceci est une ancienne révision du document !
MultiCol-SLAM sur github: https://github.com/urbste/MultiCol-SLAM
Installation
mkdir ~/multicolslam cd ~/multicolslam sudo apt-get install libglew-dev cmake git clone https://github.com/stevenlovegrove/Pangolin.git cd Pangolin mkdir build cd build cmake -DCPP11_NO_BOOST=1 .. make -j
OpenCV 3.1 déjà installé ailleurs…
cd ~/multicolslam git clone https://github.com/urbste/MultiCol-SLAM.git MultiCol-SLAM cd MultiCol-SLAM chmod +x build.sh ./build.sh
- result.txt
In file included from /usr/include/c++/5/bits/stl_function.h:1128:0, from /usr/include/c++/5/string:48, from /usr/include/c++/5/random:40, from /usr/include/c++/5/bits/stl_algo.h:66, from /usr/include/c++/5/algorithm:62, from /opt/ros/kinetic/include/opencv-3.1.0-dev/opencv2/core/base.hpp:53, from /opt/ros/kinetic/include/opencv-3.1.0-dev/opencv2/core.hpp:54, from /opt/ros/kinetic/include/opencv-3.1.0-dev/opencv2/opencv.hpp:48, from /home/bvandepo/multicolslam/MultiCol-SLAM/src/cTracking.cpp:27: /usr/include/c++/5/backward/binders.h:108:11: note: declared here class binder1st ^ In file included from /home/bvandepo/multicolslam/MultiCol-SLAM/src/g2o_MultiCol_sim3_expmap.cpp:20:0: /home/bvandepo/multicolslam/MultiCol-SLAM/include/g2o_MultiCol_sim3_expmap.h:117:22: error: expected ‘)’ before ‘<’ token std::unordered_map<size_t, int>& kp_to_cam1, ^ /home/bvandepo/multicolslam/MultiCol-SLAM/include/g2o_MultiCol_sim3_expmap.h:175:8: error: ‘unordered_map’ in namespace ‘std’ does not name a template type std::unordered_map<size_t, int> keypoint_to_cam1; ^ /home/bvandepo/multicolslam/MultiCol-SLAM/include/g2o_MultiCol_sim3_expmap.h:176:8: error: ‘unordered_map’ in namespace ‘std’ does not name a template type std::unordered_map<size_t, int> keypoint_to_cam2; ^ /home/bvandepo/multicolslam/MultiCol-SLAM/include/g2o_MultiCol_sim3_expmap.h: In member function ‘cv::Vec2d MultiColSLAM::VertexSim3Expmap_Multi::cam_map1(const Vector3d&, int) const’: /home/bvandepo/multicolslam/MultiCol-SLAM/include/g2o_MultiCol_sim3_expmap.h:142:17: error: ‘keypoint_to_cam1’ was not declared in this scope int camIdx = keypoint_to_cam1.find(ptIdx)->second; ^ /home/bvandepo/multicolslam/MultiCol-SLAM/include/g2o_MultiCol_sim3_expmap.h: In member function ‘cv::Vec2d MultiColSLAM::VertexSim3Expmap_Multi::cam_map2(const Vector3d&, int) const’: /home/bvandepo/multicolslam/MultiCol-SLAM/include/g2o_MultiCol_sim3_expmap.h:153:17: error: ‘keypoint_to_cam2’ was not declared in this scope int camIdx = keypoint_to_cam2.find(ptIdx)->second; ^ /home/bvandepo/multicolslam/MultiCol-SLAM/src/g2o_MultiCol_sim3_expmap.cpp: At global scope: /home/bvandepo/multicolslam/MultiCol-SLAM/src/g2o_MultiCol_sim3_expmap.cpp:25:48: error: expected constructor, destructor, or type conversion before ‘(’ token VertexSim3Expmap_Multi::VertexSim3Expmap_Multi( ^
Pour déterminer sur quelle partie est le pb:
cat build.sh
c'est la compile de multicol qui déconne, tout le reste ok….
EIGEN3_INCLUDE_DIR=$(pwd)/Eigen export EIGEN3_INCLUDE_DIR echo $(pwd) mkdir build cd build cmake .. -DCMAKE_BUILD_TYPE=Release make -j
dans le ~/multicolslam/MultiCol-SLAM/CMakeLists.txt, j'ajoute:
cmake_minimum_required(VERSION 3.5)
et après IF(NOT DEFINED EIGEN_INCLUDE_DIR_HINTS)
MESSAGE("Using internal Eigen")
c'est bien la version interne d'eigen qui est utilisée…
Problème de compilation décrit par Antoine sur: https://github.com/urbste/MultiCol-SLAM/issues/1 Il dit de remplacer: std::unordered_map par std::tr1::unordered_map
cd ~/multicolslam/MultiCol-SLAM grep -nRi std::unordered_map * find . -name "*" -exec sed -i 's,std::unordered_map,std::tr1::unordered_map,g' {} \; grep -nRi std::tr1::unordered_map * make -j
L'executable est dans
~/multicolslam/MultiCol-SLAM/Examples/Lafida/multi_col_slam_lafida
récupérer les données d'exemple:
cd ~/multicolslam wget http://www2.ipf.kit.edu/%7Epcv2016/downloads/indoor_dynamic.zip
multicolslam.1479997117.txt.gz · Dernière modification : 2016/11/24 15:18 de bvandepo