2015-04-27 1 views
0

Я пишу плагин в ROS на основе python, поэтому, когда я запускаю пакет и нажимаю кнопку в моем графическом интерфейсе, он будет рекламировать целочисленное значение 1 в обратном вызове get_queue, сигнализируя true. Я определяю обратный вызов, как:Реклама целое на обратном вызове python

Защиту getqueue_cb (Я):

self.get_queue_pub.publish (1)

и выше в коде у меня есть:

self.get_queue_pub = rospy.Publisher ('get_queue', int (1), queue_size = 10)

Когда я запускаю пакет в ROS, он глючит. Когда я комментирую вторую часть кода, которую я написал здесь, остальная часть графического интерфейса появляется и работает нормально. Я чувствую, что моя проблема связана с синтаксисом целых чисел. Дай мне знать, что я делаю неправильно, если сможешь.

+0

Привет, мне интересно, если мой мой ответ решил вашу проблему. Если да, пожалуйста, примите ответ (см. Также [здесь] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work), а если нет, было бы неплохо уйти некоторые комментарии, что это не сработало. Это помогает нам организовать этот сайт, как я и другие пользователи могут видеть, если проблема решена или если по-прежнему нужна помощь. (И последнее, но не менее важное: это дает мне некоторые если мой ответ был верным) – luator

ответ

0

Вы не можете публиковать целые числа напрямую, но вам нужно использовать одно из «целочисленных сообщений», определенное в std_msgs. Попробуйте следующее:

from std_msgs.msg import Int32 
self.get_queue_pub = rospy.Publisher('get_queue', Int32, queue_size=10) 

(Второй аргумент Publisher ожидает тип сообщения, а не фактическое значение.)

+0

Это сработало. Большое вам спасибо. – deciduoustiger

 Смежные вопросы

  • Нет связанных вопросов^_^