概述
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的工具。
最后
以上就是明理火为你收集整理的VINS-MONO实践的全部内容,希望文章能够帮你解决VINS-MONO实践所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复