Go to the documentation of this file.00001
00002 import roslib; roslib.load_manifest('iri_laser_icp')
00003 import rospy
00004 import os
00005 import sys
00006 from iri_laser_icp.srv import *
00007 from sensor_msgs.msg import LaserScan
00008 from geometry_msgs.msg import PoseWithCovarianceStamped
00009
00010
00011 class test_laser_icp:
00012
00013 def __init__(self):
00014 rospy.loginfo("initiating node...")
00015 rospy.init_node('test_laser_icp', anonymous=True)
00016 self.scan_subs = rospy.Subscriber("scan", LaserScan, self.callback)
00017 self.first = True
00018 self.pose = PoseWithCovarianceStamped()
00019 self.scan1 = LaserScan()
00020 self.scan2 = LaserScan()
00021
00022 def get_pose_client(self):
00023 rospy.loginfo("waiting to get service...")
00024 rospy.wait_for_service('test_icp_server/get_relative_pose')
00025 try:
00026 get_pose = rospy.ServiceProxy('test_icp_server/get_relative_pose', GetRelativePose)
00027 respose = get_pose(self.scan1, self.scan2)
00028 self.pose = respose.pose_rel
00029 except rospy.ServiceException, e:
00030 print "Service call failed: %s"%e
00031
00032 def callback(self, laserscan):
00033 rospy.loginfo("le callback")
00034 if(self.first):
00035 self.scan1 = laserscan
00036 self.first = False
00037 else:
00038 self.scan2 = laserscan
00039 self.get_pose_client()
00040 rospy.loginfo(" Pose: x,y %f %f ",self.pose.pose.pose.position.x,self.pose.pose.pose.position.y)
00041 self.scan1 = self.scan2
00042
00043 def main(args):
00044 li = test_laser_icp()
00045 try:
00046 rospy.spin()
00047 except KeyboardInterrupt:
00048 print "Shutting down"
00049
00050 if __name__ == '__main__':
00051 main(sys.argv)
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127