精通ROS机器人编程(原书第3版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3.1 ROS节点

ROS节点使用roscpp和rospy等ROS客户端库进行计算。

机器人可能包含许多节点。例如,一个节点处理摄像头图像,一个节点处理来自机器人的串行数据,一个节点计算里程计,等等。

使用节点可以使系统具有容错性。即使一个节点崩溃,整个机器人系统仍然可以工作。与整体代码相比,节点还可以降低复杂性并提高调试能力,因为每个节点只处理一个功能。

所有正在运行的节点都应该指定一个名称,以帮助我们识别它们。例如,/camera_node可以是广播摄像机图像的节点的名称。

rosbash工具用于检查ROS节点。rosnode命令可用于收集有关ROS节点的信息。以下是rosnode的用法。

●rosnode info [node_name]:打印有关节点的信息。

●rosnode kill [node_name]:强行终止正在运行的节点。

●rosnode list:列出正在运行的节点。

●rosnode machine [machine_name]:列出在特定机器或机器列表上运行的节点。

●rosnode ping:检查节点的连接情况。

●rosnode cleanup:清除无法访问的节点注册信息。

接下来,我们将查看一些使用roscpp客户端的示例节点,并讨论使用ROS主题、服务、消息和actionlib等功能的ROS节点是如何工作的。

图1.7 使用主题的节点间通信图