contact_state_error.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 from jsk_footstep_controller.msg import GroundContactState
3 import rospy
4 import numpy
5 from math import pi
6 global data_pitch
7 global data_roll
8 global data_z
9 data_pitch = []
10 data_roll = []
11 data_z = []
12 def callback(msg):
13  # if msg.contact_state == GroundContactState.CONTACT_BOTH_GROUND:
14  # print "ok"
15  # else:
16  # print "no"
17  data_pitch.append(msg.error_pitch_angle)
18  data_roll.append(msg.error_roll_angle)
19  data_z.append(msg.error_z)
20  print("samples: %d" % len(data_pitch))
21  print(" pitch:")
22  print(" average: %f rad (%f deg)" % (numpy.average(data_pitch), numpy.average(data_pitch) / pi * 180))
23  print(" stddev: %f" % numpy.std(data_pitch))
24  print(" roll:")
25  print(" average: %f rad (%f deg)" % (numpy.average(data_roll), numpy.average(data_roll) / pi * 180))
26  print(" stddev: %f" % numpy.std(data_roll))
27  print(" z:")
28  print(" average: %f m" % (numpy.average(data_z)))
29  print(" stddev: %f" % numpy.std(data_z))
30 
31 
32 def main():
33  s = rospy.Subscriber("/footcoords/contact_state", GroundContactState, callback)
34  rospy.spin()
35 
36 if __name__ == "__main__":
37  rospy.init_node("contact_state_error")
38  main()


jsk_footstep_controller
Author(s):
autogenerated on Fri May 14 2021 02:52:04