欢迎光临
我们一直在努力

在Ubuntu22.04上安装ros1 noetic

目录

方法1:

添加源

更新源

安装

方法2:

安装踩坑

补充:做多传感器融合、slam需要用到的库

ROS-PCL交互库安装

opencv库

总结


ubuntu22.04未提供ros1的维护,noetic只兼容到20.04,故而需要用源码安装,并且其中存在许多问题。从网络上获取了以下两种方法以及安装踩坑以及补充:

方法1:

AutoLabor 官方编译的一个 ROS Noetic Ninjemys 安装包可以直接使用

参见:

chttps://zhuanlan.zhihu.com/p/679914618

添加源

echo "deb [trusted=yes arch=amd64] http://deb.repo.autolabor.com.cn jammy main" | sudo tee /etc/apt/sources.list.d/autolabor.list

更新源

sudo apt update

安装

sudo apt install ros-noetic-autolabor

利用此方法可以便捷安装noetic。

经测试,该方法确实可以运行roscore和rviz,并实现工作空间的编译,但是运行原有ros代码,会出现诸多依赖问题,例如22.04同样不维护cv_bridge、安装pcl依赖库较为麻烦。总之若想用该方法直接运行开源的SLAM等已有代码工程十分麻烦,仍然需要从源码下载依赖并安装。

方法2:

参见

https://gist.github.com/Meltwin/fe2c15a5d7e6a8795911907f627255e0

此方法直接从源码安装,注意最好有科学上网方法,否则难以下载源码,暂时不知道有无国内源。

按照该链接所述步骤执行即可,下述安装过程中个人记录的问题和值得注意的点。

安装踩坑

  • 在步骤1.1中,还需要安装rospkg,rospkg-modules的依赖,建议执行

sudo apt-get install python3-rosdep python3-rosinstall-generator python3-vcstools python3-vcstool build-essential python3-rospkg python3-rospkg-modules

在这里,可能遭遇的问题是python3-catkin-pkg-modules、python3-rosdistro-modules、python3-rosdep-modules等包出现循环依赖等问题导致无法安装,按照系统提示使用“apt –fix-broken install”。若仍无法解决,参考解决ROS 1安装过程中出现的“有未满足的依赖关系”问题_安装ros时缺少依赖关系-CSDN博客

直接在终端强制安装这些包:

sudo dpkg -i –force-overwrite /var/cache/apt/archives/python3-catkin-pkg-modules_1.0.0-1_all.deb

  • 在步骤2.1中, 执行

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

时,如果你科学上网的网络不稳定,可能无法一次性把所有包全部下载下来,下一次如果下载包未成功会把之前成功下载的覆盖变成空文件夹。因此建议把每一次下载的src中的文件存下来,然后多次下载获得全部包。

补充:做多传感器融合、slam需要用到的库

  • ROS-PCL交互库安装

提供的ros源码中不包括ROS-PCL交互库:pcl_ros、pcl_msgs、pcl_conversions。不能直接用apt安装,因为它们适配的依然是ros2,若要安装ros-pcl仍要从源码安装。

git clone https://github.com/ros-perception/perception_pcl.git -b melodic-devel
git clone https://github.com/ros-perception/pcl_msgs.git -b noetic-devel

解压后放在src下。

pcl依赖:从https://github.com/ros/geometry2下载noetic-devel分支下的geometry2库,替代noetic_ws/src/geometry2,若未安装bullet,需将test_tf2、tf2_bullet删除。

  • opencv库

ubuntu22.04自带的是opencv4,出现

fatal err: opencv/cv.h: No such file or directory

报错,可以将代码中的#include <oencv/cv.h>替换为#include <opencv2/opencv.hpp>,不过部分工程可能要求特定的opencv版本,如ORB SLAM要求OpenCV 3.0,编译仍可能失败,需要从源码下载安装。

  • !你的所有源码的cmakelist都要经过2.1.2的change_cpp.py处理或手动修改CMakelist中的C++版本。

按照上述步骤执行完后,最后添加ros环境配置到~/.bashrc中即可

source <your_dir>/setup.bash

    总结

    两种方法可按照需求选择,建议开发者选择第二种能处理更多兼容性问题。

    赞(0)
    未经允许不得转载:171主机测评 » 在Ubuntu22.04上安装ros1 noetic
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址