我尝试将机器人抓取器的位置映射到抓取器所握持的物体所施加的阻力。我预订了一个主题的抓取器位置,又订阅了另一个主题的阻力值,因为我想确保抓取器位置与该位置的确切阻力值相对应。鉴于两者都是浮动消息,如何同步它们?
self.sub1 = rospy.Subscriber("resistance", Float64, self.ard_callback) self.sub2 = rospy.Subscriber("gripperpos", Float64, self.grip_callback)
您可以TimeSynchronizer在中使用rospy。
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:
ApproximateTimeSynchronizer
ts = message_filters.ApproximateTimeSynchronizer([image_sub, info_sub], 1, 1)
阅读更多