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 环境变量:- sudo apt install -y 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. 添加 ROS2 软件源
Ubuntu 默认源没有 ROS2,需要添加官方源。
2.1. 导入 ROS2 官方密钥
- # 导入 ROS2 GPG 密钥
- 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 官方仓库
- # 添加 ROS2 源到 sources.list.d
- 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 镜像。将上述地址换为中科大镜像地址即可:- 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
配置结束之后终于可以一键安装了,首先更新一下软件包索引: 然后一键安装桌面完整版,包含 ROS2 核心库、可视化工具(RViz)、开发工具等,是最常用的版本:- sudo apt install -y ros-jazzy-desktop
复制代码 如果只需要核心库(无可视化工具),可以安装精简版:- sudo apt install -y ros-jazzy-ros-base
复制代码 注意:jazzy 对应的是 Ubuntu24.04,如果当前 Ubuntu 的版本是 22.04,请将上述命令中的 jazzy 替换为 humble。
4. 配置环境变量
安装完成后,需要让系统识别 ROS2 的命令,有两种配置方式:
- 临时配置(仅当前终端有效):每次打开新终端都需要执行:
- source /opt/ros/jazzy/setup.bash
复制代码 - 永久配置(写入配置文件):将配置写入 ~/.bashrc,每次打开终端自动生效:
- echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
- source ~/.bashrc # 立即生效
复制代码 5. 验证安装
(1)检查 ROS2 版本
如果输出类似 ros2 jazzy 的版本信息,说明基础安装成功。
(2)运行示例测试
打开两个终端:
终端 1 运行 ROS2 的示例话题发布节点:- ros2 run demo_nodes_cpp talker
复制代码 终端 2 运行示例话题订阅节点:- ros2 run demo_nodes_cpp listener
复制代码 如果终端 2 能看到终端 1 发布的 Hello World 信息,说明 ROS2 完整运行。
6. 安装额外开发工具
有许多 ROS 开发中常用的开发工具可能并不在 ROS2 的安装包里,需要额外安装,比如 colcon。colcon 并不是 ROS2 安装包的默认组件,需要单独安装:- # 安装 colcon 核心扩展包(ROS2 官方推荐)
- sudo apt install -y python3-colcon-common-extensions
复制代码 rosdep也是:- sudo apt install -y python3-rosdep
- # 初始化rosdep(解决依赖查找问题)
- sudo rosdep init
- rosdep update
复制代码 来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|
|
|
|
|
相关推荐
|
|
|