Skip to content

Commit 8f9e77b

Browse files
committed
Feature/update noisy tf (#37)
* only trigger ci on main for now * add parameter to control noise and fix shutdown behavior
1 parent 4cc0a7c commit 8f9e77b

File tree

2 files changed

+15
-8
lines changed

2 files changed

+15
-8
lines changed

.github/workflows/ci.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
# based on https://github.com/actions/starter-workflows/blob/main/ci/cmake-single-platform.yml
33
name: Hydra Build and Test
4-
on: {push: {branches: [main, develop]}, pull_request: {}}
4+
on: {push: {branches: [main]}, pull_request: {branches: [main]}}
55
jobs:
66
lint:
77
runs-on: ubuntu-latest

hydra_ros/app/noisy_tf_publisher

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ class NoisyTransformPublisher(Node):
7272
"wrong_velocity_frame", False
7373
).bool_value
7474
self._start_from_origin = self._get_param("start_from_origin", True).bool_value
75+
self._add_noise = self._get_param("add_noise", True).bool_value
7576
self._parent_frame = self._get_param("parent_frame", "odom").string_value
7677
self._child_frame = self._get_param("child_frame", "base_link").string_value
7778
self._br = tf2_ros.TransformBroadcaster(self)
@@ -124,9 +125,12 @@ class NoisyTransformPublisher(Node):
124125
updated_odom.header = cur_gt_odom.header
125126

126127
prev_pose = _mat_from_pose(prev_noisy_odom.pose.pose)
127-
noisy_trans = np.random.normal(scale=self._xyz_std_dev)
128-
noisy_rot = [0, 0, np.random.normal(scale=self._yaw_std_dev)]
129-
updated_pose = prev_pose @ pose_delta @ Exp(noisy_trans, noisy_rot)
128+
updated_pose = prev_pose @ pose_delta
129+
if self._add_noise:
130+
noisy_trans = np.random.normal(scale=self._xyz_std_dev)
131+
noisy_rot = [0, 0, np.random.normal(scale=self._yaw_std_dev)]
132+
updated_pose @= Exp(noisy_trans, noisy_rot)
133+
130134
updated_odom.pose.pose.position.x = updated_pose[0, 3]
131135
updated_odom.pose.pose.position.y = updated_pose[1, 3]
132136
updated_odom.pose.pose.position.z = updated_pose[2, 3]
@@ -166,10 +170,13 @@ class NoisyTransformPublisher(Node):
166170

167171
def main(args=None):
168172
rclpy.init()
169-
node = NoisyTransformPublisher()
170-
rclpy.spin(node)
171-
node.destroy_node()
172-
rclpy.shutdown()
173+
try:
174+
node = NoisyTransformPublisher()
175+
rclpy.spin(node)
176+
except KeyboardInterrupt:
177+
pass
178+
finally:
179+
rclpy.try_shutdown()
173180

174181

175182
if __name__ == "__main__":

0 commit comments

Comments
 (0)