我真的不能明白我在做什么错。我试图从另一个方法的值对象..这是我的代码如何从其它方法获得的值对象在Python
#!/usr/bin/env python
class tracksendi():
def __init__(self):
rospy.on_shutdown(self.shutdown)
rospy.Subscriber('robotis/servo_head_pan_joint',
Float64, self.posisi_ax12_pan)
rospy.Subscriber('robotis/servo_head_tilt_joint',
Float64, self.posisi_ax12_tilt)
rospy.Subscriber('robotis/servo_right_elbow_joint',
Float64, self.posisi_ax12_elbow)
while not rospy.is_shutdown():
self.operasikan_servo()
rate.sleep()
def posisi_ax12_pan(self,pan):
self.posisi_pan_servo = pan.data
return
def posisi_ax12_tilt(self,tilt):
self.posisi_tilt_servo = tilt.data
return
def posisi_ax12_elbow(self,elbow):
self.posisi_elbow_data = elbow.data
return
def ambil_timestamp(self,waktu):
self.data_time_joint_states = waktu.header.stamp
return
def operasikan_servo(self):
# Lengan Kanan
try:
vektor_n_rs = self.posisi_pan_servo - self.posisi_tilt_servo
vektor_re_rs = self.posisi_tilt_servo - self.posisi_elbow_data
except KeyError:
pass
if __name__ == '__main__':
try:
tracksendi()
except rospy.ROSInterruptException:
pass
但是,我得到这个错误
vektor_n_rs = self.posisi_pan_servo - self.posisi_tilt_servo AttributeError: tracksendi instance has no attribute 'posisi_pan_servo'
这个问题如何解决???
注:
rospy.Subscriber( 'robotis/servo_head_pan_joint',Float64,self.posisi_ax12_pan)
rospy.Subscriber( 'robotis/servo_head_tilt_joint',Float64,self.posisi_ax12_tilt)
rospy.Subscriber( 'robotis/servo_right_elbow_joint',Float64,self.posisi_ax12_elbow)
rospy.Subscriber是一个行命令插入用于self.posisi_ax12_pan方法,self.posisi_ax12_tilt方法和self.posisi_ Float64数据ax12_elbow。