Ubuntu20-04-运行-VINS-MONO

环境:Ubuntu 20.04.5 最小安装

安装ROS

  1. 安装ROS Noetic
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
sudo apt install ros-noetic-desktop-full -y
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc && source ~/.bashrc
  1. 测试小乌龟
# ROS core
roscore
# 再开一个终端,运行小乌龟
rosrun turtlesim turtlesim_node
# 再开一个终端,让小乌龟运动
rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'

配置VINS-MONO

  1. 安装依赖 ceres-solver
sudo apt install libeigen3-dev libgflags-dev libgoogle-glog-dev -y
wget http://ceres-solver.org/ceres-solver-1.14.0.tar.gz
tar xvf ceres-solver-1.14.0.tar.gz
cd ceres-solver-1.14.0/ && mkdir build && cd build && cmake ..
make -j 8
sudo make install
  1. 安装OpenCV 3
    默认安装ROS Noetic 安装了libopencv-dev 4.2.0(/usr/lib/x86_64-linux-gnu/cmake/opencv4),但是vins-mono只能用opencv3
sudo apt install cmake git -y
wget https://github.com/opencv/opencv/archive/3.4.16.zip
unzip 3.4.16.zip && cd opencv-3.4.16/ && mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j 8
sudo make install
# 查看版本号
pkg-config --modversion opencv
  1. 让 cv-bridge 连接opencv3
sudo apt remove ros-noetic-cv-bridge
git clone https://github.com/ros-perception/vision_opencv.git
cd vision_opencv && git checkout noetic
cd cv_bridge/ && mkdir build && cd build 
sed -i.bak "s#set(_opencv_version 4)#set(_opencv_version 3)#g" ../CMakeLists.txt
cmake ..
make -j 8
sudo make install
sudo ln -s /usr/local/share/cv_bridge /opt/ros/noetic/share/cv_bridge
  1. 编译VINS-MONO
mkdir -p ~/catkin_ws/src && cd ~/catkin_ws/src && catkin_init_workspace
git clone https://github.com/HKUST-Aerial-Robotics/VINS-Mono.git
cd ../ && catkin_make
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
reboot
  1. 测试EuRoC
roscore
roslaunch vins_estimator euroc.launch 
roslaunch vins_estimator vins_rviz.launch
rosbag play YOUR_PATH_TO_DATASET/MH_01_easy.bag 

参考