是否可以在相同消息类型的ROS中时间同步两个主题?

发布于 2021-01-29 15:03:25

我尝试将机器人抓取器的位置映射到抓取器所握持的物体所施加的阻力。我预订了一个主题的抓取器位置,又订阅了另一个主题的阻力值,因为我想确保抓取器位置与该位置的确切阻力值相对应。鉴于两者都是浮动消息,如何同步它们?

self.sub1 = rospy.Subscriber("resistance", Float64, self.ard_callback)
self.sub2 = rospy.Subscriber("gripperpos", Float64, self.grip_callback)
关注者
0
被浏览
52
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您可以TimeSynchronizer在中使用rospy

    这是一个订阅多个主题以同时获取数据的示例:

    import message_filters
    from sensor_msgs.msg import Image, CameraInfo
    
    def callback(image, camera_info):
      # Solve all of perception here...
    
    image_sub = message_filters.Subscriber('image', Image)
    info_sub = message_filters.Subscriber('camera_info', CameraInfo)
    
    ts = message_filters.TimeSynchronizer([image_sub, info_sub], 10)
    ts.registerCallback(callback)
    rospy.spin()
    

    如果您的问题没有解决,则ApproximateTimeSynchronizer不是TimeSynchronizer

    ts = message_filters.ApproximateTimeSynchronizer([image_sub, info_sub], 1, 1)
    

    阅读更多



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看