view_dock.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 
3 # Copyright (c) 2015, Fetch Robotics Inc.
4 # Author: Michael Ferguson
5 
6 import copy
7 from math import cos, sin
8 
9 import rospy
10 import tf
11 from fetch_auto_dock_msgs.msg import DockActionFeedback
12 from geometry_msgs.msg import PoseStamped
13 from nav_msgs.msg import Path
14 
15 class ViewDock(object):
16 
17  def __init__(self, publish_tf=True):
18  rospy.init_node("view_dock")
19  rospy.Subscriber("dock/feedback", DockActionFeedback, self.callback)
20  self.publisher = rospy.Publisher("path", Path)
22  self.publish_tf = publish_tf
23 
24  def callback(self, msg):
25  # Publish TF for dock
26  if self.publish_tf:
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,
31  "dock",
32  msg.feedback.dock_pose.header.frame_id)
33  # Publish forward simulation of where current command will take robot
34  path = Path()
35  path.header.stamp = msg.feedback.dock_pose.header.stamp
36  path.header.frame_id = "base_link"
37  pose = PoseStamped()
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))
43  yaw = 0.0
44  for i in range(20):
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))
51  self.publisher.publish(path)
52 
53 if __name__ == "__main__":
54  v = ViewDock()
55  rospy.spin()
def __init__(self, publish_tf=True)
Definition: view_dock.py:17
def callback(self, msg)
Definition: view_dock.py:24


fetch_open_auto_dock
Author(s): Michael Ferguson, Griswald Brooks
autogenerated on Mon Feb 28 2022 22:21:37