-
Notifications
You must be signed in to change notification settings - Fork 39
Conversation
@fred-apex-ai Autoware.Auto should have equivalents for Edit: |
For Livox: For Velodyne, please use upstream ros2 branch. |
@TakaHoribe Could you comment about using containers for nodelets, and how to call python launch from xml launch? |
relevant ROS Answer discussion: https://answers.ros.org/question/333404/launch-composed-nodes-using-the-launch-xml-frontend/ |
@fred-apex-ai Here is an example. In this launch, I create the This tutorials for composition maybe helpful. As an example to load the python launch file from xml, I created the tier4/AutowareArchitectureProposal.iv#123. Please check it. |
'input_topics': '[/sensing/lidar/top/outlier_filtered/pointcloud, ' | ||
'/sensing/lidar/left/outlier_filtered/pointcloud, ' | ||
'/sensing/lidar/right/outlier_filtered/pointcloud]', | ||
'input_topics': ['/sensing/lidar/top/outlier_filtered/pointcloud', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@TakaHoribe I was testing the pointcloud_preprocessor with this command
colcon build --packages-up-to sensing_launch && ros2 launch sensing_launch sensing.launch.xml sensor_model:=aip_s1
I remain with this error
Found class: rclcpp_components::NodeFactoryTemplate<pointcloud_preprocessor::PointCloudConcatenateDataSynchronizerComponent>
[component_container-1] [INFO] [1606768022.137686544] [sensing.lidar.pointcloud_preprocessor.pointcloud_preprocessor_container]: Instantiate class: rclcpp_components::NodeFactoryTemplate<pointcloud_preprocessor::PointCloudConcatenateDataSynchronizerComponent>
[component_container-1] [INFO] [1606768022.141397556] [concatenate_data]: Subscribing to 3 user given topics as inputs:
[component_container-1] [INFO] [1606768022.141457058] [concatenate_data]: - /sensing/lidar/top/outlier_filtered/pointcloud
[component_container-1] [INFO] [1606768022.141466537] [concatenate_data]: - /sensing/lidar/left/outlier_filtered/pointcloud
[component_container-1] [INFO] [1606768022.141473772] [concatenate_data]: - /sensing/lidar/right/outlier_filtered/pointcloud
[INFO] [launch_ros.actions.load_composable_nodes]: Loaded node '/concatenate_data' in container '/sensing/lidar/pointcloud_preprocessor/pointcloud_preprocessor_container'
[component_container-1] [WARN] [1606752560.413682191] [concatenate_data]: Skipped /sensing/lidar/left/outlier_filtered/pointcloud,/sensing/lidar/right/outlier_filtered/pointcloud,/sensing/lidar/top/outlier_filtered/pointcloud. Please confirm topic.(not_subscribed_topic_name size = )143
[component_container-1] terminate called after throwing an instance of 'rclcpp::exceptions::RCLInvalidArgument'
It looks like the publish()
method in https://github.com/tier4/Pilot.Auto/blob/ros2/sensing/preprocessor/pointcloud/pointcloud_preprocessor/src/concatenate_data/concatenate_data_nodelet.cpp#L230 is called. I thought that since I don't have lidars connected, there should be no messages published. But it seems to be time-triggered and fails when there is nothing to concatenate and thus an expected failure on my laptop? Can you confirm this?
d87757c
to
80cb5ed
Compare
af93635
to
457d8cb
Compare
…h.py Only one error at runtime remains when testing on dev laptop due to pointclouds that need to be available for concatenation
because they were identical before the porting
7d7c2e1
to
b2a562a
Compare
@mitsudome-r I did what I could to allow you to test in this PR and opened issues in this repo to watch out for when testing. The branch is freshly rebased |
Reviewer notessensor configurationsThere are a lot of files changes but many are copied upon request for now. It would be better to extract the common part but @mitsudome-r said it would be easier for them to change it soon, so I made copies: the folders nodeletsI ported the nodelet sections into buildingIf you want to test the code for the |
We have done tests with actual sensors over on Monday and Tuesday.
|
@fred-apex-ai About the second issue mentioned above, I was testing with a simpler launch files, and found out that the arguments is passing correctly. It might have been that the newest launch_ros was not installed properly when we did the test. I will try out with sensing_launch again after making sure that launch_ros is installed.
|
'input_frame': 'base_link', | ||
'output_frame': 'base_link', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These must be
'input_frame', LaunchConfiguration('base_frame'),
'output_frame': LaunchConfiguration('base_frame'),
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done in cc23b23. Thanks for mentioning, I missed that amidst the many changes
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@fred-apex-ai I noticed that we have to declare the arguments first in order to use LaunchConfiguration.
So we have to have DeclareLaunchArgument('base_frame', default_value='base_link')
at the beginning of the launch file.
You would also have to import DeclareLaunchArgument from launch.actions modules.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mitsudome-r I have made that change and also updated lidar.launch.xml
to pass that launch argument but I left it as a default. You want to be able to set it somewhere to pass it, where would you do that? Just adding a launch argument and leaving it as default at the same value as before doesn't get you anything, right? Please check 3a8b54a
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The same question holds for velodyne*.launch.xml
. They could modify base_frame
in the past but it looked as though nobody did so I just coded it up in velodyne_node_container.launch.py
as default
For the issue above, I found out that it was actually due to issues with topic tools. https://answers.ros.org/question/350753/ros2-topic-hz-provides-wrong-rate-for-larger-msgs/ I have checked with C++ version of the tool that I created and it seems like the topic is published at correct frequency. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are still some additional changes that has to be made.
You can compare it with https://github.com/mitsudome-r/autoware_launcher.iv.universe/tree/port-sensing-launch to see the changes that is mentioned in my comments.
* Add sync-public.yaml Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Add sync-public-develop.yaml Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>
Signed-off-by: GitHub <noreply@github.com> Co-authored-by: kenji-miyake <kenji-miyake@users.noreply.github.com>
* parameter tuning for planning_launch * revert update_rate
issues blocking the way
external dependencies
fix_distortion
nodelet ported to ROS2ComposableNode
when called from xml inside<group>
. Apparently race condition fixed but backport not released yet [foxy] Do not use event handler for loading composable nodes (#170) ros2/launch_ros#208 -> wait for release, until then test in car with master branchROS2 changes
lidar.xml
: create container in python, include in xml as in add preprocessor.launch.xml launch AutowareArchitectureProposal.iv#123velodyne_VLP*.launch.xml
still to port
tamagawa_imu_driver
)final run time check
fix any trivial error, ignore errors with unavailable sensors, create an issue for anything else