그러므로 VINS를 이용하여 실험을 진행해보고자 한다.
구동환경
OS : Ubuntu 16.04 LTSROS : Kinetic
1. Install eigen3
원래는 ceres-solver를 설치하는 것이 맞지만, 내 경우엔 ceres-solver를 설치하는 과정에 다음과 같은 에러가 떴다.
#Error!!
CMake Error at /home/kevin/src/ceres-solver/CMakeLists.txt:243 (find_package):
Could not find a configuration file for package "Eigen3" that is compatible
with requested version "3.3".
The following configuration files were considered but not accepted:
/usr/lib/cmake/eigen3/Eigen3Config.cmake, version: unknown
아무래도 eigen3의 버전이 3.3이어야 한다는 의미 같아서, eigen3의 버전을 확인해봤지만 내 버전은 3.3이다.
1
2
|
$ dpkg -s libeigen3-dev | grep 'Version'
Version: 3.3~beta1-2
| cs |
하지만 실제로 다음 경로의 폴더를 확인해보면 내 eigen3의 버전은 3.2.92 라는 것을 알 수 있다. 이 현상은 ubuntu 16.04 에서 나타나는 버그라고 한다.
(링크 참조 : https://github.com/ceres-solver/ceres-solver/issues/541 )
/usr/lib/cmake/eigen3/Eigen3Config.cmake
이 상황을 해결하기 위해서 다음 링크의 두번째 답변을 참고한다.
https://askubuntu.com/questions/1068232/how-to-update-libeigen3-to-version-3-3-on-16-04-xenial
정리하자면 다음과 같다.
아래 링크에서 아무 서버나 선택해 파일을 받은 뒤,
https://packages.ubuntu.com/bionic/all/libeigen3-dev/download
아래 명령어를 통해 eigen3를 설치해주면 된다.
sudo dpkg -i libeigen3-dev_3.3.4-4_all.deb
이 때, 주의할 점은 해당 파일이 ubuntu 18.04 (bionic) 용이란 것이다.
호환성에 문제가 있을까? 해보기 전엔 모르겠다.
2. Install ceres-solver
이제 다음 링크를 참조해 ceres-solver를 설치한다.
http://ceres-solver.org/installation.html
정리하자면 다음과 같다.
Start by installing all the dependencies.
# CMake
sudo apt-get install cmake
# google-glog + gflags
sudo apt-get install libgoogle-glog-dev
# BLAS & LAPACK
sudo apt-get install libatlas-base-dev
# Eigen3
sudo apt-get install libeigen3-dev
# SuiteSparse and CXSparse (optional)
# - If you want to build Ceres as a *static* library (the default)
# you can use the SuiteSparse package in the main Ubuntu package
# repository:
sudo apt-get install libsuitesparse-dev
# - However, if you want to build Ceres as a *shared* library, you must
# add the following PPA:
sudo add-apt-repository ppa:bzindovic/suitesparse-bugfix-1319687
sudo apt-get update
sudo apt-get install libsuitesparse-dev
We are now ready to build, test, and install Ceres.
tar zxf ceres-solver-1.14.0.tar.gz
mkdir ceres-bin
cd ceres-bin
cmake ../ceres-solver-1.14.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
3. Install VINS-mono
다음 경로를 참고해 VINS-mono를 설치한다.
https://github.com/HKUST-Aerial-Robotics/VINS-Mono
정리하면 다음과 같다.
Clone the repository and catkin_make:
cd ~/catkin_ws/src
git clone https://github.com/HKUST-Aerial-Robotics/VINS-Mono.git
cd ../
catkin_make
source ~/catkin_ws/devel/setup.bash
4. Run VINS-mono with EuRoC
VINS-mono에서는 EuRoC Datasets과 함께 프로그램을 돌리는 기능을 제공한다.
아래 명령어를 통해 수행할 수 있다.
roslaunch vins_estimator euroc.launch
roslaunch vins_estimator vins_rviz.launch
rosbag play YOUR_PATH_TO_DATASET/MH_01_easy.bag
수행을 하면 다음과 같은 결과를 확인할 수 있다.
댓글 없음:
댓글 쓰기