Replies: 3 comments 3 replies
-
I'm big fan of this idea 🚀 . The current launch system takes too long to start up. I just have some preliminary thoughts, which I would like to share with you. Mostly agree. I think we can remove all launch files and configuration files from However, the hierarchy of launch files in such a large system is appropriate approach, because:
Moving all launch & configuration files to one repository will help with future launch testing and make Autoware configuration clearer, especially for newcomers. I'm aware that we might be far away from final solution yet, but at the end I see integration of launch unifer on two ways:
|
Beta Was this translation helpful? Give feedback.
-
I agree that the autoware launch system need to be changed. In my opinion, writing ROS launcher of this complex system "by hand" is the problem. We have to clarify rule of what we call "launcher" today.
To solve this problem, I would like to propose a new approach.
I know this is a big change. But, I do not think we can solve the complex and inefficient situation of the current autoware launcher. |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
Improve the Autoware Launch System
Current launch system and its issues
Depth and dependencies
Launch system is composed of too many repositories and complex dependencies.
Example pathway:
Let's analyze the launch file used for running the Autoware with rosbag replay sim demo for the lidar pipeline.
This is 8 Levels deep. Across 3 separate repositories, 4 packages.
Loose coupling and dependencies
We have some repository names depending on these 2 global variables:
https://github.com/autowarefoundation/autoware_launch/blob/80a387e10c6a2615d3cb45854fecc5137c5a68f4/autoware_launch/launch/autoware.launch.xml#L5-L6
These names are loosely used in variables and expected to be part of the package names.
And these vague names are referred in many places:
🖱️Click here to expand🔛
These complicate things too much. Makes it very hard to navigate or understand how things are launched.
Configuration file paths
We have duplication of
package_name.param.yaml
in both autoware_launch and autoware.universe and many other places.https://github.com/search?q=org%3Aautowarefoundation+.param.yaml+path%3A*.launch.xml&type=code
Sometimes they are from the packages themselves, sometimes they are from the launch system.
Parameter/argument scope bleeding
ROS 2 launch system allows passing all the arguments downstream by default.
Simple example:
This is a very dangerous practice and leads to very hard to debug issues.
There is probably a way to limit this scope but I don't know how to do it. There is
<group scoped="true"> </group>
but it solves a different problem. (sincehumble
, this istrue
by default anyways.)General problems
Summary of current issues
Depth and Dependencies:
Loose Coupling and Dependencies:
Configuration File Duplication:
.param.yaml
files exist in different locations (e.g.,autoware_launch
,autoware.universe
).Parameter/Argument Scope Bleeding:
General Problems:
Expectations for the new launch system
Launch Unifier to analyze and simplify
🖱️Click here to expand🔛
This is the launch diagram from 2023-10 Autoware
Slides
https://github.com/xmfcx/launch_unifier_ws
https://github.com/xmfcx/one_launch
I suggest using and improving this tool to simplify the current launch setup, making it easier to manage and more efficient.
I've shared my perspective, I'm happy to hear your ideas and potential solutions.
cc. @mitsudome-r @yukkysaito @TakaHoribe @esteve @kaspermeck-arm @samet-kutuk @oguzkaganozt @HamburgDave @youtalk
Beta Was this translation helpful? Give feedback.
All reactions