#!/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