1. Ubuntu22.04源码编译安装ROS-noetic
由于22.04默认安装ROS2,但很多仓库都是基于ROS1的,不想重装系统,参考这两个博客安装了ROS-noetic:
- 博客1. https://blog.csdn.net/Drknown/article/details/128701624
- 博客2. https://zhuanlan.zhihu.com/p/418227536
我的库版本(实测可行):
- eigen:3.3.7
- ceres:1.14.0(用2.系列版本的编译时需要把C++版本设为14,可能也可以适配,但我当时折腾时用我这一套跑通了,直接github clone源码然后cmake… , make,sudo make install即可)
- opencv:3.4.15
编译可能会出现一些bug,先解掉能编过,一会儿改了cv_bridge后再编一次。
编译ROS时,按照博客1里面的解决掉bug,剩下的应该可以编过,如果可能会出现编译不过的情况,比如返回值不是0之类的,尝试接着从没编过的包开始继续编译:
./src/catkin/bin/catkin_make_isolated --from-pkg 你失败的包的名字 --install-DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=/usr/bin/python3
如果还编不过就google或者GPT吧。
更改cv_bridge:
ROS-noetic默认使用OpenCV 4,我试过改源码适配4,但是最后还是有别的问题,而且别的仓库用3的可能也多一点,所以我就参照参考博客2中的方法改了cv_bridge(其实就是替换了ROS源码中的
src/vision_opencv/cv_bridge
下的相应的cv_bridge的源码,然后删掉
build_isolated, devel_isolated,install_isolated
文件夹后重编,不删可能会出现奇怪的问题),改好的cv_bridge结果如下:
2. 跑VINS-MONO
工程编译过之后就可以run起来了:
# 跑VINS-MONO
roslaunch vins_estimator euroc.launch
# 跑可视化rviz
roslaunch vins_estimator vins_rviz.launch
# 跑数据,发出topic
rosbag play /mnt/For_Linux/Dataset/EuRoc/machine_hall/MH_01_easy/MH_01_easy.bag
跑出来后可以接着深入看代码了,边改边看。
代码解读系列文章:
VINS-MONO代码解读1----配置文件,数据结构,前端feature_tracker
VINS-MONO代码解读2----vins_estimator(整体pipeline和KF selection部分)
VINS-MONO代码解读3----vins_estimator(鲁棒初始化部分)
VINS-MONO代码解读4----vins_estimator(后端求解部分)
VINS-MONO代码解读5----vins_estimator(marginalization部分)
VINS-MONO代码解读6----pose_graph(完结篇)
代码注释和扩展工作已上传GitHub
版权归原作者 读书健身敲代码 所有, 如有侵权,请联系我们删除。