38 import roslib; roslib.load_manifest(
'rcprg_gazebo_utils')
49 def __init__(self, link_name, frame_id, retry):
56 self.
_br = tf2_ros.TransformBroadcaster()
59 while not rospy.is_shutdown():
60 req = GetLinkStateRequest()
62 req.reference_frame =
"world" 68 except rospy.exceptions.ROSException
as e:
70 print "Could not connect to ROS service " + self.
_service_name +
", retrying..." 72 print(
'GazeboTfPublisher: Terminating')
77 except rospy.service.ServiceException
as e:
80 print "Could not call to ROS service " + self.
_service_name +
", retrying..." 83 if resp.success ==
False:
84 print "success:", resp.success,
", status:", resp.status_message
86 t = TransformStamped()
87 t.header.stamp = rospy.Time.now()
88 t.header.frame_id =
"world" 90 t.transform.translation.x = resp.link_state.pose.position.x
91 t.transform.translation.y = resp.link_state.pose.position.y
92 t.transform.translation.z = resp.link_state.pose.position.z
93 t.transform.rotation = resp.link_state.pose.orientation
94 self.
_br.sendTransform(t)
101 print "usage: gazebo_publish_ros_tf_object model_name::link_name frame_id" 103 if __name__ ==
"__main__":
105 rospy.init_node(
'gazebo_publish_ros_tf_object', anonymous=
True)
109 link_name = rospy.get_param(
"~link_name")
110 frame_id = rospy.get_param(
"~frame_id")
111 retry = bool(rospy.get_param(
"~retry",
True))
112 except KeyError
as e:
113 print "Some ROS parameters are not provided:" 117 if len(sys.argv) != 3:
def __init__(self, link_name, frame_id, retry)