mkdir -p ~/vins/src //其中vins是自己起的-可以改变,src不能更改,就算建立文件夹
cd ~/vins/src //进入建立的文件夹
catkin_init_workspace //创建工作空间
cd ~/vins/src // 进入之前建立的文件夹
git clone https://github.com/HKUST-Aerial-Robotics/VINS-Mono.git //下载代码到文件夹
cd ../ //返回上一级文件夹
catkin_make //编译
【注意】如果我们事先有代码,把代码放进建立的文件夹即可
打开三个终端,
第一个终端:
//配置环境变量 ,vins 是之前创建的文件夹,devel/setup.bash是catkin_make 编译后的内容
source ~/vins/devel/setup.bash
//这是运行euroc数据集的启动节点
roslaunch vins_estimator euroc.launch
第二个终端:
source ~/vins/devel/setup.bash //配置环境变量 ,,注意是vins ,这与之前创建的工作空间名字有关
roslaunch vins_estimator vins_rviz.launch //启动rviz
rviz启动界面如下图所示.
第三个终端:
source ~/vins/devel/setup.bash //配置环境变量, vins 是之前创建文件夹
rosbag play vins/Dates/MH_01_easy.bag //我的bag数据集放在vins/Dates文件夹下面了
运行结果
若想看到真实的轨迹,可以打开第四个终端:
roslaunch benchmark_publisher publish.launch sequence_name:=MH_01_easy //没有效果,不知道为啥
解决方案一:
回去再次编译:
catkin_make
添加环境变量:
source ./devel/setup.bash
解决方案二:
打开这个文件:
sudo gedit ~/.bashrc
在该文件的最后添加如下代码
vins为我的ROS工作路径。
source ~/vins/devel/setup.bash
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/vins/
然后重启bashrc
source ~/.bashrc
查看ROS路径是否添加上
echo $ROS_PACKAGE_PATH
因为我们现在跑的是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秒左右的时间。然后会出现下列信息:
pose graph path: /home/kk/happy/pose_graph_map/
pose graph saving...
save pose graph time: 22.858210 s
save pose graph finish
you can set 'load_previous_pose_graph' to 1 in the config file to reuse it next time
感谢下面连接作者提供的思路
https://blog.csdn.net/guaijiaodie2064/article/details/83041721
https://blog.csdn.net/learning_tortosie/article/details/83182258
https://blog.csdn.net/tanyong_98/article/details/103073812
https://blog.csdn.net/nannan7777/article/details/102915699
https://blog.csdn.net/Hanghang_/article/details/104535370
很好