Skip to content

Commit 13e96fe

Browse files
committed
update script
Signed-off-by: quic-zhaoyuan <164289792+quic-zhaoyuan@users.noreply.github.com>
1 parent 39b3533 commit 13e96fe

File tree

1 file changed

+117
-0
lines changed

1 file changed

+117
-0
lines changed
Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
"""
2+
Performance test for qrb_ros_transport image
3+
4+
Required:
5+
- Packages:
6+
- qrb_ros_transport
7+
- Datasets:
8+
- /data/ros2_ws/qrb_ros_benchmark_data
9+
"""
10+
11+
from launch_ros.actions import ComposableNodeContainer
12+
from launch_ros.descriptions import ComposableNode
13+
14+
from ros2_benchmark import ImageResolution
15+
from ros2_benchmark import ROS2BenchmarkConfig, ROS2BenchmarkTest
16+
17+
IMAGE_RESOLUTION = ImageResolution.HD
18+
ROSBAG_PATH = 'resize_data'
19+
20+
def launch_setup(container_prefix, container_sigterm_timeout):
21+
"""Generate launch description for benchmarking XXX."""
22+
23+
data_loader_node = ComposableNode(
24+
name='DataLoaderNode',
25+
namespace=TestResizeNode.generate_namespace(),
26+
package='ros2_benchmark',
27+
plugin='ros2_benchmark::DataLoaderNode',
28+
remappings=[('image_raw', '/data_loader_image')]
29+
)
30+
31+
playback_node = ComposableNode(
32+
name='QrbPlaybackNode',
33+
namespace=TestResizeNode.generate_namespace(),
34+
package='qrb_ros_benchmark',
35+
plugin='qrb_ros::benchmark::QrbPlaybackNode',
36+
parameters=[{
37+
'data_formats': [
38+
'qrb_ros/transport/type/Image'
39+
],
40+
}],
41+
remappings=[
42+
('buffer/input0', '/data_loader_image'),
43+
('input0', '/playback_image')
44+
]
45+
)
46+
47+
resize_node = ComposableNode(
48+
name='resize_1',
49+
namespace=TestResizeNode.generate_namespace(),
50+
package='qrb_ros_image_resize',
51+
plugin='qrb_ros::resize::ResizeNode',
52+
parameters=[{
53+
'calculate_enable':True,
54+
'use_scale': False,
55+
'height': 400,
56+
'width': 400,
57+
#'use_scale': True,
58+
#'height_scale': 0.25,
59+
#'width_scale': 0.25,
60+
}],
61+
remappings=[
62+
('image_raw', '/playback_image'),
63+
('image_resize', '/image_resize')
64+
]
65+
)
66+
67+
monitor_node = ComposableNode(
68+
name='QrbMonitorNode',
69+
namespace=TestResizeNode.generate_namespace(),
70+
package='qrb_ros_benchmark',
71+
plugin='qrb_ros::benchmark::QrbMonitorNode',
72+
parameters=[{
73+
'monitor_data_format': 'qrb_ros/transport/type/Image',
74+
}],
75+
remappings=[
76+
('output', '/image_resize')
77+
]
78+
)
79+
80+
composable_node_container = ComposableNodeContainer(
81+
name='container',
82+
namespace=TestResizeNode.generate_namespace(),
83+
package='rclcpp_components',
84+
executable='component_container_mt',
85+
prefix=container_prefix,
86+
sigterm_timeout=container_sigterm_timeout,
87+
composable_node_descriptions=[
88+
data_loader_node,
89+
playback_node,
90+
resize_node,
91+
monitor_node,
92+
],
93+
output='screen'
94+
)
95+
96+
return [composable_node_container]
97+
98+
def generate_test_description():
99+
return TestResizeNode.generate_test_description_with_nsys(launch_setup)
100+
101+
class TestResizeNode(ROS2BenchmarkTest):
102+
"""Performance test for XXX - qrb_ros/transport/type/Image."""
103+
104+
# Custom configurations
105+
config = ROS2BenchmarkConfig(
106+
benchmark_name='qrb_ros_transport image test Node Benchmark',
107+
assets_root='/data/ros2_ws/',
108+
input_data_path=ROSBAG_PATH,
109+
# Upper and lower bounds of peak throughput search window
110+
publisher_upper_frequency=500.0,
111+
publisher_lower_frequency=10.0,
112+
# The number of frames to be buffered
113+
playback_message_buffer_size=20,
114+
)
115+
116+
def test_benchmark(self):
117+
self.run_benchmark()

0 commit comments

Comments
 (0)