-
Notifications
You must be signed in to change notification settings - Fork 300
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
Parameter management #66
Comments
@xmfcx Hi, I'm Takayuki Murooka from the planning/control team at TIER IV We, TIER IV, concluded how to manage parameters of autoware described in this issue and the following document. Currently, we are working on creating this parameters' management system described in "Possible approaches". Miyake-san suggested to me that I should share this with you. Do you have any questions or opinions? |
Hi Murooka-san, nice to meet you. I have been thinking about similar solutions for following issues I've faced with Autoware: Launch system and parameters
Node management
This solution that you brought, solves the bold ones from the list about launch system and parameters. I'm grateful to you for creating this solution and the automation of transferring of the param.yaml files. Automatic launch file generationI also had some ideas that are a bit broader but harder to achieve. I will try to list them:
This method could automate launch file creation and eliminate human error while creating launch configurations. It also requires us to set each node's There are things I haven't quite thought through:
Sorry for the long post but I wanted to share my vision about the system configuration of the autoware. I think your solution is very precise and will work but I'd also like to hear your opinions about my thoughts too. Thanks! |
@xmfcx Thank you for your reply and a nice idea. This is my personal opinion. For example, there is obstacle_cruise_planner and obstacle_stop_planner which have a similar function. One of this is selected by cruise_planner argument, which is hard to find for Autoware users. My idea is having this cruise_planner argument in tier4_planning_launch of autoware_launch/autoware.launch.xml. I'm not sure if this fixed launch system (tier4_*_launch packages are fixed. Users will modify only autoware_launch package) is a good idea or not for OSS users considreing adding new packages, due to less flexibility of the launch system. |
It would be good if we could launch Autoware from a single config file. For example, planning:
default_param_path: "config/params.yaml" # loads default parameter values from the file
some_common_planning_parameter: {value: 123 } # allows overriding the default value at top level
obstacle_cruise_planner:
default_param_path: "config/params.yaml" # loads default parameter values for the package
some_obstacle_cruise_planner_parameter: {value: 45.6} # overrides the default value
control:
default_param_path: "..."
perception:
default_param_path: "..." Surely there is much room for improvement, but a |
This pull request has been automatically marked as stale because it has not had recent activity. |
We, TIER IV (including @takayuki5168, @kenji-miyake ), have reached to an alternative solution to the above-mentioned issue. We would like to reflect this improvement if we can agree with this modification. @xmfcx @.others who is interested in this topic P.S. Please see #66 (comment) for the latest proposalCurrent issue (a quick brushup)Current Autoware has following issue:
ProposalOur proposal parameter configuration is as follows
Please refer to these PRs for example Pros & ConsPros
Cons
Possible effects
|
@kminoda Thank you for your proposal! 😄 Generally it looks good to me, but some details are different from what I thought. This was my assumption. What do you think? // autoware_launch/launch/autoware.launch.xml
<include file="$(find-pkg-share autoware_launch)/launch/components/tier4_localization.launch.xml"/> // autoware_launch/launch/components/tier4_localization.launch.xml
<include file="$(find-pkg-share tier4_localization_launch)/launch/localization.launch.xml">
<arg name="foo_param_path" value="foo" />
<arg name="bar_param_path" value="bar" />
</include> // tier4_localization_launch/launch/localization.launch.xml
<arg name="foo_param_path" />
<arg name="bar_param_path" />
<include file="$(find-pkg-share foo)/launch/foo.launch.xml">
<arg name="foo_param_path" value="$(var foo_param_path)" />
</include>
<include file="$(find-pkg-share bar)/launch/bar.launch.xml">
<arg name="bar_param_path" value="$(var bar_param_path)" />
</include> |
@kenji-miyake Thank you! After internal discussion, let me modify the above proposal a bit. -- ProposalOur proposal parameter configuration is as follows
Please refer to these PRs for example Pros & ConsPros
Cons
Possible effects
|
We are going to start implementing the above proposal from December 19th. |
@kminoda @takayuki5168 will there be any automated mechanism that would check these launch files work as expected? And they are kept updated? (Since they are now going to be more separated.) I am glad we are reducing the number of launch files, it is very annoying to track how launch files are connected to each other. |
@xmfcx Thank you for the reply!
Sorry I could not get what you meant here, but if you asked if the |
@kminoda that's great, thanks for working on this! |
Progress:
|
The proposed modification has been merged to autoware.universe and autoware_launch. |
…plicated entries (autowarefoundation#66) * fix(setup): remove apt ansible before installing by pip Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * refactor: change task order Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * fix(ansible/docker): replace `lineinfile` with `copy` not to write duplicated entries Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * chore: remove paths condition to make it required for PRs Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>
Checklist
Description
Currently, autoware has its parameters only in autoware.universe.
That means, when we want to integrate autoware to a specific vehicle and modify parameters, we have to fork autoware.universe which also has a lot of code other than parameters.
Now we have the autoware_launch repository referring to autoware.universe.
We, TIER IV, concluded that it would be better for autoware_launch to have parameters of autoware.universe, and modify parameters for integration.
With this integration procedure, we don't have to fork autoware.universe.
This idea is described here.
https://autowarefoundation.github.io/autoware-documentation/pr-171/contributing/coding-guidelines/ros-nodes/parameters/
Purpose
In order to easily modify autoware parameters (e.g. for integration to a specific vehicle)
Possible approaches
autoware_launch
package.Definition of done
All checkboxes of the possible approaches are closed.
The text was updated successfully, but these errors were encountered: