8 import ar_track_alvar_msgs.msg
as ar_track_alvar_msgs
9 import yocs_msgs.msg
as yocs_msgs
14 if frame_id.startswith(
'/'):
21 Receives AR Pair Annotations from annotation server. 22 Configure yocs_ar_pair_tracking and publish TFs 29 self.
_pub_pair_list = rospy.Publisher(
'update_ar_pairs', yocs_msgs.ARPairList, latch=
True, queue_size=1)
34 param[
'tf_broadcast_freq'] = rospy.get_param(
'tf_broadcast_freq', 0.5)
35 param[
'ar_pair_baseline'] = rospy.get_param(
'ar_pair/baseline', 0.28)
36 param[
'ar_pair_target_offset'] = rospy.get_param(
'ar_pair/target_offset', 0.5)
37 param[
'ar_pair_global_prefix'] = rospy.get_param(
'ar_pair/global_prefix',
'global_marker')
38 param[
'ar_pair_target_postfix'] = rospy.get_param(
'ar_pair/global_postfix',
'target')
40 self.
loginfo(
"Target offset : %s"%param[
'ar_pair_target_offset'])
57 pair_list = yocs_msgs.ARPairList()
59 baseline = self.
param[
'ar_pair_baseline']
60 target_offset = self.
param[
'ar_pair_target_offset']
61 global_prefix = self.
param[
'ar_pair_global_prefix']
62 target_postfix = self.
param[
'ar_pair_target_postfix']
65 p = yocs_msgs.ARPair()
67 p.right_id = p.left_id - 3
69 p.target_offset = target_offset
70 p.target_frame = global_prefix +
'_' + str(marker.id) +
'_' + target_postfix
71 pair_list.pairs.append(p)
73 self._pub_pair_list.publish(pair_list)
78 global_prefix = self.
param[
'ar_pair_global_prefix']
79 target_postfix = self.
param[
'ar_pair_target_postfix']
80 target_offset = self.
param[
'ar_pair_target_offset']
83 parent_frame_id = global_prefix +
'_' + str(marker.id)
84 child_frame_id = parent_frame_id +
'_' + target_postfix
88 p = (0,0, target_offset)
89 q = tf.transformations.quaternion_from_euler(math.pi, 0, 0)
90 self._tf_broadcaster.sendTransform(p, q, rospy.Time.now(), child_frame_id , parent_frame_id)
94 global_prefix = self.
param[
'ar_pair_global_prefix']
96 parent_frame_id = marker.pose.header.frame_id
97 child_frame_id = global_prefix +
'_' + str(marker.id)
100 p = (marker.pose.pose.position.x,marker.pose.pose.position.y, marker.pose.pose.position.z)
101 q = (marker.pose.pose.orientation.x, marker.pose.pose.orientation.y, marker.pose.pose.orientation.z,marker.pose.pose.orientation.w)
102 self._tf_broadcaster.sendTransform(p, q, rospy.Time.now(), child_frame_id ,parent_frame_id)
106 rospy.loginfo(
'TrackerManager : ' + str(msg))
109 if self.
param[
'tf_broadcast_freq'] == 0:
112 hertz = 1 / self.
param[
'tf_broadcast_freq']
113 r = rospy.Rate(hertz)
114 while not rospy.is_shutdown():
def _init_variables(self)
def _process_global_pairs(self, msg)
def _publish_target_tfs(self)
def _notify_ar_pair_tracker(self)
def remove_leading_slash(frame_id)
def _publish_marker_tfs(self)