-
Notifications
You must be signed in to change notification settings - Fork 639
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 <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
@KYabuuchi |
…ter_with_simple_rule Signed-off-by: Kento Yabuuchi <[email protected]>
@SakodaShintaro Sorry, I fixed it. |
For reviewersRecently, the PR #6091 is merged. When checking this PR, please ensure that the following PRs are reflected 🙏
|
Signed-off-by: Kento Yabuuchi <[email protected]>
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 <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
Signed-off-by: Kento Yabuuchi <[email protected]>
…switching rule (autowarefoundation#6144) * implement pose_estimator_manager pkg Signed-off-by: Kento Yabuuchi <[email protected]> * tmp Signed-off-by: Kento Yabuuchi <[email protected]> * swap ndt & yabloc Signed-off-by: Kento Yabuuchi <[email protected]> * add suspension service in yabloc particle filter Signed-off-by: Kento Yabuuchi <[email protected]> * add pluginlib for switching rule Signed-off-by: Kento Yabuuchi <[email protected]> * implement switch rule using pluginlib Signed-off-by: Kento Yabuuchi <[email protected]> * WIP: implement simple_switch_rule Signed-off-by: Kento Yabuuchi <[email protected]> * implement pcd_occupancy_rule based switcher Signed-off-by: Kento Yabuuchi <[email protected]> * resolve conflicts occured by rebase Signed-off-by: Kento Yabuuchi <[email protected]> * sub_manager_node is not necessary Signed-off-by: Kento Yabuuchi <[email protected]> * add ndt_yabloc_eagleye Signed-off-by: Kento Yabuuchi <[email protected]> * fix bug Signed-off-by: Kento Yabuuchi <[email protected]> * intuitive_multi_pose_estimator_launch Signed-off-by: Kento Yabuuchi <[email protected]> * yabloc_pf shoulbe be activated at the first Signed-off-by: Kento Yabuuchi <[email protected]> * merge swith_rule_plugin as inheritance Signed-off-by: Kento Yabuuchi <[email protected]> * fix launch bug Signed-off-by: Kento Yabuuchi <[email protected]> * add eagleye_area rule Signed-off-by: Kento Yabuuchi <[email protected]> * implement strict switching rule Signed-off-by: Kento Yabuuchi <[email protected]> * refine message Signed-off-by: Kento Yabuuchi <[email protected]> * fix merge conflict Signed-off-by: Kento Yabuuchi <[email protected]> * use hysteresis threshold for pcd occupancy criteria Signed-off-by: Kento Yabuuchi <[email protected]> * fix merge conflict Signed-off-by: Kento Yabuuchi <[email protected]> * add gtest Signed-off-by: Kento Yabuuchi <[email protected]> * add component test Signed-off-by: Kento Yabuuchi <[email protected]> * add artag submanager Signed-off-by: Kento Yabuuchi <[email protected]> * add ar_tag_position to get ar-tag position Signed-off-by: Kento Yabuuchi <[email protected]> * check distance to nearest ar marker Signed-off-by: Kento Yabuuchi <[email protected]> * switch ARTAG localizer if ar marker locates around ego Signed-off-by: Kento Yabuuchi <[email protected]> * improve ar_tag_position.[hc]pp Signed-off-by: Kento Yabuuchi <[email protected]> * split update() from map_base_rule.cpp Signed-off-by: Kento Yabuuchi <[email protected]> * apply pre-commit Signed-off-by: Kento Yabuuchi <[email protected]> * add license description Signed-off-by: Kento Yabuuchi <[email protected]> * update include guard Signed-off-by: Kento Yabuuchi <[email protected]> * reflected all pre-commit's points Signed-off-by: Kento Yabuuchi <[email protected]> * use magic_enum Signed-off-by: Kento Yabuuchi <[email protected]> * add pcd_occupancy helper Signed-off-by: Kento Yabuuchi <[email protected]> * change directory structure Signed-off-by: Kento Yabuuchi <[email protected]> * change namespace Signed-off-by: Kento Yabuuchi <[email protected]> * remap some topics Signed-off-by: Kento Yabuuchi <[email protected]> * update test Signed-off-by: Kento Yabuuchi <[email protected]> * add shared_data to share data Signed-off-by: Kento Yabuuchi <[email protected]> * remove obsolete comments Signed-off-by: Kento Yabuuchi <[email protected]> * share subscribed data by SharedData Signed-off-by: Kento Yabuuchi <[email protected]> * remove obsolete comments and fix to pass test.py Signed-off-by: Kento Yabuuchi <[email protected]> * rename SharedData Signed-off-by: Kento Yabuuchi <[email protected]> * stream debug_msg as is Signed-off-by: Kento Yabuuchi <[email protected]> * add README.md Signed-off-by: Kento Yabuuchi <[email protected]> * Update README.md update README.md on github Signed-off-by: Kento Yabuuchi <[email protected]> * fix eagleye bug Signed-off-by: Kento Yabuuchi <[email protected]> * update README Signed-off-by: Kento Yabuuchi <[email protected]> * wip Signed-off-by: Kento Yabuuchi <[email protected]> * update README.md Signed-off-by: Kento Yabuuchi <[email protected]> * update README Signed-off-by: Kento Yabuuchi <[email protected]> * use landmark_manager Signed-off-by: Kento Yabuuchi <[email protected]> * add glog & fix rule_helper bug Signed-off-by: Kento Yabuuchi <[email protected]> * publish empty diagnostics Signed-off-by: Kento Yabuuchi <[email protected]> * fix artag arbitorator Signed-off-by: Kento Yabuuchi <[email protected]> * implement callback_involving_variable Signed-off-by: Kento Yabuuchi <[email protected]> * rename invokingVariable Signed-off-by: Kento Yabuuchi <[email protected]> * clarify log level Signed-off-by: Kento Yabuuchi <[email protected]> * update diagnostics Signed-off-by: Kento Yabuuchi <[email protected]> * adope new landmark_manager Signed-off-by: Kento Yabuuchi <[email protected]> * rename manager arbiter Signed-off-by: Kento Yabuuchi <[email protected]> * style(pre-commit): autofix * fix obsolete change Signed-off-by: Kento Yabuuchi <[email protected]> * change yabloc relayed input topic Signed-off-by: Kento Yabuuchi <[email protected]> * resolve merge conflict Signed-off-by: Kento Yabuuchi <[email protected]> * adopt ar_tag_position for new ar tag map specification Signed-off-by: Kento Yabuuchi <[email protected]> * rename sub_arbitr to stopper Signed-off-by: Kento Yabuuchi <[email protected]> * apply pre-commit Signed-off-by: Kento Yabuuchi <[email protected]> * add timeout for async parameter client Signed-off-by: Kento Yabuuchi <[email protected]> * style(pre-commit): autofix * fix typo Signed-off-by: Kento Yabuuchi <[email protected]> * refactor shared_data Signed-off-by: Kento Yabuuchi <[email protected]> * rename yabloc_suspend_service Signed-off-by: Kento Yabuuchi <[email protected]> * improve debug log Signed-off-by: Kento Yabuuchi <[email protected]> * fix integration test Signed-off-by: Kento Yabuuchi <[email protected]> * style(pre-commit): autofix * remove obsolete notation Signed-off-by: Kento Yabuuchi <[email protected]> * fix ar_tag_based_localizer.launch.xml Signed-off-by: Kento Yabuuchi <[email protected]> * again fix ar_tag_based_localizer.launch.xml Signed-off-by: Kento Yabuuchi <[email protected]> * style(pre-commit): autofix * add sample data url Signed-off-by: Kento Yabuuchi <[email protected]> * (review reflect) refactor launch Signed-off-by: Kento Yabuuchi <[email protected]> * (review reflect) refactor launch about gnss_enabled Signed-off-by: Kento Yabuuchi <[email protected]> * (review reflect) organize type alias accessibility Signed-off-by: Kento Yabuuchi <[email protected]> * (review reflect) rename PoseEstimatorName to PoseEstimatorType Signed-off-by: Kento Yabuuchi <[email protected]> * (review reflect) fix typo Signed-off-by: Kento Yabuuchi <[email protected]> * style(pre-commit): autofix * fix pedantic warning of PCL Signed-off-by: Kento Yabuuchi <[email protected]> * (review reflect) improve diag & suppress warning Signed-off-by: Kento Yabuuchi <[email protected]> * (review reflect) create sub only when the corresponding estimator is running Signed-off-by: Kento Yabuuchi <[email protected]> * rename eagleye_area to pose_estimator_area Signed-off-by: Kento Yabuuchi <[email protected]> * vectormap based rule works well Signed-off-by: Kento Yabuuchi <[email protected]> * move old rules to example_rule/ Signed-off-by: Kento Yabuuchi <[email protected]> * update README Signed-off-by: Kento Yabuuchi <[email protected]> * improve some features Signed-off-by: Kento Yabuuchi <[email protected]> * style(pre-commit): autofix * style(pre-commit): autofix * move some rules into example_rule & add new simple rule Signed-off-by: Kento Yabuuchi <[email protected]> * apply pre-commit & update README Signed-off-by: Kento Yabuuchi <[email protected]> * split CMake for example_rule Signed-off-by: Kento Yabuuchi <[email protected]> * remove ar_tag_position & simplify example switching rule Signed-off-by: Kento Yabuuchi <[email protected]> * add vector_map_based_rule test Signed-off-by: Kento Yabuuchi <[email protected]> * add pcd_map_based_rule test Signed-off-by: Kento Yabuuchi <[email protected]> * improve README Signed-off-by: Kento Yabuuchi <[email protected]> * fix integration test.py Signed-off-by: Kento Yabuuchi <[email protected]> * add test Signed-off-by: Kento Yabuuchi <[email protected]> * refactor & update README Signed-off-by: Kento Yabuuchi <[email protected]> * replace obsolete video Signed-off-by: Kento Yabuuchi <[email protected]> * fix typo Signed-off-by: Kento Yabuuchi <[email protected]> * Update README.md fix markdown (add one line just after <summary>) Signed-off-by: Kento Yabuuchi <[email protected]> * use structures bindings Signed-off-by: Kento Yabuuchi <[email protected]> * add many comments Signed-off-by: Kento Yabuuchi <[email protected]> * remove obsolete include & alias Signed-off-by: Kento Yabuuchi <[email protected]> * fix miss of eagleye output relay Signed-off-by: Kento Yabuuchi <[email protected]> * fix 404 URL Signed-off-by: Kento Yabuuchi <[email protected]> * remove obsolete args Signed-off-by: Kento Yabuuchi <[email protected]> --------- Signed-off-by: Kento Yabuuchi <[email protected]> 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 <[email protected]> * tmp Signed-off-by: Kento Yabuuchi <[email protected]> * swap ndt & yabloc Signed-off-by: Kento Yabuuchi <[email protected]> * add suspension service in yabloc particle filter Signed-off-by: Kento Yabuuchi <[email protected]> * add pluginlib for switching rule Signed-off-by: Kento Yabuuchi <[email protected]> * implement switch rule using pluginlib Signed-off-by: Kento Yabuuchi <[email protected]> * WIP: implement simple_switch_rule Signed-off-by: Kento Yabuuchi <[email protected]> * implement pcd_occupancy_rule based switcher Signed-off-by: Kento Yabuuchi <[email protected]> * resolve conflicts occured by rebase Signed-off-by: Kento Yabuuchi <[email protected]> * sub_manager_node is not necessary Signed-off-by: Kento Yabuuchi <[email protected]> * add ndt_yabloc_eagleye Signed-off-by: Kento Yabuuchi <[email protected]> * fix bug Signed-off-by: Kento Yabuuchi <[email protected]> * intuitive_multi_pose_estimator_launch Signed-off-by: Kento Yabuuchi <[email protected]> * yabloc_pf shoulbe be activated at the first Signed-off-by: Kento Yabuuchi <[email protected]> * merge swith_rule_plugin as inheritance Signed-off-by: Kento Yabuuchi <[email protected]> * fix launch bug Signed-off-by: Kento Yabuuchi <[email protected]> * add eagleye_area rule Signed-off-by: Kento Yabuuchi <[email protected]> * implement strict switching rule Signed-off-by: Kento Yabuuchi <[email protected]> * refine message Signed-off-by: Kento Yabuuchi <[email protected]> * fix merge conflict Signed-off-by: Kento Yabuuchi <[email protected]> * use hysteresis threshold for pcd occupancy criteria Signed-off-by: Kento Yabuuchi <[email protected]> * fix merge conflict Signed-off-by: Kento Yabuuchi <[email protected]> * add gtest Signed-off-by: Kento Yabuuchi <[email protected]> * add component test Signed-off-by: Kento Yabuuchi <[email protected]> * add artag submanager Signed-off-by: Kento Yabuuchi <[email protected]> * add ar_tag_position to get ar-tag position Signed-off-by: Kento Yabuuchi <[email protected]> * check distance to nearest ar marker Signed-off-by: Kento Yabuuchi <[email protected]> * switch ARTAG localizer if ar marker locates around ego Signed-off-by: Kento Yabuuchi <[email protected]> * improve ar_tag_position.[hc]pp Signed-off-by: Kento Yabuuchi <[email protected]> * split update() from map_base_rule.cpp Signed-off-by: Kento Yabuuchi <[email protected]> * apply pre-commit Signed-off-by: Kento Yabuuchi <[email protected]> * add license description Signed-off-by: Kento Yabuuchi <[email protected]> * update include guard Signed-off-by: Kento Yabuuchi <[email protected]> * reflected all pre-commit's points Signed-off-by: Kento Yabuuchi <[email protected]> * use magic_enum Signed-off-by: Kento Yabuuchi <[email protected]> * add pcd_occupancy helper Signed-off-by: Kento Yabuuchi <[email protected]> * change directory structure Signed-off-by: Kento Yabuuchi <[email protected]> * change namespace Signed-off-by: Kento Yabuuchi <[email protected]> * remap some topics Signed-off-by: Kento Yabuuchi <[email protected]> * update test Signed-off-by: Kento Yabuuchi <[email protected]> * add shared_data to share data Signed-off-by: Kento Yabuuchi <[email protected]> * remove obsolete comments Signed-off-by: Kento Yabuuchi <[email protected]> * share subscribed data by SharedData Signed-off-by: Kento Yabuuchi <[email protected]> * remove obsolete comments and fix to pass test.py Signed-off-by: Kento Yabuuchi <[email protected]> * rename SharedData Signed-off-by: Kento Yabuuchi <[email protected]> * stream debug_msg as is Signed-off-by: Kento Yabuuchi <[email protected]> * add README.md Signed-off-by: Kento Yabuuchi <[email protected]> * Update README.md update README.md on github Signed-off-by: Kento Yabuuchi <[email protected]> * fix eagleye bug Signed-off-by: Kento Yabuuchi <[email protected]> * update README Signed-off-by: Kento Yabuuchi <[email protected]> * wip Signed-off-by: Kento Yabuuchi <[email protected]> * update README.md Signed-off-by: Kento Yabuuchi <[email protected]> * update README Signed-off-by: Kento Yabuuchi <[email protected]> * use landmark_manager Signed-off-by: Kento Yabuuchi <[email protected]> * add glog & fix rule_helper bug Signed-off-by: Kento Yabuuchi <[email protected]> * publish empty diagnostics Signed-off-by: Kento Yabuuchi <[email protected]> * fix artag arbitorator Signed-off-by: Kento Yabuuchi <[email protected]> * implement callback_involving_variable Signed-off-by: Kento Yabuuchi <[email protected]> * rename invokingVariable Signed-off-by: Kento Yabuuchi <[email protected]> * clarify log level Signed-off-by: Kento Yabuuchi <[email protected]> * update diagnostics Signed-off-by: Kento Yabuuchi <[email protected]> * adope new landmark_manager Signed-off-by: Kento Yabuuchi <[email protected]> * rename manager arbiter Signed-off-by: Kento Yabuuchi <[email protected]> * style(pre-commit): autofix * fix obsolete change Signed-off-by: Kento Yabuuchi <[email protected]> * change yabloc relayed input topic Signed-off-by: Kento Yabuuchi <[email protected]> * resolve merge conflict Signed-off-by: Kento Yabuuchi <[email protected]> * adopt ar_tag_position for new ar tag map specification Signed-off-by: Kento Yabuuchi <[email protected]> * rename sub_arbitr to stopper Signed-off-by: Kento Yabuuchi <[email protected]> * apply pre-commit Signed-off-by: Kento Yabuuchi <[email protected]> * add timeout for async parameter client Signed-off-by: Kento Yabuuchi <[email protected]> * style(pre-commit): autofix * fix typo Signed-off-by: Kento Yabuuchi <[email protected]> * refactor shared_data Signed-off-by: Kento Yabuuchi <[email protected]> * rename yabloc_suspend_service Signed-off-by: Kento Yabuuchi <[email protected]> * improve debug log Signed-off-by: Kento Yabuuchi <[email protected]> * fix integration test Signed-off-by: Kento Yabuuchi <[email protected]> * style(pre-commit): autofix * remove obsolete notation Signed-off-by: Kento Yabuuchi <[email protected]> * fix ar_tag_based_localizer.launch.xml Signed-off-by: Kento Yabuuchi <[email protected]> * again fix ar_tag_based_localizer.launch.xml Signed-off-by: Kento Yabuuchi <[email protected]> * style(pre-commit): autofix * add sample data url Signed-off-by: Kento Yabuuchi <[email protected]> * (review reflect) refactor launch Signed-off-by: Kento Yabuuchi <[email protected]> * (review reflect) refactor launch about gnss_enabled Signed-off-by: Kento Yabuuchi <[email protected]> * (review reflect) organize type alias accessibility Signed-off-by: Kento Yabuuchi <[email protected]> * (review reflect) rename PoseEstimatorName to PoseEstimatorType Signed-off-by: Kento Yabuuchi <[email protected]> * (review reflect) fix typo Signed-off-by: Kento Yabuuchi <[email protected]> * style(pre-commit): autofix * fix pedantic warning of PCL Signed-off-by: Kento Yabuuchi <[email protected]> * (review reflect) improve diag & suppress warning Signed-off-by: Kento Yabuuchi <[email protected]> * (review reflect) create sub only when the corresponding estimator is running Signed-off-by: Kento Yabuuchi <[email protected]> * rename eagleye_area to pose_estimator_area Signed-off-by: Kento Yabuuchi <[email protected]> * vectormap based rule works well Signed-off-by: Kento Yabuuchi <[email protected]> * move old rules to example_rule/ Signed-off-by: Kento Yabuuchi <[email protected]> * update README Signed-off-by: Kento Yabuuchi <[email protected]> * improve some features Signed-off-by: Kento Yabuuchi <[email protected]> * style(pre-commit): autofix * style(pre-commit): autofix * move some rules into example_rule & add new simple rule Signed-off-by: Kento Yabuuchi <[email protected]> * apply pre-commit & update README Signed-off-by: Kento Yabuuchi <[email protected]> * split CMake for example_rule Signed-off-by: Kento Yabuuchi <[email protected]> * remove ar_tag_position & simplify example switching rule Signed-off-by: Kento Yabuuchi <[email protected]> * add vector_map_based_rule test Signed-off-by: Kento Yabuuchi <[email protected]> * add pcd_map_based_rule test Signed-off-by: Kento Yabuuchi <[email protected]> * improve README Signed-off-by: Kento Yabuuchi <[email protected]> * fix integration test.py Signed-off-by: Kento Yabuuchi <[email protected]> * add test Signed-off-by: Kento Yabuuchi <[email protected]> * refactor & update README Signed-off-by: Kento Yabuuchi <[email protected]> * replace obsolete video Signed-off-by: Kento Yabuuchi <[email protected]> * fix typo Signed-off-by: Kento Yabuuchi <[email protected]> * Update README.md fix markdown (add one line just after <summary>) Signed-off-by: Kento Yabuuchi <[email protected]> * use structures bindings Signed-off-by: Kento Yabuuchi <[email protected]> * add many comments Signed-off-by: Kento Yabuuchi <[email protected]> * remove obsolete include & alias Signed-off-by: Kento Yabuuchi <[email protected]> * fix miss of eagleye output relay Signed-off-by: Kento Yabuuchi <[email protected]> * fix 404 URL Signed-off-by: Kento Yabuuchi <[email protected]> * remove obsolete args Signed-off-by: Kento Yabuuchi <[email protected]> --------- Signed-off-by: Kento Yabuuchi <[email protected]> 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 <[email protected]> * tmp Signed-off-by: Kento Yabuuchi <[email protected]> * swap ndt & yabloc Signed-off-by: Kento Yabuuchi <[email protected]> * add suspension service in yabloc particle filter Signed-off-by: Kento Yabuuchi <[email protected]> * add pluginlib for switching rule Signed-off-by: Kento Yabuuchi <[email protected]> * implement switch rule using pluginlib Signed-off-by: Kento Yabuuchi <[email protected]> * WIP: implement simple_switch_rule Signed-off-by: Kento Yabuuchi <[email protected]> * implement pcd_occupancy_rule based switcher Signed-off-by: Kento Yabuuchi <[email protected]> * resolve conflicts occured by rebase Signed-off-by: Kento Yabuuchi <[email protected]> * sub_manager_node is not necessary Signed-off-by: Kento Yabuuchi <[email protected]> * add ndt_yabloc_eagleye Signed-off-by: Kento Yabuuchi <[email protected]> * fix bug Signed-off-by: Kento Yabuuchi <[email protected]> * intuitive_multi_pose_estimator_launch Signed-off-by: Kento Yabuuchi <[email protected]> * yabloc_pf shoulbe be activated at the first Signed-off-by: Kento Yabuuchi <[email protected]> * merge swith_rule_plugin as inheritance Signed-off-by: Kento Yabuuchi <[email protected]> * fix launch bug Signed-off-by: Kento Yabuuchi <[email protected]> * add eagleye_area rule Signed-off-by: Kento Yabuuchi <[email protected]> * implement strict switching rule Signed-off-by: Kento Yabuuchi <[email protected]> * refine message Signed-off-by: Kento Yabuuchi <[email protected]> * fix merge conflict Signed-off-by: Kento Yabuuchi <[email protected]> * use hysteresis threshold for pcd occupancy criteria Signed-off-by: Kento Yabuuchi <[email protected]> * fix merge conflict Signed-off-by: Kento Yabuuchi <[email protected]> * add gtest Signed-off-by: Kento Yabuuchi <[email protected]> * add component test Signed-off-by: Kento Yabuuchi <[email protected]> * add artag submanager Signed-off-by: Kento Yabuuchi <[email protected]> * add ar_tag_position to get ar-tag position Signed-off-by: Kento Yabuuchi <[email protected]> * check distance to nearest ar marker Signed-off-by: Kento Yabuuchi <[email protected]> * switch ARTAG localizer if ar marker locates around ego Signed-off-by: Kento Yabuuchi <[email protected]> * improve ar_tag_position.[hc]pp Signed-off-by: Kento Yabuuchi <[email protected]> * split update() from map_base_rule.cpp Signed-off-by: Kento Yabuuchi <[email protected]> * apply pre-commit Signed-off-by: Kento Yabuuchi <[email protected]> * add license description Signed-off-by: Kento Yabuuchi <[email protected]> * update include guard Signed-off-by: Kento Yabuuchi <[email protected]> * reflected all pre-commit's points Signed-off-by: Kento Yabuuchi <[email protected]> * use magic_enum Signed-off-by: Kento Yabuuchi <[email protected]> * add pcd_occupancy helper Signed-off-by: Kento Yabuuchi <[email protected]> * change directory structure Signed-off-by: Kento Yabuuchi <[email protected]> * change namespace Signed-off-by: Kento Yabuuchi <[email protected]> * remap some topics Signed-off-by: Kento Yabuuchi <[email protected]> * update test Signed-off-by: Kento Yabuuchi <[email protected]> * add shared_data to share data Signed-off-by: Kento Yabuuchi <[email protected]> * remove obsolete comments Signed-off-by: Kento Yabuuchi <[email protected]> * share subscribed data by SharedData Signed-off-by: Kento Yabuuchi <[email protected]> * remove obsolete comments and fix to pass test.py Signed-off-by: Kento Yabuuchi <[email protected]> * rename SharedData Signed-off-by: Kento Yabuuchi <[email protected]> * stream debug_msg as is Signed-off-by: Kento Yabuuchi <[email protected]> * add README.md Signed-off-by: Kento Yabuuchi <[email protected]> * Update README.md update README.md on github Signed-off-by: Kento Yabuuchi <[email protected]> * fix eagleye bug Signed-off-by: Kento Yabuuchi <[email protected]> * update README Signed-off-by: Kento Yabuuchi <[email protected]> * wip Signed-off-by: Kento Yabuuchi <[email protected]> * update README.md Signed-off-by: Kento Yabuuchi <[email protected]> * update README Signed-off-by: Kento Yabuuchi <[email protected]> * use landmark_manager Signed-off-by: Kento Yabuuchi <[email protected]> * add glog & fix rule_helper bug Signed-off-by: Kento Yabuuchi <[email protected]> * publish empty diagnostics Signed-off-by: Kento Yabuuchi <[email protected]> * fix artag arbitorator Signed-off-by: Kento Yabuuchi <[email protected]> * implement callback_involving_variable Signed-off-by: Kento Yabuuchi <[email protected]> * rename invokingVariable Signed-off-by: Kento Yabuuchi <[email protected]> * clarify log level Signed-off-by: Kento Yabuuchi <[email protected]> * update diagnostics Signed-off-by: Kento Yabuuchi <[email protected]> * adope new landmark_manager Signed-off-by: Kento Yabuuchi <[email protected]> * rename manager arbiter Signed-off-by: Kento Yabuuchi <[email protected]> * style(pre-commit): autofix * fix obsolete change Signed-off-by: Kento Yabuuchi <[email protected]> * change yabloc relayed input topic Signed-off-by: Kento Yabuuchi <[email protected]> * resolve merge conflict Signed-off-by: Kento Yabuuchi <[email protected]> * adopt ar_tag_position for new ar tag map specification Signed-off-by: Kento Yabuuchi <[email protected]> * rename sub_arbitr to stopper Signed-off-by: Kento Yabuuchi <[email protected]> * apply pre-commit Signed-off-by: Kento Yabuuchi <[email protected]> * add timeout for async parameter client Signed-off-by: Kento Yabuuchi <[email protected]> * style(pre-commit): autofix * fix typo Signed-off-by: Kento Yabuuchi <[email protected]> * refactor shared_data Signed-off-by: Kento Yabuuchi <[email protected]> * rename yabloc_suspend_service Signed-off-by: Kento Yabuuchi <[email protected]> * improve debug log Signed-off-by: Kento Yabuuchi <[email protected]> * fix integration test Signed-off-by: Kento Yabuuchi <[email protected]> * style(pre-commit): autofix * remove obsolete notation Signed-off-by: Kento Yabuuchi <[email protected]> * fix ar_tag_based_localizer.launch.xml Signed-off-by: Kento Yabuuchi <[email protected]> * again fix ar_tag_based_localizer.launch.xml Signed-off-by: Kento Yabuuchi <[email protected]> * style(pre-commit): autofix * add sample data url Signed-off-by: Kento Yabuuchi <[email protected]> * (review reflect) refactor launch Signed-off-by: Kento Yabuuchi <[email protected]> * (review reflect) refactor launch about gnss_enabled Signed-off-by: Kento Yabuuchi <[email protected]> * (review reflect) organize type alias accessibility Signed-off-by: Kento Yabuuchi <[email protected]> * (review reflect) rename PoseEstimatorName to PoseEstimatorType Signed-off-by: Kento Yabuuchi <[email protected]> * (review reflect) fix typo Signed-off-by: Kento Yabuuchi <[email protected]> * style(pre-commit): autofix * fix pedantic warning of PCL Signed-off-by: Kento Yabuuchi <[email protected]> * (review reflect) improve diag & suppress warning Signed-off-by: Kento Yabuuchi <[email protected]> * (review reflect) create sub only when the corresponding estimator is running Signed-off-by: Kento Yabuuchi <[email protected]> * rename eagleye_area to pose_estimator_area Signed-off-by: Kento Yabuuchi <[email protected]> * vectormap based rule works well Signed-off-by: Kento Yabuuchi <[email protected]> * move old rules to example_rule/ Signed-off-by: Kento Yabuuchi <[email protected]> * update README Signed-off-by: Kento Yabuuchi <[email protected]> * improve some features Signed-off-by: Kento Yabuuchi <[email protected]> * style(pre-commit): autofix * style(pre-commit): autofix * move some rules into example_rule & add new simple rule Signed-off-by: Kento Yabuuchi <[email protected]> * apply pre-commit & update README Signed-off-by: Kento Yabuuchi <[email protected]> * split CMake for example_rule Signed-off-by: Kento Yabuuchi <[email protected]> * remove ar_tag_position & simplify example switching rule Signed-off-by: Kento Yabuuchi <[email protected]> * add vector_map_based_rule test Signed-off-by: Kento Yabuuchi <[email protected]> * add pcd_map_based_rule test Signed-off-by: Kento Yabuuchi <[email protected]> * improve README Signed-off-by: Kento Yabuuchi <[email protected]> * fix integration test.py Signed-off-by: Kento Yabuuchi <[email protected]> * add test Signed-off-by: Kento Yabuuchi <[email protected]> * refactor & update README Signed-off-by: Kento Yabuuchi <[email protected]> * replace obsolete video Signed-off-by: Kento Yabuuchi <[email protected]> * fix typo Signed-off-by: Kento Yabuuchi <[email protected]> * Update README.md fix markdown (add one line just after <summary>) Signed-off-by: Kento Yabuuchi <[email protected]> * use structures bindings Signed-off-by: Kento Yabuuchi <[email protected]> * add many comments Signed-off-by: Kento Yabuuchi <[email protected]> * remove obsolete include & alias Signed-off-by: Kento Yabuuchi <[email protected]> * fix miss of eagleye output relay Signed-off-by: Kento Yabuuchi <[email protected]> * fix 404 URL Signed-off-by: Kento Yabuuchi <[email protected]> * remove obsolete args Signed-off-by: Kento Yabuuchi <[email protected]> --------- Signed-off-by: Kento Yabuuchi <[email protected]> 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.