From 47e2b8c2f4e4e3d82610059cfc826e0172fc3be6 Mon Sep 17 00:00:00 2001 From: yoshiri Date: Thu, 22 Feb 2024 11:04:18 +0900 Subject: [PATCH 1/4] feat: edn Signed-off-by: yoshiri --- .../launch/nebula_node_container.launch.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/common_sensor_launch/launch/nebula_node_container.launch.py b/common_sensor_launch/launch/nebula_node_container.launch.py index 7e427a21..ffd8119e 100644 --- a/common_sensor_launch/launch/nebula_node_container.launch.py +++ b/common_sensor_launch/launch/nebula_node_container.launch.py @@ -188,6 +188,11 @@ def create_parameter_dict(*args): ) ) + # Ring Outlier Filter is the last component in the pipeline, so control the output frame here + if LaunchConfiguration("output_as_sensor_frame").perform(context): + ringoutlier_filter_parameters = {"output_frame": LaunchConfiguration("frame_id")} + else: + ringoutlier_filter_parameters = {"output_frame": ""} # keep the output frame as the input frame nodes.append( ComposableNode( package="pointcloud_preprocessor", @@ -197,6 +202,7 @@ def create_parameter_dict(*args): ("input", "rectified/pointcloud_ex"), ("output", "pointcloud"), ], + parameters=[ringoutlier_filter_parameters], extra_arguments=[{"use_intra_process_comms": LaunchConfiguration("use_intra_process")}], ) ) @@ -283,6 +289,7 @@ def add_launch_arg(name: str, default_value=None, description=None): add_launch_arg("use_multithread", "False", "use multithread") add_launch_arg("use_intra_process", "False", "use ROS 2 component container communication") add_launch_arg("lidar_container_name", "nebula_node_container") + add_launch_arg("output_as_sensor_frame", "True", "output final pointcloud in sensor frame") set_container_executable = SetLaunchConfiguration( "container_executable", From 4a53f514ee7e4c1b306af9831139a85d0968cc75 Mon Sep 17 00:00:00 2001 From: yoshiri Date: Thu, 22 Feb 2024 11:29:04 +0900 Subject: [PATCH 2/4] fix: suppress spell-check Signed-off-by: yoshiri --- common_sensor_launch/launch/nebula_node_container.launch.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/common_sensor_launch/launch/nebula_node_container.launch.py b/common_sensor_launch/launch/nebula_node_container.launch.py index ffd8119e..350d0496 100644 --- a/common_sensor_launch/launch/nebula_node_container.launch.py +++ b/common_sensor_launch/launch/nebula_node_container.launch.py @@ -190,9 +190,9 @@ def create_parameter_dict(*args): # Ring Outlier Filter is the last component in the pipeline, so control the output frame here if LaunchConfiguration("output_as_sensor_frame").perform(context): - ringoutlier_filter_parameters = {"output_frame": LaunchConfiguration("frame_id")} + ring_outlier_filter_parameters = {"output_frame": LaunchConfiguration("frame_id")} else: - ringoutlier_filter_parameters = {"output_frame": ""} # keep the output frame as the input frame + ring_outlier_filter_parameters = {"output_frame": ""} # keep the output frame as the input frame nodes.append( ComposableNode( package="pointcloud_preprocessor", @@ -202,7 +202,7 @@ def create_parameter_dict(*args): ("input", "rectified/pointcloud_ex"), ("output", "pointcloud"), ], - parameters=[ringoutlier_filter_parameters], + parameters=[ring_outlier_filter_parameters], extra_arguments=[{"use_intra_process_comms": LaunchConfiguration("use_intra_process")}], ) ) From 3471b3e2cc69de131aef6ce6891cd0e2f753cc31 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 22 Feb 2024 02:30:42 +0000 Subject: [PATCH 3/4] style(pre-commit): autofix --- common_sensor_launch/launch/nebula_node_container.launch.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/common_sensor_launch/launch/nebula_node_container.launch.py b/common_sensor_launch/launch/nebula_node_container.launch.py index 350d0496..f8de11e3 100644 --- a/common_sensor_launch/launch/nebula_node_container.launch.py +++ b/common_sensor_launch/launch/nebula_node_container.launch.py @@ -192,7 +192,9 @@ def create_parameter_dict(*args): if LaunchConfiguration("output_as_sensor_frame").perform(context): ring_outlier_filter_parameters = {"output_frame": LaunchConfiguration("frame_id")} else: - ring_outlier_filter_parameters = {"output_frame": ""} # keep the output frame as the input frame + ring_outlier_filter_parameters = { + "output_frame": "" + } # keep the output frame as the input frame nodes.append( ComposableNode( package="pointcloud_preprocessor", From 4b57848d0780a2dd53109328583a457ddd771a71 Mon Sep 17 00:00:00 2001 From: yoshiri Date: Fri, 1 Mar 2024 15:03:41 +0900 Subject: [PATCH 4/4] feat: interface change in sensing lidar pointcloud. use synchronized pointcloud as sensor interface Signed-off-by: yoshiri --- .../launch/nebula_node_container.launch.py | 2 +- .../launch/pointcloud_preprocessor.launch.py | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/common_sensor_launch/launch/nebula_node_container.launch.py b/common_sensor_launch/launch/nebula_node_container.launch.py index f8de11e3..39dff348 100644 --- a/common_sensor_launch/launch/nebula_node_container.launch.py +++ b/common_sensor_launch/launch/nebula_node_container.launch.py @@ -202,7 +202,7 @@ def create_parameter_dict(*args): name="ring_outlier_filter", remappings=[ ("input", "rectified/pointcloud_ex"), - ("output", "pointcloud"), + ("output", "pointcloud_before_sync"), ], parameters=[ring_outlier_filter_parameters], extra_arguments=[{"use_intra_process_comms": LaunchConfiguration("use_intra_process")}], diff --git a/sample_sensor_kit_launch/launch/pointcloud_preprocessor.launch.py b/sample_sensor_kit_launch/launch/pointcloud_preprocessor.launch.py index 80e5f12a..8122b07e 100644 --- a/sample_sensor_kit_launch/launch/pointcloud_preprocessor.launch.py +++ b/sample_sensor_kit_launch/launch/pointcloud_preprocessor.launch.py @@ -37,12 +37,13 @@ def launch_setup(context, *args, **kwargs): parameters=[ { "input_topics": [ - "/sensing/lidar/top/pointcloud", - "/sensing/lidar/left/pointcloud", - "/sensing/lidar/right/pointcloud", + "/sensing/lidar/top/pointcloud_before_sync", + "/sensing/lidar/left/pointcloud_before_sync", + "/sensing/lidar/right/pointcloud_before_sync", ], "output_frame": LaunchConfiguration("base_frame"), "input_twist_topic_type": "twist", + "publish_synchronized_pointcloud": True, } ], extra_arguments=[{"use_intra_process_comms": LaunchConfiguration("use_intra_process")}],