是否有可能在时间相同的消息类型的ROS同步两个议题是什么?(Is it possible to ti

2019-09-28 01:03发布

我尝试机器人夹持器位置映射到通过由夹具所保持的物体施加的阻力。 我订阅夹钳位置从一个话题,电阻值从另外一个话题,因为我想确保夹具位置对应于该位置的精确的电阻值。 由于两者都是浮动的消息,我怎么可以同步呢?

self.sub1 = rospy.Subscriber("resistance", Float64, self.ard_callback)
self.sub2 = rospy.Subscriber("gripperpos", Float64, self.grip_callback)

Answer 1:

你可以使用TimeSynchronizerrospy

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

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)  

阅读更多



文章来源: Is it possible to time synchronize two topics in ROS of same message type?