我尝试将机器人抓手的位置映射到抓手所持物体所施加的阻力。我从一个主题订阅了抓手位置,从另一个主题订阅了阻力值,因为我想确保抓手位置对应于该位置的确切阻力值。鉴于两者都是浮动消息,我该如何同步它们?
self.sub1 = rospy.Subscriber("resistance", Float64, self.ard_callback)
self.sub2 = rospy.Subscriber("gripperpos", Float64, self.grip_callback)
我尝试将机器人抓手的位置映射到抓手所持物体所施加的阻力。我从一个主题订阅了抓手位置,从另一个主题订阅了阻力值,因为我想确保抓手位置对应于该位置的确切阻力值。鉴于两者都是浮动消息,我该如何同步它们?
self.sub1 = rospy.Subscriber("resistance", Float64, self.ard_callback)
self.sub2 = rospy.Subscriber("gripperpos", Float64, self.grip_callback)
你可以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)