0
$\begingroup$

Rosanswers logo

I can't really understand what I'm doing wrong.. I try to get a value-object from another method.. this is my code

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

But, I get this error

vektor_n_rs = self.posisi_pan_servo - self.posisi_tilt_servo  

AttributeError: tracksendi instance has no attribute 'posisi_pan_servo'

How that problem solved ???


Originally posted by Rizqa on ROS Answers with karma: 45 on 2013-04-25

Post score: 0

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

Initialize all your variables in the init function. e.g. self.posisi_pan_servo = 0 etc.


Originally posted by ChickenSoup with karma: 387 on 2013-04-25

This answer was ACCEPTED on the original site

Post score: 1

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.