一、ROS 2 机器人示例 - 海龟仿真器
1、启动海龟仿真器节点
执行以下命令启动海龟仿真器节点:
ros2 run turtlesim turtlesim_node
2、启动控制节点
在另一个命令行终端运行以下命令,可以通过键盘方向键控制海龟旋转移动:
ros2 run turtlesim turtle_teleop_key
选中该命令行终端,使用左右箭头控制海龟方向,使用向上箭头控制前进,使用向下箭头控制后退。
3、ROS 节点分析工具 - 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>参数:**是功能包下的编译生成的可执行文件名称;


