使用命令行工具进行自检
ROS 2包括一套用于自检ROS 2系统的命令行工具。 [Alyssa@9668]
用法 [Alyssa@9669]
工具的主要切入点是命令 ros2
,它本身有各种子命令,用于自检和处理节点、话题、服务等。 [Alyssa@9670]
要查看所有可用的子命令,请运行: [待校准@9671]
ros2 --help
可用的子命令示例包括: [待校准@9672]
daemon: 自检/配置ROS 2守护程序 [Alyssa@9673]
launch: 运行launch文件 [Alyssa@9674]
lifecycle: 具有托管生命周期的自检/管理节点 [Alyssa@9675]
msg: 自检
msg
类型 [Alyssa@9676]node: 自检ROS节点 [Alyssa@9677]
param: 在节点上自检/配置参数 [待校准@9678]
pkg: 自检ROS包 [待校准@9679]
run: 运行ROS节点 [Alyssa@9680]
security: 配置安全设置 [Alyssa@9681]
service: 自检/调用ROS服务 [Alyssa@9682]
srv: 自检
srv
类型 [待校准@9683]topic: 自检/发布ROS话题 [Alyssa@9684]
示例
为了使用命令行工具生成典型的说话者-监听者(talker-listener)示例,可以使用 topic
子命令发布和回显关于某个话题的消息。 [Alyssa@9686]
使用以下命令在一个终端中发布消息: [待校准@9687]
$ ros2 topic pub /chatter std_msgs/String "data: Hello world"
publisher: beginning loop
publishing std_msgs.msg.String(data='Hello world')
publishing std_msgs.msg.String(data='Hello world')
在另一个终端回显接收到的消息,命令如下: [Alyssa@9688]
$ ros2 topic echo /chatter
data: Hello world
data: Hello world
幕后花絮 [Alyssa@9689]
ROS 2使用分布式发现过程使节点相互连接。由于此过程有意地不使用集中发现机制 (如ROS 1中的ROS主机),因此ROS节点发现ROS图中所有其他参与者可能需要时间。因此,在后台有一个长期运行的守护程序,该守护程序存储有关ROS图的信息,以提供对查询的更快响应,例如节点名称列表。 [Alyssa@9690]
当首次使用相关命令行工具时,守护程序会自动启动。您可以运行 ros2 daemon --help
获得与守护程序交互的更多选项。 [Alyssa@9691]
实现 [Alyssa@9692]
ros2
命令的源代码可在 https://github.com/ros2/ros2cli 获取 [Alyssa@9693]
ros2
工具已经被实现为一个可以通过插件扩展的框架。例如,如果安装了 sros2
包,ros2
工具就会自动检测 sros2 包提供的 security
子命令。 [Alyssa@9694]