VINS-MONO实践

20 篇文章 20 订阅

1.配置ros(运行VINS需要,记得换源,会快一些)

sudo apt-get install ros-melodic-cv-bridge ros-melodic-tf ros-melodic-message-filters ros-melodic-image-transport

解释:
cv-bridge在ROS图像消息和OpenCV图像之间转换。
message-filters一组消息过滤器,根据过滤器需要满足的条件,接收消息并在以后输出这些消息。
image-transport应始终使用图像传输来订阅和发布图像。它为以低带宽压缩格式传输图像提供支持

2.安装依赖库
1)eigen3.3.4版本(pkg-config --modversion eigen3命令看)

sudo apt-get install libeigen3-dev

2)安装opencv
进入到解压后的文件包中,由于我已经安装好cmake了,在此不多叙述

sudo apt-get install cmake
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev    
libswscale-dev libjasper-dev

创建文件夹

mkdir build 
cd build
cmake
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

完成后输入

sudo make

等待完成后再输入

sudo make install

完成编译,

cd到opencv-3.4.0/smaples/cpp/example_cmake目录下
我们可以看到这个目录里官方已经给出了一个cmake的example我们可以拿来测试下
按顺序执行

cmake . 
make 
./opencv_example

即可看到打开了摄像头,在左上角有一个hello opencv
即表示配置成功
在这里插入图片描述3.安装Ceres
安装依赖

sudo apt-get install liblapack-dev 
sudo apt-get install libsuitesparse-dev 
sudo apt-get install libcxsparse3 
sudo apt-get install libgflags-dev 
sudo apt-get install libgoogle-glog-dev libgtest-dev

下载源码:git clone https://github.com/ceres-solver/ceres-solver
进入Ceres的文件夹下
编译Ceres

mkdir build
cd build
cmake ..
sudo make install

4.Vins_mono的编译

git clone https://github.com/HKUST-Aerial-Robotics/VINS-Mono.git#在src下执行
catkin_make

打开四个终端分别运行以下命令:

roscore
roslaunch vins_estimator euroc.launch 
roslaunch vins_estimator vins_rviz.launch
rosbag play MH_01_easy.bag

结果:其中绿线表示基于VINS-Mono算法的估计轨迹,红线表示闭环。
在这里插入图片描述

rostopic echo /vins_estimator/odometry

在这里插入图片描述

如果想看到轨迹的同时,看到数据集的ground truth,我们可以再打开一个terminal,执行:

roslaunch benchmark_publisher publish.launch sequence_name:=MH_01_easy

然后,你就会看到两条轨迹,红色的轨迹是ground truth,绿色的轨迹是vins-mono跑出来的。
在这里插入图片描述
修改地图保存的路径
因为我们现在跑的是euroc数据集,所以我们要修改的地方有两处。

euroc_config.yaml中的pose_graph_save_path

pose_graph_save_path: “/home/kk/自己的路径/”

euroc_config.yaml中的output_path项

output_path: “/home/kk/自己的路径/”

上述""里填写自己的路径,先创建好该路径,注意最后面有个/,代表着是一个文件夹。 修改完之后,记得在ros工作空间中重新编译一下catkin_make。

保存地图
重新运行程序,待地图跑完之后,在运行 roslaunch vins_estimator euroc.launch 的terminal中,输入 “s” ,并按下回车键Enter,等待地图保存,我电脑花了20秒左右的时间。然后会出现下列信息:
在这里插入图片描述

之后会在保存的路径下出现一堆图片文件,地图保存成功。
在这里插入图片描述
重载地图
首先要修改两处地方:

euroc_config.yaml的load_previous_pose_graph,置1
euroc_config.yaml的fast_relocalization,置1

第一项的意思是使能重新加载地图功能,第二项是快速重定位。(你可以先不改第二项试试看,然后再改,看看有什么不同),修改完之后重新编译catkin_make。 重新运行程序,会发现先加载了地图,颜色是黄色的。
在这里插入图片描述加载地图之后的结果如下所示:

在这里插入图片描述在这里插入图片描述快速重定位实践如下:
在这里插入图片描述精度评测可采用evo工具,一个评测SLAM的工具。

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值