跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
C++AI

ROS 2 机器人运行与 ros2 run 命令详解

介绍 ROS 2 海龟仿真器的启动与控制方法,演示使用 rqt 工具分析节点图,并详细解析 ros2 run 命令的基础格式与完整格式,包括功能包定位、可执行文件启动及参数分离机制。

心动瞬间发布于 2026/4/5更新于 2026/5/2330 浏览
ROS 2 机器人运行与 ros2 run 命令详解

一、ROS 2 机器人示例 - 海龟仿真器

1、启动海龟仿真器节点

执行以下命令启动海龟仿真器节点:

ros2 run turtlesim turtlesim_node 

海龟仿真器界面

2、启动控制节点

在另一个命令行终端运行以下命令,可以通过键盘方向键控制海龟旋转移动:

ros2 run turtlesim turtle_teleop_key 

选中该命令行终端,使用左右箭头控制海龟方向,使用向上箭头控制前进,使用向下箭头控制后退。

控制节点界面

3、ROS 节点分析工具 - rqt

在终端一启动了海龟模拟器节点,在终端二启动了控制节点,可以通过上下左右箭头按键控制海龟左右旋转和前后移动。下面分析其中的控制过程。

在终端三输入以下命令,这是 ROS 2 提供的节点分析工具:

rqt 

rqt 工具界面

选择 rqt 工具中的 "Plugins / Introspection / Node Graph" 选项,这是 ROS 2 的节点图。

节点图

如果打开后节点图内容太小,可以使用鼠标滚轮滚动放大显示。点击 Fit 键后面的按钮,可以让节点图自适应填充满整个界面。

Fit 按钮

鼠标左键点击节点图中的元素,会变成如下样式:

  • 左侧的 /turtlesim 是海龟模拟器节点
  • 右侧的 /teleop_turtle 是键盘控制节点,右侧节点通过话题向左侧节点发送了控制命令 /turtle1/cmd_vel。

节点通信

二、ros2 run 命令解析

1、设计理念

ros2 run 命令是 ROS 2 命令行工具中用于启动单个功能包内可执行文件节点的核心子命令,其格式设计严格遵循 ROS 2"功能包 - 可执行文件 - 参数分离"的设计理念。

ros2 run 分为基础格式(仅启动可执行文件)和完整格式(含可执行文件参数 + ROS 层面参数),完整格式覆盖所有场景。

ros2 run 的核心逻辑是"定位功能包 -> 找到可执行文件 -> 启动并接入 ROS 2 通信",其格式设计的关键是分离"可执行文件自身参数"和"ROS 层面参数"(通过 --ros-args 分隔)。

掌握该格式的核心是:明确必选部分的匹配规则、可选部分的顺序要求,以及参数解析的边界。

2、ros2 run 基础格式

ros2 run 基础格式 命令格式如下:

ros2 run <package_name> <executable_name>
  • **ros2 参数:**ROS 2 命令行入口,所有 ROS 2 终端操作的统一前缀(加载 ROS 2 核心工具链、DDS 通信层)。
  • **run 参数:**ros2 的子命令,功能是:
    • 查找功能包: 查找系统/本地工作空间中已安装的 <package_name>;
    • 定位可执行: 定位该功能包内编译生成的 <executable_name>;
    • 启动执行: 启动该可执行文件,并自动接入 ROS 2 通信系统(成为 ROS 2 节点)。
  • **<package_name> 参数:**功能包名称;
    • 功能包来源: 已通过 colcon build 编译(本地工作空间)或 apt install 安装(系统级);
    • 命名规范: 遵循 ROS 2 命名规范(小写字母 + 下划线,如 turtlesim、my_robot_pkg)。
  • **<executable_name> 参数:**是功能包下的编译生成的可执行文件名称;
    • 配置位置: 是 CMakeLists.txt/setup.py 中声明的可执行目标名。

3、ros2 run 完整格式

ros2 run 完整格式 命令格式如下:

ros2 run <package_name> <executable_name> [executable_args...] [--ros-args <ros_args...>]
  • **<> 符号:**表示该参数是必选参数,需替换为实际值,最终不保留尖括号。
  • **[] 符号:**表示该参数是可选参数,可省略。
  • **... 符号:**表示该参数是可重复参数,多个值用空格分隔。
  • **[executable_args...] 参数:**该参数是传给可执行文件自身的参数,非 ROS 层面参数,由可执行文件的代码解析,ROS 2 CLI 不处理,一般都是自定义节点的配置文件路径、阈值、模式等。
  • **[--ros-args <ros_args...>] 参数:**该参数是 ROS 2 层面的参数配置(核心分隔符),--ros-args 之后的所有参数均由 ROS 2 核心解析,而非传给可执行文件。常用子参数如下:
    • --remap 参数:重映射(节点名、命名空间、话题/服务名);
    • --log-level 参数:设置日志等级(DEBUG/INFO/WARN/ERROR/FATAL);
    • --param 参数:设置节点参数(需节点支持);
    • --env 参数:设置节点运行的环境变量。

4、启动海龟仿真器命令分析

以启动海龟模拟器的命令参数为例进行分析:

ros2 run turtlesim turtlesim_node 
  • **ros2 参数:**是 ROS 2 核心命令行入口,所有 ROS 2 终端操作均以该关键词开头(如 ros2 node/ros2 topic)。
  • **run 参数:**是 ros2 的子命令,功能是从指定功能包中找到并运行对应的可执行文件(本质是启动一个 ROS 2 节点)。
  • **turtlesim 参数:**是功能包名称(package name),turtlesim 是 ROS 2 内置的示例功能包,封装了海龟仿真器的所有代码(包括节点、话题、服务、动作等逻辑)。
  • **turtlesim_node 参数:**是可执行文件名称(executable name),turtlesim 功能包中编译生成的可执行文件,运行后会启动海龟仿真器的核心节点。

目录

  1. 一、ROS 2 机器人示例 - 海龟仿真器
  2. 1、启动海龟仿真器节点
  3. 2、启动控制节点
  4. 3、ROS 节点分析工具 - rqt
  5. 二、ros2 run 命令解析
  6. 1、设计理念
  7. 2、ros2 run 基础格式
  8. 3、ros2 run 完整格式
  9. 4、启动海龟仿真器命令分析
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Visual C++运行库修复指南:解决程序启动失败问题
  • Roo Code 深度上手指南:API 配置与实战应用
  • 基于SpringBoot和Vue的制造装备物联及生产管理系统
  • Go 语言实现经典 Ripple Adder 涟波加法器算法
  • 解密 Copilot:如何打造高效的 AI 原生应用
  • Dify 与 MySQL 深度整合:基于 MCP 协议的数据交互实践
  • Gradle 增量式构建原理与实战
  • 基于 AI 工具与 Astro 的开源官网重构实践
  • MySQL 数据库三大范式详解
  • Midjourney AI 图像生成器使用教程详解
  • C/C++ 错误处理机制与常用函数详解
  • Web 开发者转型 AI:多模态 Agent 图像识别 Skills 全栈实战
  • Python 环境配置及 pip 安装指南
  • HarmonyOS RcList 组件缩略图、角标与图标系统设计
  • 前端团队协作最佳实践
  • CTFShow Web 入门:文件上传漏洞实战
  • AIGC 时代的网络安全威胁与应急响应机制构建
  • RabbitMQ 分布式系统实战:从安装部署到 C++ 客户端开发
  • OpenClaw 新手指南:AI 机器人搭建与配置
  • 银河麒麟及 Linux 系统下 MySQL 8.0 安装部署指南

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online