-
Notifications
You must be signed in to change notification settings - Fork 630
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
feat(pose_estimator_arbiter): add pose_estimator_arbiter with simple switching rule #6144
feat(pose_estimator_arbiter): add pose_estimator_arbiter with simple switching rule #6144
Conversation
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
@KYabuuchi |
…ter_with_simple_rule Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
@SakodaShintaro Sorry, I fixed it. |
For reviewersRecently, the PR #6091 is merged. When checking this PR, please ensure that the following PRs are reflected 🙏
|
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.
Looks good to me
Although I have not conducted proper measurements, I think this pull request may also contribute to faster launch of Autoware.
(This is because multi-loading of eagleye and pose_initializer has been improved)
localization/pose_estimator_arbiter/src/pose_estimator_arbiter/pose_estimator_arbiter_core.cpp
Show resolved
Hide resolved
localization/pose_estimator_arbiter/src/pose_estimator_arbiter/pose_estimator_arbiter_core.cpp
Outdated
Show resolved
Hide resolved
In the future, several rules will be implemented and users will be able to select rules. | ||
|
||
> [!TIP] | ||
> There are presets available to extend the rules. If you want to extend the rules, please see [example_rule](./example_rule/README.md). |
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.
I don't know why, but it seemed like the markdown notation was not working effectively in <details>
tags. I think there is no need to modify it.
fix markdown (add one line just after <summary>) Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
…switching rule (autowarefoundation#6144) * implement pose_estimator_manager pkg Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * tmp Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * swap ndt & yabloc Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add suspension service in yabloc particle filter Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add pluginlib for switching rule Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * implement switch rule using pluginlib Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * WIP: implement simple_switch_rule Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * implement pcd_occupancy_rule based switcher Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * resolve conflicts occured by rebase Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * sub_manager_node is not necessary Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add ndt_yabloc_eagleye Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix bug Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * intuitive_multi_pose_estimator_launch Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * yabloc_pf shoulbe be activated at the first Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * merge swith_rule_plugin as inheritance Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix launch bug Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add eagleye_area rule Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * implement strict switching rule Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * refine message Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix merge conflict Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * use hysteresis threshold for pcd occupancy criteria Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix merge conflict Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add gtest Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add component test Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add artag submanager Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add ar_tag_position to get ar-tag position Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * check distance to nearest ar marker Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * switch ARTAG localizer if ar marker locates around ego Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * improve ar_tag_position.[hc]pp Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * split update() from map_base_rule.cpp Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * apply pre-commit Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add license description Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * update include guard Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * reflected all pre-commit's points Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * use magic_enum Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add pcd_occupancy helper Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * change directory structure Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * change namespace Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * remap some topics Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * update test Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add shared_data to share data Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * remove obsolete comments Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * share subscribed data by SharedData Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * remove obsolete comments and fix to pass test.py Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * rename SharedData Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * stream debug_msg as is Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add README.md Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * Update README.md update README.md on github Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix eagleye bug Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * update README Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * wip Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * update README.md Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * update README Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * use landmark_manager Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add glog & fix rule_helper bug Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * publish empty diagnostics Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix artag arbitorator Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * implement callback_involving_variable Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * rename invokingVariable Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * clarify log level Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * update diagnostics Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * adope new landmark_manager Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * rename manager arbiter Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * style(pre-commit): autofix * fix obsolete change Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * change yabloc relayed input topic Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * resolve merge conflict Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * adopt ar_tag_position for new ar tag map specification Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * rename sub_arbitr to stopper Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * apply pre-commit Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add timeout for async parameter client Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * style(pre-commit): autofix * fix typo Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * refactor shared_data Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * rename yabloc_suspend_service Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * improve debug log Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix integration test Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * style(pre-commit): autofix * remove obsolete notation Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix ar_tag_based_localizer.launch.xml Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * again fix ar_tag_based_localizer.launch.xml Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * style(pre-commit): autofix * add sample data url Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * (review reflect) refactor launch Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * (review reflect) refactor launch about gnss_enabled Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * (review reflect) organize type alias accessibility Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * (review reflect) rename PoseEstimatorName to PoseEstimatorType Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * (review reflect) fix typo Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * style(pre-commit): autofix * fix pedantic warning of PCL Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * (review reflect) improve diag & suppress warning Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * (review reflect) create sub only when the corresponding estimator is running Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * rename eagleye_area to pose_estimator_area Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * vectormap based rule works well Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * move old rules to example_rule/ Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * update README Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * improve some features Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * style(pre-commit): autofix * style(pre-commit): autofix * move some rules into example_rule & add new simple rule Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * apply pre-commit & update README Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * split CMake for example_rule Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * remove ar_tag_position & simplify example switching rule Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add vector_map_based_rule test Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add pcd_map_based_rule test Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * improve README Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix integration test.py Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add test Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * refactor & update README Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * replace obsolete video Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix typo Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * Update README.md fix markdown (add one line just after <summary>) Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * use structures bindings Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add many comments Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * remove obsolete include & alias Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix miss of eagleye output relay Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix 404 URL Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * remove obsolete args Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> --------- Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
…switching rule (autowarefoundation#6144) * implement pose_estimator_manager pkg Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * tmp Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * swap ndt & yabloc Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add suspension service in yabloc particle filter Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add pluginlib for switching rule Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * implement switch rule using pluginlib Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * WIP: implement simple_switch_rule Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * implement pcd_occupancy_rule based switcher Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * resolve conflicts occured by rebase Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * sub_manager_node is not necessary Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add ndt_yabloc_eagleye Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix bug Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * intuitive_multi_pose_estimator_launch Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * yabloc_pf shoulbe be activated at the first Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * merge swith_rule_plugin as inheritance Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix launch bug Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add eagleye_area rule Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * implement strict switching rule Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * refine message Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix merge conflict Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * use hysteresis threshold for pcd occupancy criteria Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix merge conflict Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add gtest Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add component test Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add artag submanager Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add ar_tag_position to get ar-tag position Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * check distance to nearest ar marker Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * switch ARTAG localizer if ar marker locates around ego Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * improve ar_tag_position.[hc]pp Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * split update() from map_base_rule.cpp Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * apply pre-commit Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add license description Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * update include guard Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * reflected all pre-commit's points Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * use magic_enum Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add pcd_occupancy helper Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * change directory structure Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * change namespace Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * remap some topics Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * update test Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add shared_data to share data Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * remove obsolete comments Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * share subscribed data by SharedData Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * remove obsolete comments and fix to pass test.py Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * rename SharedData Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * stream debug_msg as is Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add README.md Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * Update README.md update README.md on github Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix eagleye bug Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * update README Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * wip Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * update README.md Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * update README Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * use landmark_manager Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add glog & fix rule_helper bug Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * publish empty diagnostics Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix artag arbitorator Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * implement callback_involving_variable Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * rename invokingVariable Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * clarify log level Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * update diagnostics Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * adope new landmark_manager Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * rename manager arbiter Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * style(pre-commit): autofix * fix obsolete change Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * change yabloc relayed input topic Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * resolve merge conflict Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * adopt ar_tag_position for new ar tag map specification Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * rename sub_arbitr to stopper Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * apply pre-commit Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add timeout for async parameter client Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * style(pre-commit): autofix * fix typo Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * refactor shared_data Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * rename yabloc_suspend_service Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * improve debug log Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix integration test Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * style(pre-commit): autofix * remove obsolete notation Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix ar_tag_based_localizer.launch.xml Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * again fix ar_tag_based_localizer.launch.xml Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * style(pre-commit): autofix * add sample data url Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * (review reflect) refactor launch Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * (review reflect) refactor launch about gnss_enabled Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * (review reflect) organize type alias accessibility Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * (review reflect) rename PoseEstimatorName to PoseEstimatorType Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * (review reflect) fix typo Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * style(pre-commit): autofix * fix pedantic warning of PCL Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * (review reflect) improve diag & suppress warning Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * (review reflect) create sub only when the corresponding estimator is running Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * rename eagleye_area to pose_estimator_area Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * vectormap based rule works well Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * move old rules to example_rule/ Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * update README Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * improve some features Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * style(pre-commit): autofix * style(pre-commit): autofix * move some rules into example_rule & add new simple rule Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * apply pre-commit & update README Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * split CMake for example_rule Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * remove ar_tag_position & simplify example switching rule Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add vector_map_based_rule test Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add pcd_map_based_rule test Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * improve README Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix integration test.py Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add test Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * refactor & update README Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * replace obsolete video Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix typo Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * Update README.md fix markdown (add one line just after <summary>) Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * use structures bindings Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add many comments Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * remove obsolete include & alias Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix miss of eagleye output relay Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix 404 URL Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * remove obsolete args Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> --------- Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
…switching rule (autowarefoundation#6144) * implement pose_estimator_manager pkg Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * tmp Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * swap ndt & yabloc Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add suspension service in yabloc particle filter Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add pluginlib for switching rule Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * implement switch rule using pluginlib Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * WIP: implement simple_switch_rule Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * implement pcd_occupancy_rule based switcher Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * resolve conflicts occured by rebase Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * sub_manager_node is not necessary Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add ndt_yabloc_eagleye Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix bug Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * intuitive_multi_pose_estimator_launch Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * yabloc_pf shoulbe be activated at the first Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * merge swith_rule_plugin as inheritance Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix launch bug Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add eagleye_area rule Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * implement strict switching rule Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * refine message Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix merge conflict Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * use hysteresis threshold for pcd occupancy criteria Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix merge conflict Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add gtest Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add component test Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add artag submanager Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add ar_tag_position to get ar-tag position Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * check distance to nearest ar marker Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * switch ARTAG localizer if ar marker locates around ego Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * improve ar_tag_position.[hc]pp Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * split update() from map_base_rule.cpp Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * apply pre-commit Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add license description Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * update include guard Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * reflected all pre-commit's points Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * use magic_enum Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add pcd_occupancy helper Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * change directory structure Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * change namespace Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * remap some topics Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * update test Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add shared_data to share data Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * remove obsolete comments Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * share subscribed data by SharedData Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * remove obsolete comments and fix to pass test.py Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * rename SharedData Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * stream debug_msg as is Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add README.md Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * Update README.md update README.md on github Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix eagleye bug Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * update README Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * wip Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * update README.md Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * update README Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * use landmark_manager Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add glog & fix rule_helper bug Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * publish empty diagnostics Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix artag arbitorator Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * implement callback_involving_variable Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * rename invokingVariable Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * clarify log level Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * update diagnostics Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * adope new landmark_manager Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * rename manager arbiter Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * style(pre-commit): autofix * fix obsolete change Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * change yabloc relayed input topic Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * resolve merge conflict Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * adopt ar_tag_position for new ar tag map specification Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * rename sub_arbitr to stopper Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * apply pre-commit Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add timeout for async parameter client Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * style(pre-commit): autofix * fix typo Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * refactor shared_data Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * rename yabloc_suspend_service Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * improve debug log Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix integration test Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * style(pre-commit): autofix * remove obsolete notation Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix ar_tag_based_localizer.launch.xml Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * again fix ar_tag_based_localizer.launch.xml Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * style(pre-commit): autofix * add sample data url Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * (review reflect) refactor launch Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * (review reflect) refactor launch about gnss_enabled Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * (review reflect) organize type alias accessibility Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * (review reflect) rename PoseEstimatorName to PoseEstimatorType Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * (review reflect) fix typo Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * style(pre-commit): autofix * fix pedantic warning of PCL Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * (review reflect) improve diag & suppress warning Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * (review reflect) create sub only when the corresponding estimator is running Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * rename eagleye_area to pose_estimator_area Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * vectormap based rule works well Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * move old rules to example_rule/ Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * update README Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * improve some features Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * style(pre-commit): autofix * style(pre-commit): autofix * move some rules into example_rule & add new simple rule Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * apply pre-commit & update README Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * split CMake for example_rule Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * remove ar_tag_position & simplify example switching rule Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add vector_map_based_rule test Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add pcd_map_based_rule test Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * improve README Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix integration test.py Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add test Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * refactor & update README Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * replace obsolete video Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix typo Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * Update README.md fix markdown (add one line just after <summary>) Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * use structures bindings Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * add many comments Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * remove obsolete include & alias Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix miss of eagleye output relay Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * fix 404 URL Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> * remove obsolete args Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> --------- Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Description
This PR implement a mechanism to launch multiple pose_estimators, and allow for pausing and resuming specific ones according to the situation.
This PR introduces only one rule that will always enable all pose_estimators.
The package README describes the purpose in detail.
Related links
This PR is derived from #5846 & #6089
Diff from the original PR(#5846):
example_rule
directoryDiff from the second PR(#6089):
vector_map_based_rule
into example_rule/Related links
[Proposal] Runtime Localization Module Switching for Multi-Pose Estimators #3878
Tests performed
I have confirmed that ndt/yabloc/eagleye/artag is available as before with
logging_simulator.launch.xml
.Also, I confirmed that by specifying multiple pose_estimators at startup, pose_estimator_arbiter is launched and arbitrates the pose_estimators according to the situation.
sample data
The rosbag is simulated data created by AWSIM.
The map is an edited version of the original map data published on the AWSIM documentation page to make it suitable for multiple pose_estimators.
how to launch
When start a single pose_estimator:
When start multiple pose_estimator:
expected behavior
When start a single pose_estimator, it launches the same nodes as before.
When start multiple pose_estimator, it works as follows.
quatro_switching_all_enable_demo_x4.mp4
Tip
We can visualize the debug prints of pose_estimator_arbiter at any time with the following command
(I recommend enabling logging, because with the default rviz settings, we do not know which pose_estimator is running.)
Caution
Eagleye requires a GNSS doppler, but AWSIM does not generate it. So I have stored my pseudo-generated dopplers in rosbag. Because of that, Eagleye's estimated position is not accurate.
Notes for reviewers
Tip
If you want to create an rviz screen like the demonstration video, please visualize the following topics.
/localization/pose_estiamtor/points_aligned
/localization/pose_estimator/yabloc/image_processing/lanelet2_overlay_image
/localization/pose_estimator/yabloc/pf/predicted_particles_marker
/localization/pose_estimator/ar_tag_based_localizer/debug/image
/localization/eagleye/pose_with_covariance/to_relay
/localization/pose_estimator/eagleye/pose_with_covariance/to_relay
Sorry for the large number of commits.
Interface changes
The default behavior remains the same.
Users can now specify multiple pose_estimators for
pose_source
. By default, ndt is launched.Effects on system behavior
The default behavior remains the same.
Users can now specify multiple pose_estimators for
pose_source
. By default, ndt is launched.Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.
In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.
Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.
After all checkboxes are checked, anyone who has write access can merge the PR.