1. Ubuntu22.04源碼編譯安裝ROS-noetic
由于22.04默認(rèn)安裝ROS2,但很多倉(cāng)庫(kù)都是基于ROS1的,不想重裝系統(tǒng),參考這兩個(gè)博客安裝了ROS-noetic:
- 博客1. https://blog.csdn.net/Drknown/article/details/128701624
- 博客2. https://zhuanlan.zhihu.com/p/418227536
我的庫(kù)版本(實(shí)測(cè)可行):
- eigen:3.3.7
- ceres:1.14.0(用2.系列版本的編譯時(shí)需要把C++版本設(shè)為14,可能也可以適配,但我當(dāng)時(shí)折騰時(shí)用我這一套跑通了,直接github clone源碼然后cmake… , make,sudo make install即可)
- opencv:3.4.15
編譯可能會(huì)出現(xiàn)一些bug,先解掉能編過(guò),一會(huì)兒改了cv_bridge后再編一次。
編譯ROS時(shí),按照博客1里面的解決掉bug,剩下的應(yīng)該可以編過(guò),如果可能會(huì)出現(xiàn)編譯不過(guò)的情況,比如返回值不是0之類的,嘗試接著從沒(méi)編過(guò)的包開(kāi)始繼續(xù)編譯:
./src/catkin/bin/catkin_make_isolated --from-pkg 你失敗的包的名字 --install -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=/usr/bin/python3
如果還編不過(guò)就google或者GPT吧。
更改cv_bridge:
ROS-noetic默認(rèn)使用OpenCV 4,我試過(guò)改源碼適配4,但是最后還是有別的問(wèn)題,而且別的倉(cāng)庫(kù)用3的可能也多一點(diǎn),所以我就參照參考博客2中的方法改了cv_bridge(其實(shí)就是替換了ROS源碼中的src/vision_opencv/cv_bridge
下的相應(yīng)的cv_bridge的源碼,然后刪掉build_isolated, devel_isolated,install_isolated
文件夾后重編,不刪可能會(huì)出現(xiàn)奇怪的問(wèn)題),改好的cv_bridge結(jié)果如下:
2. 跑VINS-MONO
工程編譯過(guò)之后就可以run起來(lái)了:
# 跑VINS-MONO
roslaunch vins_estimator euroc.launch
# 跑可視化rviz
roslaunch vins_estimator vins_rviz.launch
# 跑數(shù)據(jù),發(fā)出topic
rosbag play /mnt/For_Linux/Dataset/EuRoc/machine_hall/MH_01_easy/MH_01_easy.bag
跑出來(lái)后可以接著深入看代碼了,邊改邊看。
代碼解讀系列文章:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-787807.html
VINS-MONO代碼解讀1----配置文件,數(shù)據(jù)結(jié)構(gòu),前端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(完結(jié)篇)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-787807.html
到了這里,關(guān)于Ubuntu22.04源碼安裝ROS-noetic(ROS1非ROS2),編譯運(yùn)行VINS-MONO的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!