Skip to content

Commit 6eae17e

Browse files
Merge pull request #29 from AlexeyMerzlyakov/trackers-dev
KF Hungarian Node bugfixes
2 parents 38d5a1c + 0ad6d11 commit 6eae17e

File tree

1 file changed

+17
-7
lines changed

1 file changed

+17
-7
lines changed

kf_hungarian_tracker/kf_hungarian_tracker/kf_hungarian_node.py

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import colorsys
1111
from kf_hungarian_tracker.obstacle_class import ObstacleClass
1212

13-
from tf2_ros import LookupException
13+
from tf2_ros import TransformException
1414
from tf2_ros.buffer import Buffer
1515
from tf2_ros.transform_listener import TransformListener
1616
from tf2_geometry_msgs import do_transform_point, do_transform_vector3
@@ -70,7 +70,7 @@ def __init__(self):
7070

7171
# publisher for tracking result
7272
self.tracker_obstacle_pub = self.create_publisher(ObstacleArray, 'tracking', 10)
73-
self.tracker_marker_pub = self.create_publisher(MarkerArray, 'marker', 10)
73+
self.tracker_marker_pub = self.create_publisher(MarkerArray, 'tracking_marker', 10)
7474

7575
# setup tf related
7676
self.tf_buffer = Buffer()
@@ -98,7 +98,15 @@ def callback(self, msg):
9898
try:
9999
trans = self.tf_buffer.lookup_transform(self.global_frame, msg.header.frame_id, rclpy.time.Time())
100100
msg.header.frame_id = self.global_frame
101+
# do_transform_vector3(vector, trans) resets trans.transform.translation
102+
# values to 0.0, so we need to preserve them for future usage in the loop below
103+
translation_backup_x = trans.transform.translation.x
104+
translation_backup_y = trans.transform.translation.y
105+
translation_backup_z = trans.transform.translation.z
101106
for i in range(len(detections)):
107+
trans.transform.translation.x = translation_backup_x
108+
trans.transform.translation.y = translation_backup_y
109+
trans.transform.translation.z = translation_backup_z
102110
# transform position (point)
103111
p = PointStamped()
104112
p.point = detections[i].position
@@ -112,8 +120,10 @@ def callback(self, msg):
112120
s.vector = detections[i].size
113121
detections[i].size = do_transform_vector3(s, trans).vector
114122

115-
except LookupException:
116-
self.get_logger().info('fail to get tf from {} to {}'.format(msg.header.frame_id, self.global_frame))
123+
except TransformException as ex:
124+
self.get_logger().error(
125+
'fail to get tf from {} to {}: {}'.format(
126+
msg.header.frame_id, self.global_frame, ex))
117127
return
118128

119129
# hungarian matching
@@ -204,15 +214,15 @@ def callback(self, msg):
204214
arrow.scale.z = 0.05
205215
marker_list.append(arrow)
206216
# add dead obstacles to delete in rviz
207-
for uuid in dead_object_list:
217+
for dead_uuid in dead_object_list:
208218
marker = Marker()
209219
marker.header = msg.header
210-
marker.ns = str(uuid)
220+
marker.ns = str(dead_uuid)
211221
marker.id = 0
212222
marker.action = 2 # delete
213223
arrow = Marker()
214224
arrow.header = msg.header
215-
arrow.ns = str(uuid)
225+
arrow.ns = str(dead_uuid)
216226
arrow.id = 1
217227
arrow.action = 2
218228
marker_list.append(marker)

0 commit comments

Comments
 (0)