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

时间:2019-04-01 15:04:34

标签: python python-3.x ros rospy

我尝试将机器人的抓取器位置映射到抓取器所持物体施加的阻力。我从一个主题订阅了抓手位置,从另一个主题订阅了阻力值。因为我要确保机械手的位置与该位置上的精确电阻值相对应。既然两者都是浮动消息,如何同步它们?请帮忙。

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

改进的格式

1 个答案:

答案 0 :(得分:1)

您可以在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)  

Reading More