leggedrobotics / free_gait

An Architecture for the Versatile Control of Legged Robots
BSD 3-Clause "New" or "Revised" License
409 stars 121 forks source link

Feature/new localization pipeline #65

Closed remod closed 6 years ago

remod commented 6 years ago

These PRs change the way the localization data is routed through our software architecture.

old: icp_tools → state_estimator → quadruped_tf_publisher → tf / topic for 3rd party usage

new: icp_tools → localization_manager → tf / topic for 3rd party usage

As discussed with , and , the state estimator does not process the localization data anymore. It is now sent to a localization manager, which in the future can take more data from other localization modules (RTK GPS, potentially visual odometry, etc.), and do some optimization and outlier detection. Overall performance should be improved, as the state estimator can save some CPU time. Also, the timing issue in the localization is solved by this change.

The quadruped state message and class do not contain information about the map frame anymore. This information now lies in the roco state.

Free gait is the only controller using the map frame. The free gait controller now takes the transformation from the roco state, the free gait rviz plugin subscribes to an additional localization topic.

The map_ga frame has been completely removed.

These changes have been tested in simulation and on Bany.

Related PRs:

https://bitbucket.org/leggedrobotics/any_gazebo/pull-requests/74/feature-new-localization-pipeline/diff

https://bitbucket.org/leggedrobotics/anymal/pull-requests/144/feature-new-localization-pipeline/diff

https://bitbucket.org/leggedrobotics/anymal_b/pull-requests/35/feature-new-localization-pipeline/diff

https://bitbucket.org/leggedrobotics/anymal_bear/pull-requests/148/feature-new-localization-pipeline/diff

https://bitbucket.org/leggedrobotics/anymal_ctrl_staticwalk/pull-requests/18/feature-new-localization-pipeline/diff

https://bitbucket.org/leggedrobotics/anymal_ctrl_test/pull-requests/23/feature-new-localization-pipeline/diff

https://bitbucket.org/leggedrobotics/anymal_ctrl_trot/pull-requests/17/feature-new-localization-pipeline/diff

https://bitbucket.org/leggedrobotics/anymal_highlevel_controller/pull-requests/87/feature-new-localization-pipeline/diff

https://bitbucket.org/leggedrobotics/anymal_state_estimator/pull-requests/78/feature-new-localization-pipeline/diff

https://github.com/leggedrobotics/free_gait/pull/65

https://bitbucket.org/leggedrobotics/free_gait_anymal/pull-requests/83/feature-new-localization-pipeline/diff

https://bitbucket.org/leggedrobotics/icp_tools/pull-requests/18/feature-new-localization-pipeline/diff

https://bitbucket.org/leggedrobotics/loco_crawling/pull-requests/114/feature-new-localization-pipeline/diff

https://bitbucket.org/leggedrobotics/locomotion_planner/pull-requests/2/feature-new-localization-pipeline/diff

https://bitbucket.org/leggedrobotics/quadruped_common/pull-requests/147/feature-new-localization-pipeline/diff