SLAM 시리즈 VINS-Mono와 VINS-Fusion의 환경 구축 Relasense에서 실행

환경



ubuntu16.04/ROS-kinect
ubuntu18.04/ROS-Melodic

둘 다 입증되었습니다.

VINS-mono 설치



참고로 했습니다
htps : // m / pin / ms / 8989f45 a d0908184 e6 5

github에서 설치
sudo apt install libceres-dev libceres1
cd ~/catkin_ws/src
git clone https://github.com/PINTO0309/VINS-Mono.git
cd ../
catkin_make

여기서 오류가 ...
CMake Error at /usr/lib/cmake/ceres/CeresConfig.cmake:88 (message):
  Failed to find Ceres - Found Eigen dependency, but the version of Eigen
  found (3.3.4) does not exactly match the version of Eigen Ceres was
  compiled with (3.2.92).  This can cause subtle bugs by triggering
  violations of the One Definition Rule.  See the Wikipedia article
  http://en.wikipedia.org/wiki/One_Definition_Rule for more details
Call Stack (most recent call first):
  /usr/lib/cmake/ceres/CeresConfig.cmake:217 (ceres_report_not_found)
  VINS-Mono/camera_model/CMakeLists.txt:19 (find_package)


CMake Error at VINS-Mono/camera_model/CMakeLists.txt:19 (find_package):
  Found package configuration file:

    /usr/lib/cmake/ceres/CeresConfig.cmake

  but it set Ceres_FOUND to FALSE so package "Ceres" is considered to be NOT
  FOUND.

오류 처리



cmake 파일 편집
sudo chmod 777 CeresConfig.cmake                      
nano /usr/local/lib/cmake/Ceres/CeresConfig.cmake 

편집 내용
set(Ceres_FOUND TRUE)                                #FALSE --> TRUE 70行目あたり
set(EIGEN_INCLUDE_DIR "/usr/local/include/eigen3")   #追加
set(CERES_EIGEN_VERSION 3.3.4)                       #3.3.29 --> 3.3.4  221行目あたり

그리고 다시
catkin_make

bash 파일에 반영 (터미널 당 필요)
source ~/workspace/catkin_ws/devel/setup.bash

샘플 데이터 실행



VINS-Mono 실행
roslaunch vins_estimator euroc.launch       

rviz로 표시
roslaunch vins_estimator vins_rviz.launch   

grandtruth 다운로드
roslaunch benchmark_publisher publish.launch sequence_name:=MH_05_difficult 

bag 파일 재생
rosbag play MH_05_difficult.bag             

※카메라와 IMU를 온라인상에서 캘리브레이션한 후의 VINS-Mono의 실행 커맨드는 이쪽
(첫 번째 명령)
roslaunch vins_estimator euroc_no_extrinsic_param.launch 

VINS-Fusion



우선 github에서 다운로드
cd ~/catkin_ws/src
git clone https://github.com/HKUST-Aerial-Robotics/VINS-Fusion.git
cd ../
catkin_make
source ~/workspace/catkin_ws/devel/setup.bash
※.bashrc に追記してないならターミナル毎に必要

샘플 데이터 실행



샘플 데이터 다운로드


cd src/data #dataディレクトリは作ったもの
wget http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/machine_hall/MH_01_easy/MH_01_easy.bag
wget http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/machine_hall/MH_01_easy/MH_01_easy.zip
unzip MH_01_easy.zip;rm MH_01_easy.zip

VINS-Fusion을 샘플 데이터로 실행



먼저 rviz 시작
source workspace/catkin_ws/devel/setup.bash
roslaunch vins vins_rviz.launch

· Monocular + IMU의 경우 명령
rosrun vins vins_node ~/workspace/catkin_ws/src/VINS-Fusion/config/euroc/euroc_mono_imu_config.yaml 
(option)rosrun loop_fusion loop_fusion_node ~/workspace/catkin_ws/src/VINS-Fusion/config/euroc/euroc_mono_imu_config.yaml 

· Stereo + IMU의 경우 명령
rosrun vins vins_node ~/workspace/catkin_ws/src/VINS-Fusion/config/euroc/euroc_stereo_imu_config.yaml
(option)rosrun loop_fusion loop_fusion_node ~/workspace/catkin_ws/src/VINS-Fusion/config/euroc/euroc_stereo_imu_config.yaml

· stereo의 경우 명령
rosrun vins vins_node ~/workspace/catkin_ws/src/VINS-Fusion/config/euroc/euroc_stereo_config.yaml 
(option)rosrun loop_fusion loop_fusion_node ~/workspace/catkin_ws/src/VINS-Fusion/config/euroc/euroc_stereo_config.yaml

마지막으로 bag 파일 재생
rosbag play ~/workspace/catkin_ws/src/data/MH_01_easy.bag

loop_fusion 명령을 포함하면 총 4 개의 터미널을 동시에 사용합니다.

realsense에서 실행



realsense의 SDK 설치는 여기

realsense-ros 디렉토리를 쉘 설정에 반영
source ~/workspace/realsense-ros/devel/setup.bash

realsense의 launch 파일 실행
roslaunch realsense2_camera rs_camera.launch

※이 파일은 아래의 디렉토리에 있습니다.realsense_ros/src/realsense-ros/realsense2_camera/launch이제 relasense가 ROS에서 인식할 수 있는 상태가 됩니다.

드디어 realsens+vins-Fusion 실행



※쉘 설정을 각 터미널에 반영
source ~/workspace/catkin_ws/devel/setup.bash

rviz 시작
roslaunch vins vins_rviz.launch

vins-node realsense_stereo_imu_config.yaml를 참조하면서 실행
※yaml 파일은 config 안에 미리 준비되어 있습니다.
rosrun vins vins_node ~/workspace/catkin_ws/src/VINS-Fusion/config/realsense_d435i/realsense_stereo_imu_config.yaml

loop_fusion realsense_stereo_imu_config.yaml을 참조하면서 실행
rosrun loop_fusion loop_fusion_node ~/workspace/catkin_ws/src/VINS-Fusion/config/realsense_d435i/realsense_stereo_imu_config.yam

에서 무사히 움직일 것입니다.
이쪽도 총 4개의 터미널이 열려 있습니다.

web 카메라로 실행(아직 모르는 곳…)



pintgrey의 flea3의 경우
roslaunch pointgrey_camera_driver camera.launch

이것을 cam0[/cam0/image_raw]에 보내는 방법을 모르겠습니다 ...

웹캠의 경우
roscore
rosrun uvc_camera uvc_camera_node
rosrun image_view image_view image:=/image_raw

이것을 cam0[/cam0/image_raw]에 보내는 방법을 모르겠습니다 ...

좋은 웹페이지 즐겨찾기