Ubuntu22.04源码安装ROS-noetic(ROS1非ROS2),编译运行VINS-MONO

本文详细描述了在Ubuntu22.04环境下,如何通过源码编译安装ROS-noetic版本,包括依赖库eigen、ceres和opencv的版本选择,以及遇到的编译问题和cv_bridge的替换。此外,还介绍了如何运行VINS-MONO并进行代码解读系列教程的链接。

1. Ubuntu22.04源码编译安装ROS-noetic

由于22.04默认安装ROS2,但很多仓库都是基于ROS1的,不想重装系统,参考这两个博客安装了ROS-noetic:

这一步拉ROS1源代码时可能会出现curl访问不了github:

vcs import --input noetic-desktop.rosinstall ./src

把github地址(当时是: 140.82.114.3)加到/etc/hosts中即可。
参考这个解决。

我的库版本(实测可行):

  • 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

### Ubuntu 22.04上一键安装ROS Noetic的方法或脚本 尽管Ubuntu 22.04 LTS是较新的长期支持版本,但ROS Noetic官方仅支持到Ubuntu 20.04 (Focal Fossa)[^1]。因此,在Ubuntu 22.04安装ROS Noetic需要通过官方方法或手动调整依赖项来完成。 以下是一个适用于Ubuntu 22.04的一键安装脚本示例,该脚本尝试从源代码编译ROS Noetic并解决可能的依赖问题: ```bash #!/bin/bash # 更新系统包 sudo apt update && sudo apt upgrade -y # 安装依赖工具 sudo apt install -y python3-pip python3-rosdep python3-rosinstall python3-wstool build-essential cmake # 初始化 rosdep sudo rosdep init rosdep update # 创建工作空间并克隆 ROS Noetic 源代码 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone https://github.com/ros/ros.git -b noetic-devel # 返回工作空间根目录并安装依赖 cd ~/catkin_ws rosdep install --from-paths src --ignore-src -r -y # 编译 ROS Noetic catkin_make_isolated --install --use-ninja # 设置环境变量 echo "source ~/catkin_ws/devel_isolated/setup.bash" >> ~/.bashrc source ~/.bashrc # 验证安装 roscore & ``` 此脚本将执行以下任务: 1. 更新系统包以确保最新状态。 2. 安装必要的工具和依赖项,包括 `python3-pip` 和 `build-essential` 等[^2]。 3. 初始化并更新 `rosdep` 工具以管理依赖关系。 4. 克隆 ROS Noetic 的源代码仓库,并将其放置在 Catkin 工作空间中。 5. 使用 `rosdep` 解决所有依赖项。 6. 利用 `catkin_make_isolated` 编译 ROS Noetic。 7. 设置环境变量以便在终端中使用 ROS 命令。 需要注意的是,由于某些依赖项可能不再与Ubuntu 22.04兼容,用户可能需要手动解决一些编译错误或依赖冲突。 #### 注意事项 - 此脚本假定用户具有管理员权限(即可以运行 `sudo`)。 - 如果遇到依赖问题,可能需要手动安装或替换不兼容的库。 - 官方建议是在Ubuntu 20.04安装ROS Noetic以避免不必要的兼容性问题[^3]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值