Closed nikolaradulov closed 2 months ago
To build the library:
git clone git@github.com:nikolaradulov/slam-eds-slambench.git
Install depedencies:
#install eigen
sudo apt-get install libeigen3-dev
# install pcl
sudo apt-get install libpcl-dev
# Install rock-cmake
cd ~
git clone https://github.com/rock-core/base-cmake.git
cd base-cmake
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=$HOME/dev/install ..
make install
export CMAKE_PREFIX_PATH=$HOME/dev/install
export PKG_CONFIG_PATH=$HOME/dev/install/lib/pkgconfig:$HOME/dev/install/share/pkgconfig:$HOME/dev/install/lib64/pkgconfig:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=$HOME/dev/install/lib:$HOME/dev/install/lib64:$LD_LIBRARY_PATH
export PATH=$HOME/dev/install/bin:$PATH
cd ~
git clone https://github.com/rock-core/base-logging.git
cd base-logging
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=$HOME/dev/install ..
make install
cd ~
git clone https://github.com/rock-core/base-types.git
cd base-types
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=$HOME/dev/install -DUSE_SISL=OFF -DBINDINGS_RUBY=OFF ..
make install
# install ceres
sudo apt-get install cmake
# google-glog + gflags
sudo apt-get install libgoogle-glog-dev libgflags-dev
# Use ATLAS for BLAS & LAPACK
sudo apt-get install libatlas-base-dev
# SuiteSparse (optional)
sudo apt-get install libsuitesparse-dev
tar zxf ceres-solver-2.1.0.tar.gz
mkdir ceres-bin
cd ceres-bin
cmake ../ceres-solver-2.1.0
make -j3
make test
# Optionally install Ceres, it can also be exported using CMake which
# allows Ceres to be used without requiring installation, see the documentation
# for the EXPORT_BUILD_DIR option for more information.
make install
# install yaml-cpp
tar zxf yaml-cpp-0.8.0.tar.z
cd yaml-cpp-0.8.0
mkdir build
cd build
cmake -DYAML_BUILD_SHARED_LIBS=ON ..
make install
#Install opencv
sudo apt install libopencv-dev
#install jpeg conversion
git clone https://github.com/rock-core/perception-jpeg_conversion.git
cd perception-jpeg_conversion
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=$HOME/dev/install -DBINDINGS_RUBY=OFF ..
make install
#install frame helper
git clone https://github.com/rock-core/perception-frame_helper.git
cd perception-frame_helper
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=$HOME/dev/install -DBINDINGS_RUBY=OFF ..
make install
build eds library:
cd slam-eds-slambench/src/orig/eds
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=$HOME/dev/install -DCMAKE_BUILD_TYPE=Debug ..
make install
Build shared library:
cd slam-eds-slambench/src/orig
mkdir build
cd build
cmake -DDEPS_PATH=/home/nrad/dev/install -DWRAPPER_PATH=/home/nrad/slam-eds-slambench/wrapper -DEIGEN3_INCLUDE_DIR=/usr/include/eigen3/ "-DCMAKE_INSTALL_PREFIX:PATH=/home/nrad/slam-eds-slambench/" ..
make install
Run with:
cd slam-eds-slambench/src/orig/build
~/slambench/build/bin/slambench -i ~/slambench/datasets/UZHFPV/indoor_forward_5_davis_with_gt.slam -load ./libslam_eds-original-library.so
Is it because the Eigen version conflict? SLAMBenchAPI.h
and SLAMBenchLibraryHelper.h
(included by SLAMBenchAPI.h
) include <Eigen/Core>, but it doesn't seems to be the problem because they are just header file ...
and I am not sure if it is safe to declare a static Eigen variable in library.cpp.
https://github.com/yuhaozhang7/slam-eds In slambench branch
I simply write a CMakeLists.txt without rock. But I do use rock cmake to install frame_helper, jpeg, base-types, base-logging. I change the location of config.yaml, sensor.yaml and move Task.cpp, Task.hpp, EDSTypes.hpp into task folder, so it becomes in order to include Task.cpp, I use #include "eds/task/Task.hpp"
Closing issue due to stop in eds dev integration
Eigen segfaults on conservativeResize within the EDS library, but not when called on the same matrix from the main driver of the algorithm in Task.cpp. In both instances the version used is 3.3.7 as reported by executing std::cout<<"Eigen World lib: "<<EIGEN_WORLD_VERSION<<" Eigen Major lib: "<<EIGEN_MAJOR_VERSION<<" Eigen Minor lib: "<<EIGEN_MINOR_VERSION<<'\n'; . The stack traced by GDB is :