ROS 2 Lyrical Luth 第一章 系统入门教程
ROS2 Lyrical正式版替换测试版记录
前言
本文对标原文档《ROS Noetic 入门》结构,科学严谨完整讲解ROS 2 Lyrical Luth(代号 lyrical),覆盖版本背景、PC 原生 Ubuntu 安装、虚拟机部署、Docker 容器化、ARM 嵌入式开发板部署、环境配置、验证示例,同时对比 ROS 1 Noetic 核心差异,全程遵循 ROS 官方文档规范,适配 2026 最新 LTS 发行版标准ROS。
本书覆盖内容
- Ubuntu 26.04 Resolute 下二进制包安装 ROS 2 Lyrical 完整框架
- ROS 2 分层架构、基础核心概念与命令行操作
- 数据可视化、日志调试、ros2 bag 数据录制回放
- ament 编译体系下机器人 C++/Python 功能包编程
- 传感器、执行器硬件驱动接入、机器人 URDF 模型构建
- Gazebo 3D 仿真、导航 2 自主导航功能包集部署
- 多环境部署:VirtualBox 虚拟机、Docker 容器、ARM64 嵌入式开发板
第 1 章 ROS 2 Lyrical 概述与历史背景
1.1 ROS 2 基础定义
ROS(Robot Operating System)是机器人软件标准化开发框架;ROS 2为 ROS 1 全重构迭代版本,解决 ROS 1 中心化、无实时性、跨机通信弱、嵌入式适配差等缺陷。核心设计思想:分布式去中心化通信、硬件完全抽象、跨平台兼容、原生实时调度、DDS 标准化通信中间件,实现机器人代码跨硬件无修改复用GitHub。
1.2 Lyrical Luth 版本基础信息
- 发布时间:2026 年 5 月
- LTS 长期支持周期:至 2031 年 5 月(5 年官方维护)
- 官方 Tier1 一级支持平台:Ubuntu 26.04 Resolute amd64(PC)、arm64(嵌入式)
- 对比 ROS 1 Noetic 关键区别
表格
维度 ROS 1 Noetic ROS 2 Lyrical 通信架构 中心化 Master 节点,单故障点 去中心化 DDS 发现,无主节点 编译工具 catkin ament(ament_cmake/ament_python) 底层通信 自定义 TCPROS 协议 DDS 标准(FastDDS 默认,Zenoh 原生支持) 实时性 无原生实时调度 硬实时内核原生适配、执行器调度优化 系统适配 仅 Ubuntu 20.04,x86 为主 Ubuntu26.04、Windows11、ARM64、RHEL10 安全机制 无原生加密 SROS2 分布式加密通信 生命周期管理 无标准化节点生命周期 标准化 Lifecycle 节点插件生态
1.3 ROS 2 分层架构(Lyrical 完整五层)
从底层至应用层分层解耦,为开发、调试提供标准化抽象:
- DDS 传输层:Fast-DDS(默认)、Cyclone DDS、Zenoh;负责数据分发、网络发现、QoS 质量策略
- RMW 抽象层:统一封装 DDS 接口,上层应用可无修改切换中间件
- RCL 核心 C 库层:实现节点、话题、服务、参数、日志底层基础 API
- 客户端语言层:rclcpp(C++20)、rclpy(Python3.12)面向开发者封装
- 应用工具层:RViz2 可视化、Gazebo 仿真、ros2cli 命令行、导航 2、感知功能包
1.4 Lyrical 核心新增特性
- 通用资源加载服务
resource_retriever_service,RViz2 跨网络加载机器人三维模型 - ros2 bag 丢包统计、录制带宽限流、日志分级动态配置
- 原生 fish/zsh/bash 多 shell 环境一键配置脚本
- 生命周期节点回调组事件执行器,多线程调度性能大幅提升
- ARM64 嵌入式存储空间轻量化优化,支持裁剪最小化部署
- 完善工业安全 SROS2 配套工具链,适配 ISO 机器人安全标准ROS
1.5 开源协议与社区生态
ROS 2 整体采用Apache 2.0 开源协议,商用、科研完全免费,可修改、分发、闭源商用二次开发(区别于 ROS 1 BSD 协议);第三方功能包可自定义开源协议。 全球 200 + 科研机构、机器人企业持续维护硬件驱动、导航、视觉、机械臂开源包,硬件覆盖人形机器人、移动底盘、水下机器人、机械臂、Arduino、树莓派、BeagleBone Black 等,硬件清单可查阅:https://docs.ros.org/en/lyrical/Robots.html
2 PC 端 Ubuntu 26.04 原生安装 ROS 2 Lyrical(官方推荐二进制源安装)
前置条件:已安装 Ubuntu 26.04 Resolute,掌握 Linux 基础终端操作、vim 文件编辑、文件夹创建;系统架构 amd64。
2.1 系统前置配置(必选步骤)
2.1.1 配置 UTF-8 字符集(ROS 2 强制要求)
bash
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-82.1.2 启用 Ubuntu 标准软件源组件
打开 Ubuntu Software → Edit → Software Sources,勾选全部组件:
- main(官方开源软件)
- universe(社区开源软件)
- restricted(设备专有驱动)
- multiverse(版权受限软件) 推荐选择国内镜像服务器(清华 / 阿里源)加速下载。
2.1.3 添加 ROS 2 官方软件源密钥与源列表
- 安装密钥管理工具,导入 ROS 软件源可信密钥
bash
sudo apt install software-properties-common sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg- 将 ROS 2 源写入系统源文件
bash
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null- 更新软件源缓存,升级系统全量软件(避免库版本冲突)
bash
sudo apt update sudo apt upgrade -y2.2 ROS 2 Lyrical 四种安装方案(按需选择)
方案 1:桌面完整版(本书推荐,适合学习开发)
包含 RViz2 3D 可视化、rqt 工具箱、Gazebo 仿真、导航 2、视觉感知、激光雷达、深度相机全套功能包,硬盘预留≥20GB:
bash
sudo apt install ros-lyrical-desktop -y方案 2:标准桌面精简版(仅基础可视化,无仿真导航)
硬盘空间不足时选用,仅保留 RViz2、rqt、基础机器人库,后续可单独安装仿真 / 导航包:
bash
sudo apt install ros-lyrical-desktop-base -y方案 3:基础最小化 ros-base(无头设备,无 GUI)
仅保留通信库、消息接口、命令行工具,无可视化界面,用于无屏幕嵌入式主机:
bash
sudo apt install ros-lyrical-ros-base -y方案 4:单独安装指定功能包
通用格式,将PACKAGE替换为功能包名称:
bash
sudo apt install ros-lyrical-PACKAGE # 示例:安装导航2功能包 sudo apt install ros-lyrical-navigation22.3 初始化 rosdep 依赖管理工具
rosdep 用于自动解析功能包编译、运行所需系统依赖,安装 ROS 后必须初始化:
bash
# 安装工具 sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential # 初始化全局依赖库 sudo rosdep init # 更新依赖索引 rosdep update2.4 配置 ROS 2 全局环境变量
ROS 2 必须加载setup.bash脚本才能识别命令、库路径,每次新开终端默认生效配置:
- 单次临时生效(当前终端)
bash
source /opt/ros/lyrical/setup.bash- 永久全局生效(所有终端自动加载)
bash
echo "source /opt/ros/lyrical/setup.bash" >> ~/.bashrc # 立即加载配置,无需重启终端 source ~/.bashrc- 多 ROS 发行版共存注意事项 若系统同时安装多个 ROS 2 版本(jazzy/humble/lyrical),
~/.bashrc中仅保留目标版本的 source 语句,最后一行加载的版本为当前默认版本;切换版本需手动执行对应 setup 脚本。 - 验证当前 ROS 版本
bash
echo $ROS_DISTRO # 输出 lyrical 代表配置成功2.5 安装 ros2cli 辅助工具集
rosinstall 工具简化多功能包批量下载、源码拉取:
bash
sudo apt install python3-rosinstall2.6 安装完成验证(turtlesim 经典示例)
新开两个独立终端,分别执行: 终端 1(启动仿真海龟节点)
bash
ros2 run turtlesim turtlesim_node终端 2(键盘控制海龟移动)
bash
ros2 run turtlesim turtle_teleop_key操作:在第二个终端按上下左右键,海龟窗口中乌龟同步移动,代表 ROS 2 完整安装、通信正常。
3 VirtualBox 虚拟机部署 ROS 2 Lyrical
适用场景:不想修改本机系统、临时测试、纯净开发环境,缺点:无法完美直通外部传感器硬件,仅适用于算法仿真调试。
3.1 工具下载
- VirtualBox 官方安装包:适配 Windows/macOS/Linux
- Ubuntu 26.04 amd64 官方 ISO 镜像;或 OSBOX 预装好 Ubuntu26.04 的 vdi 虚拟硬盘镜像
- 7z 解压工具:
bash
sudo apt install p7zip-full # 解压预编译虚拟机镜像 7z x Ubuntu_26.04-amd64.vdi.7z3.2 虚拟机创建步骤
- 打开 VirtualBox → New 新建虚拟机
- Name:Ubuntu26.04-Lyrical
- Type:Linux,Version:Ubuntu (64-bit)
- 内存分配:推荐≥4GB,学习开发 8GB 最优
- 硬盘选项:选择「使用已存在虚拟硬盘文件」,加载下载好的
.vdi镜像 - 启动虚拟机,登录 Ubuntu 系统,按照第 2 章完整步骤安装 ROS 2 Lyrical
3.3 虚拟机局限性说明
- USB 设备直通复杂,激光雷达、深度相机、机械臂驱动易失效
- Gazebo 3D 仿真显卡性能受限,大场景仿真卡顿
- 适合算法、话题通信、功能包编译学习,硬件实操推荐物理机
4 Docker 容器化部署 ROS 2 Lyrical
Docker 比虚拟机轻量化,秒级启动、环境隔离、多版本并行、一键分发开发环境,工业部署首选方案。
4.1 Ubuntu 安装 Docker 引擎
bash
# 一键安装docker curl -fsSL get.docker.com | sudo sh # 将当前用户加入docker组,免sudo执行docker命令 sudo usermod -a -G docker $(whoami) # 重启终端生效 newgrp docker4.2 拉取官方 Lyrical 镜像
bash
# 桌面完整版(含RViz、仿真) docker pull ros:lyrical-desktop # 最小基础版(嵌入式无头部署) docker pull ros:lyrical-ros-base4.3 交互式运行 ROS 2 容器
- 带图形界面、共享主机网络启动(推荐开发)
bash
docker run -it --rm \ --net=host \ -e DISPLAY=$DISPLAY \ -v /tmp/.X11-unix:/tmp/.X11-unix \ ros:lyrical-desktop- 容器内加载 ROS 环境,验证示例
bash
source /opt/ros/lyrical/setup.bash ros2 run turtlesim turtlesim_node4.4 容器进阶操作
- 查看运行中容器
bash
docker ps -a- 进入已后台运行的容器(NAME 替换容器名称)
bash
docker exec -it NAME bash- 自定义 Dockerfile 构建专属镜像(预装本书全部示例代码) 在 Dockerfile 目录执行构建:
bash
docker build -t lyrical-workspace .5 ARM 嵌入式开发板部署 ROS 2 Lyrical(BeagleBone Black / 树莓派 arm64)
Lyrical 官方 Tier1 支持 arm64 架构,arm32 仅 Tier3 有限支持;本节以 BeagleBone Black(BBB)、Ubuntu 26.04 arm64 为例。
5.1 硬件与系统准备
- 硬件:BeagleBone Black,microSD 卡≥16GB
- 下载 Ubuntu 26.04 arm64 镜像,解压写入 SD 卡
- 烧录镜像脚本:
bash
tar xf ubuntu-26.04-arm64-minimal.tar.xz sudo ./setup_sdcard.sh --mmc /dev/mmcblk0 --dtb beaglebone- 开发板启动:按住 S2 按键上电,HDMI 外接显示器、网线连接路由器获取 DHCP IP
5.2 网络配置
- 开发板终端获取 IP
bash
sudo dhclient eth0 ifconfig eth0 # 记录IP,例:192.168.1.100- 电脑 SSH 远程登录开发板
bash
ssh ubuntu@192.168.1.1005.3 ARM 平台特殊安装步骤
- 扩展 SD 卡文件系统(嵌入式卡默认分区空间不足)
bash
sudo su fdisk /dev/mmcblk0 # 依次执行:p → d → 2 → n → p → 2 → w reboot # 重启后扩容分区 sudo resize2fs /dev/mmcblk0p2- 字符集、软件源、密钥配置与 PC 端完全一致
- ARM 不推荐
desktop-full完整安装(存储空间不足),仅安装 ros-base,按需单独安装驱动、感知包:
bash
sudo apt install ros-lyrical-ros-base # 按需安装硬件驱动示例 sudo apt install ros-lyrical-serial-driver- rosdep 初始化、环境变量配置、验证话题通信流程同 PC 端
- 跨机通信示例:PC 接收 BBB 发布的话题 BBB 终端(发布位姿话题)
bash
source /opt/ros/lyrical/setup.bash ros2 topic pub /chassis_pose geometry_msgs/msg/Pose "{position: {x: 1.0, y: 0.0, z: 0.0}, orientation: {x:0,y:0,z:0,w:1}}" -r 10PC 终端(指定 Master 网络地址,订阅话题)
bash
source /opt/ros/lyrical/setup.bash export ROS_DOMAIN_ID=0 ros2 topic echo /chassis_pose本章小结
本章完整覆盖 ROS 2 Lyrical Luth 多平台安装部署方案:物理 PC 原生 Ubuntu 适合全功能开发;VirtualBox 虚拟机适合无硬件改动的临时学习;Docker 容器适合环境隔离、批量部署;ARM 开发板适配机器人嵌入式终端。
安装优先推荐二进制软件源安装,编译源码仅适合深度自定义二次开发;嵌入式设备建议轻量化 ros-base 安装,避免存储空间溢出。
ROS 2 相比 ROS 1 在分布式通信、实时性、跨平台、安全层面完成底层重构,Lyrical 作为 2026 最新 LTS 版本,新增大量可视化、仿真、嵌入式优化工具,后续章节将深入讲解 ROS 2 核心架构、节点通信、ament 编译、机器人导航与视觉开发。
ROS2 Lyrical Luth 系统入门教程摘要
本文全面介绍ROS2 Lyrical(2026 LTS版本)的安装与部署,对比ROS1 Noetic的核心差异,涵盖多平台适配方案:
版本特性
- ROS2 Lyrical采用DDS去中心化通信,支持实时调度与跨平台部署,新增生命周期节点优化、ARM轻量化等特性。
- 对比ROS1,改进通信架构(FastDDS)、编译工具(ament)、安全机制(SROS2)。
安装方案
- Ubuntu 26.04原生安装:推荐二进制源安装,提供桌面完整版(含Gazebo/RViz2)、基础版等选项。
- 虚拟机与Docker:VirtualBox适合学习仿真;Docker容器轻量化,支持多版本隔离与工业部署。
- ARM嵌入式开发:适配BeagleBone Black/树莓派,需轻量化安装(ros-base),优化存储空间。
关键步骤
- 配置UTF-8字符集、ROS官方源,初始化rosdep依赖管理。
- 验证安装:通过
turtlesim示例测试通信功能。 - 跨平台通信:PC与嵌入式设备通过ROS_DOMAIN_ID实现话题交互。
总结:ROS2 Lyrical为机器人开发提供标准化框架,支持PC、虚拟化、嵌入式全场景,适合从算法仿真到硬件部署的全流程开发。后续将深入节点通信、导航与视觉功能开发。