1、ros官网getting start找到ros-humble进行安装。
#设定环境
sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
2、添加源。
sudo apt update && sudo apt install curl gnupg lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
3、安装ros-humble-desktop。
sudo apt update
sudo apt upgrade
sudo apt install ros-humble-desktop
4、安装完后配置环境。
source /opt/ros/humble/setup.bash
echo " source /opt/ros/humble/setup.bash" >> ~/.bashrc
问题汇总:
1、前面配置环境和添加源的时候,我遇到的问题是:
仓库 “http://packages.ros.org/ros/ubuntu jammy Release” 没有 Release 文件
我是在软件更新器其他软件的位置将这个网址删除了,但其实这个问题主要还是源的问题,现在不做换源,之后sudo apt install ros-humble-desktop的时候还是会需要换源
2、在sudo apt install ros-humble-desktop时遇到了依赖项的问题,这个问题是22.04安装ros的通用问题,不过只在ros官方论坛里传播,也没有清晰的解决方案。
那么遇到这个问题后,我们需要的是手动换源,在root权限下运行
sudo vi /etc/apt/sources.list
删除所有内容,更换为以下内容
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
保存退出,然后打开软件更新器,可能会更新下载很多内容,按着流程来,都安装,如果遇到问题就在终端执行。交替执行,直到两者都没有新内容更新。如果这个过程中遇到软件更新器失去响应,影响不大,只要在终端执行无新内容即可。
sudo apt update
sudo apt upgrade
3、让后此时再重新执行ros安装流程,此时仍是到了sudo apt install ros-humble-desktop时,遇到了问题
ros-humble-ros-workspace : 冲突: libsystemd0 (<= 249.11-0ubuntu3) 但是 249.11-0ubuntu3 正要被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
此时是libsystemd0的版本问题,ros-humble的要求为0ubuntu3.1,我的系统为3,不行的,以下为官方论坛的解读,还是挺有用的。
附上以上官方论坛这一问题的网址:
https://github.com/ros2/ros2/issues/1272
打开这个网页找到这个人的发言,点击其中lib……进入官方下载论坛,
libs
又叫链接库,在链接库下找到,按照提示进入,找到libsystemd0
点击进入找到自己amd64的界面。
按照提示,复制粘贴到sources.list添加一行。
接下来为我的后续操作步骤,成功了但不知道原因,因为添加了又得删除o-o。
之后再进行
sudo apt update
sudo apt upgrade
提示会报错很大一串,此时只需要再进入sources.list将最后一行删除,也就是刚刚我们添加的那一行,再执行
sudo apt update
sudo apt upgrade
神奇的是,libsystemd0正在更新到0ubuntu3.4。
更新完毕之后,再执行前述ros安装流程,没有任何问题,完美安装。
最后运行下小乌龟(成功安装测试案例)
打开一个终端命令,输入如下内容:
ros2 run turtlesim turtlesim_node
输入后你会发现,屏幕上会出现一个海龟在蓝色背景中,同时打开另外一个终端,如数如下内容:
ros2 run turtlesim turtle_teleop_key
你就可以通过键盘上的方向键来控制小海龟了。
测试效果图如下图所示:
成功,有什么问题可以一起探讨,现在中文搜索关于22.04安装ros2的还比较少,可以一起补充。总不能一遇到问题就退回安装18.04吧,22.04界面用起来那么香O-O。