ubuntu22.04-ROS2-humble安装

前期准备

  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

  1. 添加源

源是指可以获取软件的地址。安装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

  1. 执行安装指令

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

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下。

  1. 设置环境变量

为了让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

相关推荐
悲欢唯谁懂2 小时前
FANUC机器人—PCDK
机器人
kuan_li_lyg2 小时前
MATLAB - 机械臂手眼标定(眼在手内) - 估计安装在机器人上的移动相机的姿态
开发语言·人工智能·matlab·机器人·ros·机械臂·手眼标定
kuan_li_lyg6 小时前
MATLAB - 机械臂手眼标定(眼在手外) - 估算固定相机相对于机器人基座的姿态
开发语言·人工智能·matlab·机器人·ros·机械臂·手眼标定
xwz小王子9 小时前
CoRL 2024 麻省理工学院提出T3触觉Transformer,打破触觉感知的壁垒,重塑未来机器人
深度学习·机器人·transformer
敢敢のwings1 天前
经典文献阅读之--WiROS(用于机器人的WiFi感知工具箱)
机器人
black_blank1 天前
机器人跳跃问题
数据结构·算法·机器人
热心市民R先生1 天前
ros2 colcon build 构建后,install中的local_setup.bash 和setup.bash有什么区别
开发语言·机器人·bash
云卓科技2 天前
无人机之编队控制篇
科技·安全·机器人·无人机·制造
微刻时光2 天前
影刀RPA实战:excel相关图片操作指令解
笔记·机器人·自动化·excel·rpa·影刀
无水先生2 天前
统计学习理论之VC维究竟是什么
人工智能·机器人