23 from nav_msgs.msg
import Odometry
24 from geometry_msgs.msg
import PoseWithCovariance, Pose, Point, Quaternion
25 from final_assignment.srv
import check_position, check_positionRequest, check_positionResponse
32 node_name =
"check_position"
38 name_check_position =
"/check_position"
61 to_return = check_positionResponse( )
64 to_return.reached =
False
65 to_return.success =
True
66 to_return.actual_position = actual_pose.position
67 to_return.distance = -1
71 to_return.distance = ( ( target.x - actual_pose.position.x )**2 + ( target.y - actual_pose.position.y )**2 )
72 to_return.reached = ( to_return.distance <= data.tol )
73 to_return.success =
True
74 to_return.actual_position = actual_pose.position
76 to_return.reached =
False
77 to_return.success =
False
78 to_return.actual_position = actual_pose.position
79 to_return.distance = -1
94 actual_pose = data.pose.pose
107 if __name__ ==
"__main__":
108 rospy.init_node( node_name )
111 rospy.loginfo(
" [check_position] topic (sub) %s ...", name_odom )
112 topic_odom = rospy.Subscriber( name_odom, Odometry, get_odom_from_topic )
113 rospy.loginfo(
" [check_position] topic (sub) %s ... OK", name_odom )
116 rospy.loginfo(
" [check_position] advertising %s ...", name_check_position )
117 rospy.Service( name_check_position, check_position, srv_check_position )
118 rospy.loginfo(
" [check_position] advertising %s ... OK", name_check_position )
def srv_check_position(data)
Implementation of the service check_position
def get_odom_from_topic(data)
Store the actual pose.