-
Notifications
You must be signed in to change notification settings - Fork 3.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
tier4_localization_launch/launch/util/util.launch.py does not start as expected in main branch #4124
Comments
Thank you for your report. In general, the pointcloud preprocess started by tier4_localization_launch is expected to run in the same process by specifying a container that preprocesses the sensing LiDAR. Therefore, I think an active LiDAR processing container is required. I hope this information helps you. |
Thanks for your quick response and sorry for the typo, |
For default setting, localization requires ~$ ros2 node list | grep /sensing/lidar/top/pointcloud_preprocessor/pointcloud_container
/sensing/lidar/top/pointcloud_preprocessor/pointcloud_container |
thanks for your notice, now I am wondering where would be this container started. but it seems it didn't started either in my log and ros2 node list: And I've noticed that autoware.launch.xml launches another pointcloud container which one is the container that util.py needed, is that still "/sensing/lidar/top/pointcloud_preprocessor/pointcloud_container"? |
Recently there have been changes about lidar containers. Containers are separated for redundancy. @kminoda
For example, if there are three LiDARs, top, left, and right, 4 containers are created.
Is it correct? |
@SakodaShintaro Sorry for the late reply. Yes, your understanding is correct. In Autoware |
Dear @SakodaShintaro , But as the changes which you've mentioned, in main branch, this container(/sensing/lidar/top/pointcloud_preprocessor/pointcloud_container) are created in sensor_kit when launch_driver are set to true. thus the container and all preprocessing node in it didn't launched. As for this situation, I've looked into nebula_ros package and find there are avaliable driver for robosense helio 32, but lacked nebula_decoders)/calibration/robosense/Helios5515.csv thus it cannot be launched. there are no template calibration file for robosense so I am not able to create one from manual. is it a temporal solution for me to set launch_driver to true, but delete nebula driver related component(DriverRosWrapper and HwInterfaceRosWrapper) and load only the preprocessor component in container, and then remap topic from rslidar_sdk to /sensing/lidar/top/pointcloud_raw_ex? Again, thanks for your help! |
@chivas1000 (1) Ideal Scenario: The reason for using a container is to reduce the overhead in topic communication and improve performance. Ideally, you would want 'rslidar_sdk' and 'point cloud preprocessing nodes for NDT' in the same container. The best implementation would be to launch a container and add 'rslidar_sdk' and 'point cloud preprocessing nodes for NDT' to it. Unfortunately, I am not very familiar with device drivers, so I am not sure if this is possible. (2) Make it work simply: For example, in my environment, it worked by rewriting ~/autoware/src/universe/autoware.universe$ git diff
diff --git a/launch/tier4_localization_launch/launch/util/util.launch.py b/launch/tier4_localization_launch/launch/util/util.launch.py
index 22a45fe7b8..c2ec70eefc 100644
--- a/launch/tier4_localization_launch/launch/util/util.launch.py
+++ b/launch/tier4_localization_launch/launch/util/util.launch.py
@@ -16,7 +16,7 @@ import launch
from launch.actions import DeclareLaunchArgument
from launch.actions import OpaqueFunction
from launch.substitutions import LaunchConfiguration
-from launch_ros.actions import LoadComposableNodes
+from launch_ros.actions import ComposableNodeContainer
from launch_ros.descriptions import ComposableNode
import yaml
@@ -69,12 +69,16 @@ def launch_setup(context, *args, **kwargs):
random_downsample_component,
]
- load_composable_nodes = LoadComposableNodes(
+ container = ComposableNodeContainer(
+ name="container_for_ndt",
+ namespace="pointcloud_preprocessor",
+ package="rclcpp_components",
+ executable="component_container",
composable_node_descriptions=composable_nodes,
- target_container=LaunchConfiguration("lidar_container_name"),
)
- return [load_composable_nodes]
+ return [container]
def generate_launch_description(): It launchs
Does this suggestion help with your issue? If you have any more questions, please feel free to ask. |
@chivas1000 Is it OK to close this issue? |
As for now, there is no valid driver to using composable node for rslidar helios-32 to load it into the container(to me it seems nebula driver not working as of 2024.01), only loading pointcloud processing nodes into the container and transfer the pointcloud topic to it(which would add pointcloud copy overhead) works. |
Checklist
Description
OS: Ubuntu 22.04 ROS2 humble
steps to reproduce:
launch Autoware.sh
ros2 node list
the corresponding node "localization/util/crop_box_filter_measurement_range" "localization/util/voxel_grid_downsample_filter" "localization/util/random_downsample_filter" are not in the list
but other launch.py with pointcloud preprocessor node such as "src/sensor_kit/sample_sensor_kit_launch/sample_sensor_kit_launch/launch/pointcloud_preprocessor.launch.py" are in the node list
Expected behavior
the corresponding node "localization/util/crop_box_filter_measurement_range" "localization/util/voxel_grid_downsample_filter" "localization/util/random_downsample_filter" are shown in the ros2 node list
Actual behavior
the corresponding node "localization/util/crop_box_filter_measurement_range" "localization/util/voxel_grid_downsample_filter" "localization/util/random_downsample_filter" are not in the list
Steps to reproduce
launch Autoware.sh
ros2 node list
Versions
OS: Ubuntu 22.04 ROS2 humble Autoware main branch
Possible causes
when I ros2 launch tier4_localization_launch util.py
it saids lacking "crop_box_filter_measurement_range_param_path" and other parameters
then I set these param to actual path and param and ros2 launch
it started, but no output on the terminal, and no nodes and topic on ros2
Additional context
No response
The text was updated successfully, but these errors were encountered: