gpt4 book ai didi

ros - 如何在rosnode中将值从一个订阅者的回调函数传递给另一个订阅者

转载 作者:行者123 更新时间:2023-12-04 10:59:03 26 4
gpt4 key购买 nike

我的问题是如何将一个值从一个订阅者的回调函数传递给另一个订阅者。

这有意义吗?

import rospy
from sensor_msgs.msg import LaserScan, Int32
from xxx2.msg import xxyy2

global x
x = None

def callback2(data):
x=data[0]

def callback(data):
if x > data.ranges[0]:
print("nice")


rospy.Subscriber("/scan", LaserScan, callback)
rospy.Subscriber("topic", xxyy2, callback2)
rospy.spin()

最佳答案

您可以“传递”变量 x到两个回调,因为你可以将它传递给任何其他函数,通过制作 x以您的方式或通过制作全局化 x以及允许您访问它们的类的回调函数成员。

默认情况下,回调是按顺序调用的,因此在这种情况下您无需担心竞争条件。

根据您的用例,您可以将回调与 message filters 同步如果需要的话。

关于ros - 如何在rosnode中将值从一个订阅者的回调函数传递给另一个订阅者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58952416/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com