首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用rospy.wait_for_message

如何使用rospy.wait_for_message
EN

Stack Overflow用户
提问于 2021-08-10 00:27:54
回答 1查看 1.9K关注 0票数 0

我正在为一个项目使用rospy,但是我并不完全理解如何获取消息。我让无人机每秒发送一条特定的消息,但当我试图获取消息时,程序就卡住了(从不打印"a")。我做错了什么?

代码语言:javascript
复制
while(continue):
        ponto_atual = rospy.wait_for_message('/uav1/control_manager/position_cmd',PositionCommand)
        print("a")
        continuar = comparar(ponto_desejado, ponto_atual)
EN

回答 1

Stack Overflow用户

发布于 2021-08-10 14:00:35

您应该通过subscription对象来处理接收关于一个主题的多条消息。wait_for_message的目的是抓取一条消息。

在rospy中,它很容易设置。例如,Bool主题的回调如下所示:rospy.Subscriber('/your_topic_name',Bool,callback_function)

现在,每次在/your_topic_name上发送消息时,都会调用函数callback_function。更完整的示例如下所示:

代码语言:javascript
复制
def callback_function(msg):
    ponto_atual = msg.data
    rospy.loginfo("I received a message!")
    #Anything else you may want to do here

def run_loop():
    rate = rospy.Rate(10.0) #Run at 10Hz
    while not rospy.is_shutdown():
        self.rate.sleep()
        #Other periodic work you may need to do

if __name__ == '__main__':
    rospy.init_node('my_node')
    rospy.Subscriber('/your_topic_name',Bool,callback_function)
    run_loop()
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68719879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档