ubuntu22.04-ROS2-humble安装

发布于:2024-07-05 ⋅ 阅读:(11) ⋅ 点赞:(0)

前期准备

  1. 修改Ubuntu Hosts文件:这项工作非常重要,如果不修改,ROS 2 GPG key无法安装,无法进行ROS2的安装。(可能跟网络限制有关,也许哪天就不用添加这个hosts了)

sudo gedit /etc/hosts

在打开的gedit上添加hosts如下,记得保存:

185.199.108.133 raw.githubusercontent.com 185.199.109.133 raw.githubusercontent.com 185.199.110.133 raw.githubusercontent.com 185.199.111.133 raw.githubusercontent.com

安装步骤

1. 区域设置

打开终端, 输入:

locale

显示当前系统的区域设置 为保证顺利安装,需要进行区域设置:在终端中执行

sudo apt update && sudo apt install locales # 更新软件包列表并安装区域设置包

sudo locale-gen en_US en_US.UTF-8 # 生成en_US.UTF-8的区域设置包

sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 # 强制设定区域设置为en_US.UTF-8,默认设定区域设置为en_US.UTF-8

export LANG=en_US.UTF-8 # 设置环境变量LANG=en_US.UTF-8

2. 添加源

源是指可以获取软件的地址。安装ROS2之前添加源的目的是告诉Ubuntu系统在哪里下载ROS2。ROS2官方提供的添加源的终端操作步骤如下,打开终端,输入以下指令:

sudo apt install software-properties-common # 安装添加源的工具

sudo add-apt-repository universe # 添加universe源仓库

sudo apt update && sudo apt install curl gnupg lsb-release #更新软件包列表并安装curl,pnupg,lsb-release

sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg # 授权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 # 添加ros2 apt 存储库到源列表中

注释:curl是利用资源地址进行数据或者文件传输的工具。pnupg是加密文件工具。lsb-release是Linux 标准基础版本报告工具,可以帮助识别正在使用的 Linux 发行版以及它们对 Linux 标准基础的兼容性。 echo指令用于向终端设备上输出字符串,ehco的重定向:echo " "> 文件路径,将双引号中的内容覆盖到对应的文件中。Linux tee命令用于读取标准输入的数据,并将其内容输出成文件。tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件

出现错误:

W: GPG error: http://packages.ros.org/ros2/ubuntu jammy InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F42ED6FBAB17C654 E: The repository 'http://packages.ros.org/ros2/ubuntu jammy InRelease' is not signed. N: Updating from such a repository can't be done securely, and is therefore disabled by default. N: See apt-secure(8) manpage for repository creation and user configuration details.

有可能ROS 2 GPG key安装有问题,或者上面说的hosts文件修改有问题,检查hosts文件,确保hosts已经添加相关映射,然后再在终端上执行以下命令:

提示:如果上述命令执行失败,通常是由于 DNS 解析失败导致的, 你可以使用 nslookup 命令查询 raw.githubusercontent.com 的域名信息, 并将域名及其 IP 地址填到 /etc/hosts 文件进行手动解析。(参考 GitHub 无法读取远程仓库) [[https://getiot.tech/zh/github/github-errata-port-443-connection-refused/|无法读取远程仓库]]

然后将存储库添加到系统的软件源列表中。

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

3. 执行安装指令

以上步骤进行完后,就可以进行安装了。打开终端,输入以下指令:

sudo apt update # 更新软件包列表

sudo apt upgrade # 将软件包升级到最新版本

sudo apt install ros-humble-desktop # 安装ros2的humble桌面版本

sudo apt install ros-humble-ros-base # 安装ros2 humble基础的通信库、消息包、指令工具

sudo apt install ros-dev-tools

ROS2安装的默认目录在/opt/ros/下,根据版本的名字进行区分。我们安装的是Humble版本的ROS2,所以安装目录在/opt/ros/humble下。

4. 设置环境变量

为了让ROS2能够找到功能包,还需要设置环境变量。打开终端,输入以下指令:

echo " source /opt/ros/humble/setup.bash" >> ~/.bashrc# 设置始终执行该脚本文件,使ros2的软件包可在所有打开的新终端中使用

注释:

shell是命令语言解释器,终端程序执行时会自动调用shell程序,在提示符下输入的每个命令都由shell先解释然后传给Linux内核。shell有多种,bash是Ubuntu系统默认的shell,而.bash文件就是bash的脚本文件。source指令用于执行setup.bash文件。 echo "" >> 文件路径,将双引号中的内容追加到对应的文件中。~ 是指当前用户的home目录,.bashrc是home目录下的一个shell文件,用于储存用户的个性化设置。在bash每次启动时都会加载.bashrc文件中的内容,并根据内容定制当前bash的配置和环境。

安装 vscode

sudo apt install snap # 安装snap工具 sudo snap install --classic code # 安装VS Code

卸载

sudo apt remove ~nros-humble-* && sudo apt autoremovesudo rm /etc/apt/sources.list.d/ros2.list

sudo apt update

sudo apt autoremove

sudo apt upgrade


网站公告

今日签到

点亮在社区的每一天
去签到