ROS2介绍,及ubuntu22.04 安装ROS 2部署使用!

第一部分:什么是 ROS 2?

ROS 并不是像 Windows 或 Linux 那样的传统"操作系统",而是一个中间件(Middleware)。它提供了一套通信机制,让不同的程序(比如控制摄像头的程序、规划路径的程序、驱动电机的程序)能够像搭积木一样协同工作。

ROS2(Robot Operating System 2)是一个开源的机器人操作系统框架,它为开发机器人应用程序提供了一整套工具和库。与 ROS 1 相比,ROS2 在许多方面进行了改进,特别是在分布式系统、实时性、跨平台支持等方面。ROS2 支持多种编程语言,最常用的是 C++ 和 Python。

为什么选择 ROS 2 而不是 ROS 1?

  • 去中心化:ROS 2 取消了 ROS 1 中的 "Master" 节点,基于 DDS(数据分发服务)协议。这意味着更强的实时性和稳定性。

  • 支持多平台与微控制器:更好的跨平台支持,甚至可以运行在嵌入式芯片上。

  • 生命周期管理:可以更好地控制节点的启动、暂停和配置。

ROS2 主要包括以下几个部分:

  1. 通信中间件(DDS) :ROS2 采用了 DDS(Data Distribution Service)作为其通信基础,具有更高的可靠性和实时性,适合多机器人系统或分布式系统。

  2. 模块化设计:ROS2 强调了模块化设计,可以根据需求选择所需的功能模块,适应各种机器人应用。

  3. 跨平台支持:ROS2 支持 Linux、Windows、macOS 和嵌入式系统。

  4. 实时支持:ROS2 提供了对实时系统的更好支持,能够确保实时任务的执行。

ROS2 的应用非常广泛,尤其在机器人仿真、自动驾驶、工业机器人、无人机等领域。

核心概念(必读)

在开始之前,你需要理解以下四个概念,它们构成了 ROS 2 的世界:

  1. Node (节点):一个执行特定任务的独立进程。例如:一个节点负责读取雷达数据,另一个节点负责控制机械臂运动。

  2. Topic (话题) :节点之间传输数据的"管道"。这是一种发布/订阅模型(类似于广播)。

    • 例子 :摄像头节点发布 /image_raw 话题,显示屏节点订阅这个话题来显示图像。
  3. Service (服务)请求/响应模型。

    • 例子:你向机械臂发送一个"抓取"请求,机械臂执行完后给你返回"成功"或"失败"。
  4. Action (动作):用于长时间运行的任务,带有反馈机制。

    • 例子:控制机械臂从 A 点移动到 B 点。这个过程需要几秒钟,期间机械臂会不断反馈"我走到一半了"、"还差一点",直到最后反馈"到达"。

ROS2 的主要组件

  1. rclcpp / rclpy:分别是 ROS2 C++ 和 Python 的客户端库,提供了创建节点、发布消息、订阅话题等功能。

  2. Gazebo:用于模拟机器人的环境和运动。

  3. RViz:用于可视化机器人状态、传感器数据等。

  4. ROS 2 命令行工具(CLI):通过命令行交互与 ROS2 系统进行通信,控制机器人。

第二部分:在 Ubuntu 22.04 上安装 ROS 2 (Humble Hawksbill)

Ubuntu 22.04 对应的 ROS 2 长期支持版本 (LTS) 是 Humble Hawksbill。这是目前最稳定、社区支持最好的版本。

请打开终端(Terminal),依次执行以下命令:

1. 设置语言环境 (Locale)

ROS 2 依赖 UTF-8 编码。即使你平时用中文,也建议先确保系统支持 UTF-8。

bash 复制代码
locale  # 检查当前编码

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-8
2. 启用 Ubuntu Universe 仓库
bash 复制代码
sudo apt install software-properties-common
sudo add-apt-repository universe
3. 添加 ROS 2 的 GPG 密钥和源

这一步是为了让 Ubuntu 信任 ROS 的官方软件源。

bash 复制代码
sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

接着,将仓库地址添加到系统中:

bash 复制代码
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
4. 安装 ROS 2 Humble

先更新缓存,然后安装。对于你的需求(仿真+机械臂),强烈建议安装 Desktop 版,因为它包含了可视化的工具(如 RViz 和 演示程序)。

bash 复制代码
sudo apt update
sudo apt upgrade
sudo apt install ros-humble-desktop

(注意:这个过程可能需要几分钟到十几分钟,取决于网速。)

5. 安装开发工具

你需要安装构建工具 colcon,这在以后编译你自己的代码时必不可少。

bash 复制代码
sudo apt install python3-colcon-common-extensions
6. 配置环境变量(非常重要!)

每次打开新终端,你需要告诉系统 ROS 2 安装在哪里。为了省事,我们把它写入启动脚本 .bashrc 中。

bash 复制代码
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc

第三部分:如何验证及基本使用

安装完成后,我们来运行经典的"小海龟"仿真,验证系统是否正常,并体验如何控制。

1. 启动小海龟模拟器

打开一个新的终端,输入:

bash 复制代码
ros2 run turtlesim turtlesim_node

你应该会看到一个蓝色的窗口,中间有一只海龟。

  • ros2 run:运行节点的命令。

  • turtlesim:包名(Package)。

  • turtlesim_node:节点名(Node)。

2. 控制海龟移动

保持上面的窗口不关,打开第二个终端,输入:

Bash

复制代码
ros2 run turtlesim turtle_teleop_key

现在,确保你的鼠标焦点在第二个终端上,使用键盘的方向键(上下左右),你会发现第一只窗口里的海龟动起来了!

3. 理解发生了什么(可视化节点关系)

这是理解 ROS 最直观的一步。打开第三个终端,输入:

Bash

复制代码
rqt_graph

这会弹出一个流程图。你会看到:

  • 一个圆圈叫 /teleop_turtle(键盘节点)。

  • 一个圆圈叫 /turtlesim(显示节点)。

  • 中间有一条箭头线 /turtle1/cmd_vel(话题)。

这说明:键盘节点通过 /turtle1/cmd_vel 这个话题,把速度指令(Data)发送给了仿真器节点。


第四部分:针对你的目标(仿真与机械臂)的建议

既然你的目标是机械臂和仿真,安装完基础 ROS 2 后,你必须关注以下两个生态系统:

  1. MoveIt 2 (机械臂控制核心) MoveIt 是 ROS 中最强大的运动规划框架(避障、路径规划、抓取计算)。

    • 安装命令

      Bash

      复制代码
      sudo apt install ros-humble-moveit
  2. Gazebo (仿真环境) ROS 2 Humble 通常搭配 Gazebo FortressGazebo Classic (版本 11) 使用。这允许你在物理引擎中创建真实的机器人模型,在不依赖硬件的情况下测试算法。

    • 安装 ROS-Gazebo 接口

      Bash

      复制代码
      sudo apt install ros-humble-ros-gz

总结

你现在已经拥有了一个功能完备的机器人开发环境。

  1. 基础:ROS 2 Humble 已安装。

  2. 工具:构建工具 Colcon 已就绪。

  3. 验证:通过 Turtlesim 验证了通信。

相关推荐
薛定谔的猫19825 分钟前
十七、用 GPT2 中文对联模型实现经典上联自动对下联:
人工智能·深度学习·gpt2·大模型 训练 调优
壮Sir不壮16 分钟前
2026年奇点:Clawdbot引爆个人AI代理
人工智能·ai·大模型·claude·clawdbot·moltbot·openclaw
PaperRed ai写作降重助手25 分钟前
高性价比 AI 论文写作软件推荐:2026 年预算友好型
人工智能·aigc·论文·写作·ai写作·智能降重
玉梅小洋29 分钟前
Claude Code 从入门到精通(七):Sub Agent 与 Skill 终极PK
人工智能·ai·大模型·ai编程·claude·ai工具
-嘟囔着拯救世界-41 分钟前
【保姆级教程】Win11 下从零部署 Claude Code:本地环境配置 + VSCode 可视化界面全流程指南
人工智能·vscode·ai·编辑器·html5·ai编程·claude code
正见TrueView42 分钟前
程一笑的价值选择:AI金玉其外,“收割”老人败絮其中
人工智能
嵩山小老虎1 小时前
Windows 10/11 安装 WSL2 并配置 VSCode 开发环境(C 语言 / Linux API 适用)
linux·windows·vscode
Imm7771 小时前
中国知名的车膜品牌推荐几家
人工智能·python
风静如云1 小时前
Claude Code:进入dash模式
人工智能
TM1Club1 小时前
AI驱动的预测:新的竞争优势
大数据·人工智能·经验分享·金融·数据分析·自动化