Можно ли синхронизировать две темы в ROS одного и того же типа сообщения? - PullRequest
1 голос
/ 01 апреля 2019

Я пытаюсь сопоставить положение захвата робота с сопротивлением, оказываемым объектом, удерживаемым захватом. Я подписал позицию захвата из одной темы и значение сопротивления из другой темы. так как я хочу убедиться, что положение захвата соответствует точному значению сопротивления в этом положении. так как оба сообщения с плавающей точкой, как их синхронизировать? пожалуйста, помогите.

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

Улучшено форматирование

1 Ответ

1 голос
/ 01 апреля 2019

Вы можете использовать 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)  

Чтение Подробнее

...