1. 学习目标
-
ROS2 程序运行在什么环境中
-
ROS2 系统如何启动和管理
-
ROS2 常用命令行工具是什么
2. ROS2 运行环境
2.1 ROS2 运行在什么系统上
ROS2 通常运行在 Linux 系统上。
最常见的开发环境是:
Ubuntu + ROS2
例如:
Ubuntu 22.04 + ROS2 Humble
Ubuntu 20.04 + ROS2 Foxy
系统结构如下:
机器人应用
↓
ROS2框架
↓
Linux系统
简单解释:
Linux = 操作系统
ROS2 = 机器人软件框架
机器人程序 = ROS2 应用
因此:
ROS2 本质上是 运行在 Linux 上的软件框架。
2.2 ROS2 安装
安装 ROS2 通常使用 APT 包管理器。
例如在 Ubuntu 上安装 ROS2:
sudo apt install ros-humble-desktop
安装完成后,需要加载 ROS2 环境:
source /opt/ros/humble/setup.bash
为了每次终端自动加载,可以写入:
~/.bashrc
例如:
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
之后重新打开终端,ROS2 环境就会自动加载。
3. ROS2 命令行工具
ROS2 提供了非常强大的 命令行工具(CLI)。
CLI 可以帮助我们:
-
查看系统状态
-
调试节点
-
发送消息
-
管理系统
ROS2 所有命令都以:
ros2
开头。
3.1 查看节点(Node)
查看系统中正在运行的节点:
ros2 node list
输出示例:
/talker
listener
查看节点详细信息:
ros2 node info /talker
可以看到:
-
发布的话题
-
订阅的话题
-
服务
3.2 查看 Topic
查看系统中的话题:
ros2 topic list
示例输出:
/chatter
/scan
/cmd_vel
查看话题类型:
ros2 topic type /chatter
查看话题数据:
ros2 topic echo /chatter
查看发布频率:
ros2 topic hz /chatter
3.3 查看 Service
查看系统中的服务:
ros2 service list
示例:
/rpset_map
/spawn_entity
查看服务类型:
ros2 service type /reset_map
调用服务:
ros2 service call
3.4 查看 Action
Action 通常用于 长时间任务。
查看系统中的 Action:
ros2 action list
查看 Action 类型:
ros2 action info
4. ROS2 系统运行示例
ROS2 官方提供一个最经典的例子:
talker / listener
talker 负责发布消息:
Hello World
listener 负责接收消息。
系统结构:
+-------------+
| talker |
| publisher |
+-------------+
|
| Topic: /chatter
v
+-------------+
| listener |
| subscriber |
+-------------+
运行示例:
启动 talker:
ros2 run demo_nodes_cpp talker
启动 listener:
ros2 run demo_nodes_cpp listener
此时 listener 会不断接收到:
Hello World
5. ROS2 CLI 工具总结
ROS2 最常用的 CLI 命令:
ros2 node list
ros2 topic list
ros2 service list
ros2 action list
调试命令:
ros2 topic echo
ros2 topic hz
ros2 node info
这些命令是 ROS2 开发中最常使用的工具。
6. 总结
ROS2 开发环境包含三个核心部分:
Linux 系统
ROS2 框架
ROS2 CLI 工具
开发者通常通过 CLI 工具 来:
查看节点
查看话题
调试系统
发送消息
掌握 CLI 工具后,就可以开始编写 ROS2 程序。
7. Q&A
-
ROS2 为什么需要 Linux 环境?
-
ROS2 CLI 工具解决什么问题?
-
为什么 ROS 系统需要大量调试工具?