test_gyro.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 
3 # Software License Agreement (BSD License)
4 #
5 # Copyright (c) 2012, Yujin Robot
6 # All rights reserved.
7 #
8 # Redistribution and use in source and binary forms, with or without
9 # modification, are permitted provided that the following conditions
10 # are met:
11 #
12 # * Redistributions of source code must retain the above copyright
13 # notice, this list of conditions and the following disclaimer.
14 # * Redistributions in binary form must reproduce the above
15 # copyright notice, this list of conditions and the following
16 # disclaimer in the documentation and/or other materials provided
17 # with the distribution.
18 # * Neither the name of the Yujin Robot nor the names of its
19 # contributors may be used to endorse or promote products derived
20 # from this software without specific prior written permission.
21 #
22 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
25 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
26 # COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
27 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
28 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
29 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
30 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
32 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33 # POSSIBILITY OF SUCH DAMAGE.
34 #
35 # Continuously print angle and angular velocity from Imu messages
36 
37 
38 import roslib; roslib.load_manifest('kobuki_testsuite')
39 import rospy
40 import sys
41 
42 from tf.transformations import euler_from_quaternion
43 from math import degrees
44 
45 from sensor_msgs.msg import Imu
46 from geometry_msgs.msg import Quaternion
47 
48 
49 def ImuCallback(data):
50  quat = data.orientation
51  q = [quat.x, quat.y, quat.z, quat.w]
52  roll, pitch, yaw = euler_from_quaternion(q)
53  sys.stdout.write("\r\033[1mGyro Angle\033[0m: [" + "{0:+.4f}".format(yaw) + " rad] ["\
54  + "{0: >+7.2f}".format(degrees(yaw)) + " deg]"\
55  + " \033[1mRate\033[0m: [" + "{0:+.4f}".format(data.angular_velocity.z) + " rad/s] ["\
56  + "{0: >+7.2f}".format(degrees(data.angular_velocity.z)) + " deg/s] ")
57  # http://docs.python.org/library/string.html#formatexamples
58  sys.stdout.flush()
59 
60 rospy.init_node("test_gyro")
61 rospy.Subscriber("/mobile_base/sensors/imu_data", Imu, ImuCallback)
62 rospy.spin()
63 print '' # for clean output
def ImuCallback(data)
Definition: test_gyro.py:49


kobuki_testsuite
Author(s): Jorge Santos Simon
autogenerated on Mon Jun 10 2019 13:45:22