在ROS中,结点是执行计算的进程。
我是这样理解的,机器人的运动可能包括了很多不同的计算机,比如轨迹规划可能来自中央调度,定位可能来自机器人工控机,运动控制的计算可能来自下位单片机,所以说,机器人的运动其实是一个多计算机系统相互连接的过程,不同的计算机通过通信协议来连接。而ROS就将这些不同的计算机抽象成了不同的结点,以此来模拟不同计算机之间相互通信的过程。
在ROS里面,结点实质上是一个可执行程序,它从一些地方获取信息,然后又向一些地方发送信息。管理结点的工具叫做结点管理器,结点管理器负责处理结点与结点之间的通信问题,没有结点管理器,结点将无法找到彼此。
运行ROS的流程是,先运行结点管理器,再运行相关的结点。
例如在海龟程序中,在命令窗输入命令
roscore
就是启动结点管理器,之后在另外两个命令窗分别输入
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
这就是打开了两个不同的结点。