【发布时间】:2021-12-19 06:14:57
【问题描述】:
import rospy
from sensor_msgs.msg import Imu
class ImuData:
def __init__(self):
#self.data = None
pass
def get_observation(self):
rospy.Subscriber('/imu', Imu, self.imu_callback)
imuData = self.data
print(imuData)
def imu_callback(self, msg):
self.data = msg.orientation
print(self.data)
if __name__ == '__main__':
rospy.init_node('gett_imu', anonymous= True)
idd = ImuData()
idd.get_observation()
在上面的代码中,我想从get_observation函数访问imu_callback中定义的self.data。问题是我收到错误消息说ImuData 没有属性data。
我该如何解决这个问题?
注意:我觉得这个问题与 python 类有关,与 Ros 和 rospy 无关。
【问题讨论】:
-
如果您在调用
imu_callback之前先调用get_observation,就会发生这种情况。出于这个原因,在__init__之外初始化属性通常是个坏主意。
标签: python-3.x python-3.7 ros python-3.8 rospy