登录 注册
当前位置:主页 > 资源下载 > 49 > 订阅者专享项目:《GIMP完全指南——近乎涵盖所有内容》

订阅者专享项目:《GIMP完全指南——近乎涵盖所有内容》

  • 更新:2024-11-10 13:26:14
  • 大小:1.6MB
  • 推荐:★★★★★
  • 来源:网友上传分享
  • 类别:Ubuntu - 操作系统
  • 格式:PDF

资源介绍

3.4 订阅者程序 到目前为止,我们已经学习了一个发布消息的例程。当然, 这仅仅完成了与其他节点通过消息进行通信的一半工作。现在, 让我们看看一个节点如何订阅其他节点发布的消息 11 。 我们继续使用 turtlesim 作为测试平台,订阅 turtlesim_node 发布的/turtle1/pose 话题。这一话题的消息描述了海龟的位姿(位 置和朝向)。表 3.5 展示了一个订阅这些消息的简短的程序,并且 通过 ROS_INFO_STREAM 为我们输出到终端。尽管目前你已经对 这一程序的某些部分感到熟悉了,但这里还是有三个新的知识点。 编写回调函数 发布和订阅消息的一个重要的区别是订阅者节点 无法知道消息什么时候到达。为了应对这一事实,我们必须把响 应收到消息事件的代码放到回调函数里,ROS 每接收到一个新的 消息将调用一次这个函数。订阅者的回调函数类似于: void function_name(const package_name::type_name &msg) { . . . } 其中参数 package_name 和 type_name 和发布消息时的相同,它 们指明了我们想订阅的话题的消息类。回调函数的主体有权限访 问接收到消息的所有域,并以它认为合适的方式存储、使用或丢 弃接收到的数据。与往常一样,我们必须包含定义该类的头文件。 本例程中,回调函数接收类型为 turtlesim::Pose 的消息,所 11 http://wiki.ros.org/ROS/Tutorials/WritingPublisherSubscriber(c++)