Go to the documentation of this file.00001
00002 from jsk_footstep_controller.msg import GroundContactState
00003 import rospy
00004 import numpy
00005 from math import pi
00006 global data_pitch
00007 global data_roll
00008 global data_z
00009 data_pitch = []
00010 data_roll = []
00011 data_z = []
00012 def callback(msg):
00013
00014
00015
00016
00017 data_pitch.append(msg.error_pitch_angle)
00018 data_roll.append(msg.error_roll_angle)
00019 data_z.append(msg.error_z)
00020 print "samples: %d" % len(data_pitch)
00021 print " pitch:"
00022 print " average: %f rad (%f deg)" % (numpy.average(data_pitch), numpy.average(data_pitch) / pi * 180)
00023 print " stddev: %f" % numpy.std(data_pitch)
00024 print " roll:"
00025 print " average: %f rad (%f deg)" % (numpy.average(data_roll), numpy.average(data_roll) / pi * 180)
00026 print " stddev: %f" % numpy.std(data_roll)
00027 print " z:"
00028 print " average: %f m" % (numpy.average(data_z))
00029 print " stddev: %f" % numpy.std(data_z)
00030
00031
00032 def main():
00033 s = rospy.Subscriber("/footcoords/contact_state", GroundContactState, callback)
00034 rospy.spin()
00035
00036 if __name__ == "__main__":
00037 rospy.init_node("contact_state_error")
00038 main()