一、Vins-mono安装、编译报错解决
这里侧重我遇到的难以解决的问题。
1.问题一:照着一般的教程来就行,只不过编译时会遇到opencv3和4的冲突问题。
要么把vins中的所有cmakelists.txt中的opencv版本改成4,然后编译报错时再对应修改。对应的方法都能搜到。
要么照着网上说的改cv_bridge方法,再把vins所有cmakelists.txt中的改成opencv3。
注:编译cv_bridge时,我遇到报错:boost_python版本问题(这里有一个常规解决方法,是报错没有1.71.0版本的,网上能搜到,但我照着那个解决我这个问题没能解决,这里附上链接:
)(我的报错:没有匹配的1.77.0版本,已有的1.71.0不被接受,但偏偏我下载了1.77.0,好像就缺少他报错的那两个文件),怎么都解决不了,最后把cv_bridge中cmakelists.txt中的这一段(6—19行)改成这样,莫名其妙解决了:
这里第15行这个目录是我下载的boost的目录。不过也不确定我这个之前跟着一个教程设置的软连接有没起作用(就是上面那个链接的文末的参考链接的第二个),不过我记得当时设置那个后编译了没用。
2.问题2:运行roslaunch vins_estimator euroc.launch时,报错:[pose_graph-3]
一般都说是照着上面改vins_mono的所有cmakelists.txt中的opencv版本为4或者改cv_bridge(就是问题一中开头说的),就可以解决,但是我做了之后还是报这个错。只有去代码中找问题了。
我定位错误到pose_graph/src/pose_graph_node.cpp中的第486行左右,就这条语句:
std::string pkg_path=ros::package::getPath("pose_graph");
应该是这个功能包路径没有成功得到,于是我直接注释了这一行,直接改成我电脑中安装的vins_mono的pose_graph这个功能包路径,即修改后为:
最后成功运行。真不容易。