#!/usr/bin/env python
import roslib
import rospy
import time
from nav_msgs.msg import Odometry
def position_callback(data):
global q2
q2=data.pose.pose.position.x
q1=data.pose.pose.position.y
q3=data.pose.pose.position.z
def position():
rospy.init_node('position', anonymous=True) #initialize the node"
rospy.Subscriber("odom", Odometry, position_callback)
if __name__ == '__main__':
try:
position()
print q2
rospy.spin()
except rospy.ROSInterruptException: pass
訪問變量我得到的錯誤是這樣的:從功能外蟒蛇
print q2
NameError: global name 'q2' is not defined
我定義爲q2
全局變量了。
no.i想要實際訪問值..不適合打印..我想在一些其他功能中使用此值。 – 2014-11-03 14:36:31
@RuthvikVaila,如果要在調用回調之前訪問變量,請將變量'q2'初始化爲表示空值的某個值。我相應地更新了答案。 – falsetru 2014-11-03 14:39:10