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

Is it possible to time synchronize two topics in ROS of same message type?

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

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

您可以在 rospy 中使用 TimeSynchronizer

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

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)  

Reading More