7 from math
import cos, sin
11 from fetch_auto_dock_msgs.msg
import DockActionFeedback
12 from geometry_msgs.msg
import PoseStamped
13 from nav_msgs.msg
import Path
18 rospy.init_node(
"view_dock")
19 rospy.Subscriber(
"dock/feedback", DockActionFeedback, self.
callback)
27 pose = msg.feedback.dock_pose.pose
28 self.
broadcaster.sendTransform((pose.position.x, pose.position.y, pose.position.z),
29 (pose.orientation.x, pose.orientation.y, pose.orientation.z, pose.orientation.w),
30 msg.feedback.dock_pose.header.stamp,
32 msg.feedback.dock_pose.header.frame_id)
35 path.header.stamp = msg.feedback.dock_pose.header.stamp
36 path.header.frame_id =
"base_link" 38 pose.header = path.header
39 pose.pose.position.x = 0
40 pose.pose.position.y = 0
41 pose.pose.orientation.w = 1.0
42 path.poses.append(copy.deepcopy(pose))
45 pose.pose.position.x += 0.1 * msg.feedback.command.linear.x * cos(yaw)
46 pose.pose.position.y += 0.1 * msg.feedback.command.linear.x * sin(yaw)
47 yaw += 0.1 * msg.feedback.command.angular.z
48 pose.pose.orientation.z = sin(yaw/2.0);
49 pose.pose.orientation.w = cos(yaw/2.0);
50 path.poses.append(copy.deepcopy(pose))
53 if __name__ ==
"__main__":
def __init__(self, publish_tf=True)