跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表
C++AI算法

ROS 2 机器人运行指南:海龟仿真器与 ros2 run 命令详解

ROS 2 海龟仿真器启动流程、rqt 节点图分析及 ros2 run 命令格式详解。涵盖 turtlesim_node 与 turtle_teleop_key 的交互原理,以及 ros2 run 基础与完整格式的语法结构、参数含义及实际案例拆解。

不知所云发布于 2026/3/30更新于 2026/4/231 浏览
ROS 2 机器人运行指南:海龟仿真器与 ros2 run 命令详解

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

1、启动海龟仿真器节点

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

ros2 run turtlesim turtlesim_node

海龟仿真器界面

2、启动控制节点

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

ros2 run turtlesim turtle_teleop_key

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

海龟控制演示

3、ROS 节点分析工具 - rqt

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

rqt 工具界面

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

节点图界面

如果打开后节点图内容太小,可以使用鼠标滚轮滚动放大显示。点击 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折了解详情
  • 💰 8折买阿里云服务器限时8折购买
  • 🦞 5分钟部署阿里云小龙虾了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

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

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

更多推荐文章

查看全部
  • C++ 类与对象:封装特性实现与实战应用
  • Web 版 IM 聊天消息加密的三种算法实现方案
  • Java 初识面向对象:类与对象及封装核心
  • AI 编程技能(Skill)详解与 Java 方法生成实战
  • ctfshow-web257 PHP 反序列化漏洞分析与 Payload 构造
  • 基于 Java 的家政服务管理系统的设计与实现
  • C++ Qt 网络编程:QUdpSocket、QTcpSocket 与 Http 实战
  • Python 实现 2025 中秋月相计算与月球数据可视化
  • 昇腾 CANN 学习路径指南:Python、C++ 与算子开发选型
  • AI 安全:基于 PGD 的 Stable Diffusion 视觉提示词注入攻击
  • C++ STL 常用容器入门与使用指南
  • 使用 cpolar 内网穿透实现 OpenClaw 公网访问
  • FOC 电机控制深度解析:有感与无感原理及无人机应用
  • AI 辅助编程的边界探索:当 Copilot 学会写测试
  • 基于腾讯云轻量应用服务器部署 OpenClaw 并接入 QQ 与飞书机器人
  • 知网AIGC检测原理与降低疑似度策略
  • OpenClaw 腾讯云服务器部署与飞书对接实战
  • B 站网页版自动开启字幕用户脚本(2026 新版适配)
  • MCP+Skill 驱动的前端 JS 逆向自动化方案与工具实现
  • C++ 函数重载机制、调试技巧与性能优化

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

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

  • Mermaid 预览与可视化编辑

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

  • Base64 字符串编码/解码

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

  • Base64 文件转换器

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

  • Markdown转HTML

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