Python ROS服务和信息
我正在使用ROS系统,我是一个初学者。 我在ROS中遇到了服务和消息(srv和MSG)。从roswiki中,我了解到msg用于定义传递的消息类型,而服务是关于请求和响应的。如果我弄错了,请纠正我 然而,我无法理解何时使用它们。我认为如果我用Python编写C++和其他处理模块的模块可能会很有用,也许我可以使用SRV和MSGS来实现这2个模块之间的通信。然而,than ROS也有发布者和订阅者系统,可以使用它们来代替Python ROS服务和信息,python,c++,robotics,ros,Python,C++,Robotics,Ros,我正在使用ROS系统,我是一个初学者。 我在ROS中遇到了服务和消息(srv和MSG)。从roswiki中,我了解到msg用于定义传递的消息类型,而服务是关于请求和响应的。如果我弄错了,请纠正我 然而,我无法理解何时使用它们。我认为如果我用Python编写C++和其他处理模块的模块可能会很有用,也许我可以使用SRV和MSGS来实现这2个模块之间的通信。然而,than ROS也有发布者和订阅者系统,可以使用它们来代替 其次,当我们使用srv时,我们不仅需要定义MSG,还需要定义可以独立使用的MSG
其次,当我们使用srv时,我们不仅需要定义MSG,还需要定义可以独立使用的MSG?首先,让我向您指出: 这是
Ros
给出的第一个例子
发布者和订阅者是用于实现节点交互的实体。发布者将消息发布到某个频道,而订阅者收听此类频道以获取可能由发布者发送的消息。发布者使用消息发布到频道,消息中包含不同类型的数据,具体取决于试图实现的内容。订阅者接收这些消息并自动执行回调函数
,以实现对数据有用的功能
现在让我在这里指出:
这是一个类似的例子,但这一次,服务用于实现通信。消息的情况是,一旦节点发布了消息,整个通信过程就结束了,节点将继续其剩余的工作。另一方面,客户端(使用服务)与服务器通信;他们将消息发布到服务器,然后等待该服务器的响应
示例:
如果您确保了解一个包含消息的简单程序和一个包含服务的简单程序,那么您可以通过创建示例来扩展您的知识,如上面所示。只有这样,你才能完全掌握它的全部细节。首先,让我在这里告诉你: 这是
Ros
给出的第一个例子
发布者和订阅者是用于实现节点交互的实体。发布者将消息发布到某个频道,而订阅者收听此类频道以获取可能由发布者发送的消息。发布者使用消息发布到频道,消息中包含不同类型的数据,具体取决于试图实现的内容。订阅者接收这些消息并自动执行回调函数
,以实现对数据有用的功能
现在让我在这里指出:
这是一个类似的例子,但这一次,服务用于实现通信。消息的情况是,一旦节点发布了消息,整个通信过程就结束了,节点将继续其剩余的工作。另一方面,客户端(使用服务)与服务器通信;他们将消息发布到服务器,然后等待该服务器的响应
示例:
如果您确保了解一个包含消息的简单程序和一个包含服务的简单程序,那么您可以通过创建示例来扩展您的知识,如上面所示。只有这样,你才能完全掌握它的全部细节。ROS发布/订阅是多对多(就连接而言)和单向的 数据传输。它是异步的,这意味着您的代码不会阻塞,您需要实现一个异步操作的回调函数 另一方面,ROS服务是同步的和一对一的双向数据传输,这意味着客户端阻塞并等待服务器的响应 考虑以下情况: