我正在为一个有四个轮子的设备实现一个控制节点。到目前为止,我有以下节点:
TALKER:
--Publishes messages for movement of vehicle
LISTENER:
--Listens to messages for movement of vehicle and controls vehicle directly
这两个工作之间的通信,我唯一的问题是如果其中一个关闭以防止车辆不受控制的移动,该怎么办。ros::isShuttingDown()
调用 LISTENER 以便它检测到它何时将被杀死。
但是,如果 TALKER 关闭,则 LISTENER 会根据从 TALKER 收到的最后一条消息继续移动车辆。首先,我也尝试ros::isShuttingDown()
在 TALKER 中使用,以便向 LISTENER 发送最终的“停止”消息,但似乎一旦节点关闭,就无法进行通信。
因此,我正在寻找一种方法来检查 LISTENER 节点是否还活着(或者是否仍在接收新消息)。
任何人都知道如何查看节点(在本例中为 TALKER)是否还活着?或者有没有一种简单的方法来检测自收到最后一个 ROS 消息以来已经过了多长时间?