如何使用rospy.wait_for_消息

2024-09-27 19:24:28 发布

您现在位置:Python中文网/ 问答频道 /正文

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

while(continue):
        ponto_atual = rospy.wait_for_message('/uav1/control_manager/position_cmd',PositionCommand)
        print("a")
        continuar = comparar(ponto_desejado, ponto_atual)

Tags: 项目程序消息messageformanagerpositioncontrol
1条回答
网友
1楼 · 发布于 2024-09-27 19:24:28

您应该通过subscription对象处理接收多条主题消息的方式。{}的目的是捕获单个消息

在rospy中,设置非常简单。例如Bool主题的回调如下所示: rospy.Subscriber('/your_topic_name',Bool,callback_function)

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

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()

相关问题 更多 >

    热门问题