|
18 | 18 | import pytest
|
19 | 19 | import rclpy
|
20 | 20 | from rclpy.node import Node
|
21 |
| -from rclpy.qos import QoSProfile, QoSDurabilityPolicy |
22 | 21 | from sensor_msgs.msg import LaserScan
|
23 | 22 |
|
24 | 23 |
|
@@ -50,12 +49,16 @@ def test_speckle_filter(self):
|
50 | 49 | node = TestFixture()
|
51 | 50 | self.assertTrue(node.wait_for_subscribers(10))
|
52 | 51 | node.start_subscribers()
|
53 |
| - node.publish_laser_scan() |
54 | 52 |
|
55 |
| - dist_msgs_received_flag = node.dist_msg_event_object.wait(timeout=10.0) |
56 |
| - eucl_msgs_received_flag = node.eucl_msg_event_object.wait(timeout=10.0) |
57 |
| - assert dist_msgs_received_flag, "Did not receive distance msgs !" |
58 |
| - assert eucl_msgs_received_flag, "Did not receive euclidean msgs !" |
| 53 | + publish_rate = node.create_rate(5) |
| 54 | + for _ in range(10): |
| 55 | + if node.dist_msg_event_object.isSet() and node.eucl_msg_event_object.isSet(): |
| 56 | + break |
| 57 | + node.publish_laser_scan() |
| 58 | + publish_rate.sleep() |
| 59 | + |
| 60 | + assert node.dist_msg_event_object.isSet(), "Did not receive distance msgs !" |
| 61 | + assert node.eucl_msg_event_object.isSet(), "Did not receive euclidean msgs !" |
59 | 62 |
|
60 | 63 | expected_scan_ranges = [1, 1, 1, 1, float("nan"), 1, 1, 1, 1, 1, 1]
|
61 | 64 | for scan_range, expected_scan_range in zip(node.msg_dist.ranges, expected_scan_ranges):
|
@@ -92,8 +95,7 @@ def __init__(self):
|
92 | 95 | super().__init__("test_speckle_filter_distance")
|
93 | 96 | self.dist_msg_event_object = Event()
|
94 | 97 | self.eucl_msg_event_object = Event()
|
95 |
| - qos = QoSProfile(depth=1, durability=QoSDurabilityPolicy.TRANSIENT_LOCAL) |
96 |
| - self.publisher = self.create_publisher(LaserScan, "scan", qos_profile=qos) |
| 98 | + self.publisher = self.create_publisher(LaserScan, "scan", 10) |
97 | 99 |
|
98 | 100 | def wait_for_subscribers(self, timeout):
|
99 | 101 | timer_period = 0.1
|
|
0 commit comments