找回密码
 立即注册
首页 业界区 业界 Ubuntu 上 ROS2 的安装

Ubuntu 上 ROS2 的安装

刃减胸 前天 00:00
Ubuntu 上 ROS2 的安装一、前言

​        最近至少配置了 4 次 ROS2 了,该踩的坑都踩过了,遂发一篇博客记录一下。其实 ROS2 的安装并没有想象中的那么难,可能只是出于未知便觉得不知所措,但是其实本质上就只有两步:添加源、然后安装。
​        但是在此之前,我觉得有必要说一下 Ubuntu 和 ROS2 的各个版本代号以及对应关系。众所周知,Ubuntu 的版本除了我们喜闻乐见的 20.04/22.04/24.04 之外,还有固定为「形容词 + 动物」的版本代号,最近的几个大版本如下:
Ubuntu 版本号英文代号中文俗称支持周期16.04 LTSXenial Xerus好客的非洲地松鼠2016-202118.04 LTSBionic Beaver仿生海狸2018-202320.04 LTSFocal Fossa焦点猫鼬2020-202522.04 LTSJammy Jellyfish急躁的水母2022-202724.04 LTSNoble Numbat高贵的袋食蚁兽2024-2029​        而有些地方会直接用第一个单词来指代 Ubuntu 的版本,比如 Focal/Jammy/Noble 分别代表 20.04/22.04/24.04。
​        而 ROS2 也有自己的版本代号(ROS1基本上已经不支持了,所以我们默认直接略过 ROS1),比如 Humble/Jazzy(这里和 Ubuntu 的代号有点像注意别弄混了),而每个版本支持的 Ubuntu 版本也不尽相同,具体信息可以去 ROS 官网 查看。以下教程只针对于截止目前相对较新的 22.04 和 24.04 来安装。
二、安装

其实 Ubuntu 上的软件安装方式十分统一,统一到只需要同一个命令就行:apt
唯一的区别就是有的软件在系统自带的软件源里,而有的需要自己添加软件源。
1. 终端配置 locale

​        ROS2 需要 UTF-8 编码支持,但是中文英文貌似都可以,目前来说还没有遇到什么由中文编码产生的问题。可以在终端运行一下 locale 来查看一下支持的语言,只要是 UTF-8 的比如 en_US.UTF-8 或者 zh_CN.UTF-8 暂时都行。如果不是 UTF-8 的得运行一下如下命令永久设置系统的全局 locale 环境变量:
  1. sudo apt install -y locales
  2. sudo locale-gen en_US en_US.UTF-8
  3. sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
  4. export LANG=en_US.UTF-8
复制代码
2. 添加 ROS2 软件源

Ubuntu 默认源没有 ROS2,需要添加官方源。
2.1. 导入 ROS2 官方密钥
  1. # 导入 ROS2 GPG 密钥
  2. curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key | sudo gpg --dearmor -o /usr/share/keyrings/ros-archive-keyring.gpg
复制代码
​        这一步的作用是将 ROS2 官方的密钥下载保存到 /usr/share/keyrings/ros-archive-keyring.gpg,防止下载的软件被恶意篡改。
2.2. 配置 ROS2 官方仓库
  1. # 添加 ROS2 源到 sources.list.d
  2. 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
复制代码
​        这一步的作用是将 ROS2 的官方仓库添加到 apt 的下载源中,从而保证能通过 apt 下载 ROS2。其中 $(. /etc/os-release && echo $UBUNTU_CODENAME) 的作用是自动识别 Ubuntu 版本(比如22.04 对应 jammy),无需手动修改,也可以用$(lsb_release -cs) 代替。
​        如果安装过程中遇到网络问题,可切换国内镜像源,如清华、中科大 ROS2 镜像。将上述地址换为中科大镜像地址即可:
  1. echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] https://mirrors.ustc.edu.cn/ros2/ubuntu/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
复制代码
3. 安装 ROS2

​        配置结束之后终于可以一键安装了,首先更新一下软件包索引:
  1. sudo apt update
复制代码
​        然后一键安装桌面完整版,包含 ROS2 核心库、可视化工具(RViz)、开发工具等,是最常用的版本:
  1. sudo apt install -y ros-jazzy-desktop
复制代码
​        如果只需要核心库(无可视化工具),可以安装精简版:
  1. sudo apt install -y ros-jazzy-ros-base
复制代码
​        注意:jazzy 对应的是 Ubuntu24.04,如果当前 Ubuntu 的版本是 22.04,请将上述命令中的 jazzy 替换为 humble。
4. 配置环境变量

​        安装完成后,需要让系统识别 ROS2 的命令,有两种配置方式:

  • 临时配置(仅当前终端有效):每次打开新终端都需要执行:
    1. source /opt/ros/jazzy/setup.bash
    复制代码
  • 永久配置(写入配置文件):将配置写入 ~/.bashrc,每次打开终端自动生效:
    1. echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
    2. source ~/.bashrc # 立即生效
    复制代码
5. 验证安装

(1)检查 ROS2 版本
  1. ros2 --version
复制代码
​        如果输出类似 ros2 jazzy 的版本信息,说明基础安装成功。
(2)运行示例测试

​        打开两个终端:
​        终端 1 运行 ROS2 的示例话题发布节点:
  1. ros2 run demo_nodes_cpp talker
复制代码
​        终端 2 运行示例话题订阅节点:
  1. ros2 run demo_nodes_cpp listener
复制代码
​        如果终端 2 能看到终端 1 发布的 Hello World 信息,说明 ROS2 完整运行。
6. 安装额外开发工具

​        有许多 ROS 开发中常用的开发工具可能并不在 ROS2 的安装包里,需要额外安装,比如 colcon。colcon 并不是 ROS2 安装包的默认组件,需要单独安装:
  1. # 安装 colcon 核心扩展包(ROS2 官方推荐)
  2. sudo apt install -y python3-colcon-common-extensions
复制代码
​        rosdep也是:
  1. sudo apt install -y python3-rosdep
  2. # 初始化rosdep(解决依赖查找问题)
  3. sudo rosdep init
  4. rosdep update
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册