Skip to content
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

Add Tf publishing to AckermannSteering system #1576

Merged
merged 9 commits into from
Jul 23, 2022

Conversation

andyblarblar
Copy link
Contributor

@andyblarblar andyblarblar commented Jul 5, 2022

🎉 New feature

Closes #1573

Summary

Previously, the AckermannSteering system plugin did not publish tf alongside odometry, unlike the DiffDrive controller. This ment that when used with ROS, no odom->base_footprint was generated, preventing its use with SlamToolbox. This PR ports that DiffDrive tf publishing to the AckermannSteering controller, as well as the appropriate docs.

Here's ackermann in use with slam-toolbox post fix:

Peek 2022-07-05 19-19

Checklist

  • Signed all commits for DCO
  • Added tests
  • Updated documentation (as needed)
  • Updated migration guide (as needed)
  • Consider updating Python bindings (if the library has them)
  • codecheck passed (See contributing)
  • All tests passed (See test coverage)
  • While waiting for a review on your PR, please help review another open pull request to support the maintainers

Note to maintainers: Remember to use Squash-Merge and edit the commit message to match the pull request summary while retaining Signed-off-by messages.

@andyblarblar andyblarblar requested a review from chapulina as a code owner July 5, 2022 23:27
@chapulina chapulina added enhancement New feature or request 🏯 fortress Ignition Fortress labels Jul 6, 2022
Copy link
Contributor

@ahcorde ahcorde left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@andyblarblar andyblarblar force-pushed the ackermann_tf branch 2 times, most recently from 5945e46 to 8be4744 Compare July 8, 2022 04:06
andyblarblar and others added 4 commits July 8, 2022 00:27
Signed-off-by: Andrew Ealovega <[email protected]>
Co-authored-by: Alejandro Hernández Cordero <[email protected]>
Signed-off-by: Andrew Ealovega <[email protected]>
Signed-off-by: Andrew Ealovega <[email protected]>
@andyblarblar
Copy link
Contributor Author

I've implemented the suggestions and delt with the linter and CI. The fix is still fully working so it should be all set.

@andyblarblar andyblarblar requested a review from ahcorde July 8, 2022 05:35
Copy link
Contributor

@ahcorde ahcorde left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you add a test to check that the tf topic is generating data ?

@codecov
Copy link

codecov bot commented Jul 8, 2022

Codecov Report

Merging #1576 (afaf2d8) into ign-gazebo6 (d6e69d0) will increase coverage by 0.00%.
The diff coverage is 83.33%.

❗ Current head afaf2d8 differs from pull request most recent head 82ab5e0. Consider uploading reports for the commit 82ab5e0 to get more accurate results

@@             Coverage Diff              @@
##           ign-gazebo6    #1576   +/-   ##
============================================
  Coverage        64.02%   64.03%           
============================================
  Files              317      317           
  Lines            25649    25666   +17     
============================================
+ Hits             16422    16435   +13     
- Misses            9227     9231    +4     
Impacted Files Coverage Δ
...rc/systems/ackermann_steering/AckermannSteering.hh 100.00% <ø> (ø)
src/systems/diff_drive/DiffDrive.hh 100.00% <ø> (ø)
...rc/systems/ackermann_steering/AckermannSteering.cc 85.67% <76.47%> (-0.50%) ⬇️
src/Util.cc 92.53% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 95f3820...82ab5e0. Read the comment docs.

Signed-off-by: Andrew Ealovega <[email protected]>
@andyblarblar
Copy link
Contributor Author

Test added and passed.

@andyblarblar andyblarblar requested a review from ahcorde July 8, 2022 22:40
Signed-off-by: Andrew Ealovega <[email protected]>
@andyblarblar andyblarblar requested a review from ahcorde July 18, 2022 04:37
Copy link
Contributor

@ahcorde ahcorde left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@andyblarblar
Copy link
Contributor Author

andyblarblar commented Jul 18, 2022

Uhm, focal is not happy https://github.com/gazebosim/gz-sim/runs/7385398190?check_suite_focus=true

Focal ran fine, that's bionic failing there. It looks like the protobuf generated repeated_ptr_feild type doesn't have an operator[] on bionic, which seems odd to me. Does the bionic environment use a different protobuf version than focal? I would imagine gazebo has set dependencies but I cannot think of another cause for this compile error.

Edit: looking at past CI runs, bionic passed before the last commit. None of the lines I changed should have any effect on the protobuf API, so it looks like this is likely a change in the CI between the two commits.

Edit Edit: My bad for all the comments, it looks like bionic is using libprotobuf-dev 3.0.0, vs focals 3.6.1. The operator[] was added in 3.2, hence the build failures. It looks like it's just a wrapper around .get(index), so swapping the functions should solve the issue. I'll submit a fix later today

@andyblarblar andyblarblar requested a review from ahcorde July 18, 2022 22:57
@andyblarblar
Copy link
Contributor Author

The test failing on CI also fails on ign-gazebo6 for me, and contains no refrence to the files changed in this PR, so it seems to be a seprerate issue.

Signed-off-by: Louise Poubel <[email protected]>
Copy link
Contributor

@chapulina chapulina left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

@chapulina chapulina merged commit 417609c into gazebosim:ign-gazebo6 Jul 23, 2022
@andyblarblar andyblarblar deleted the ackermann_tf branch July 24, 2022 02:46
chapulina added a commit that referenced this pull request Jul 26, 2022
Signed-off-by: Andrew Ealovega <[email protected]>
Signed-off-by: Louise Poubel <[email protected]>

Co-authored-by: Alejandro Hernández Cordero <[email protected]>
Co-authored-by: Louise Poubel <[email protected]>
chapulina added a commit that referenced this pull request Jul 26, 2022
Signed-off-by: Andrew Ealovega <[email protected]>
Signed-off-by: Louise Poubel <[email protected]>

Co-authored-by: Alejandro Hernández Cordero <[email protected]>
Co-authored-by: Louise Poubel <[email protected]>
chapulina added a commit that referenced this pull request Jul 26, 2022
* Ackermann Steering Plugin (#618)

Signed-off-by: Kevin <[email protected]>

Co-authored-by: Kevin <[email protected]>
Co-authored-by: Louise Poubel <[email protected]>

* Using math::SpeedLimiter on the ackermann_steering controller. (#837)

Signed-off-by: LolaSegura <[email protected]>

* Add Tf publishing to AckermannSteering system (#1576)

Signed-off-by: Andrew Ealovega <[email protected]>
Signed-off-by: Louise Poubel <[email protected]>

Co-authored-by: Alejandro Hernández Cordero <[email protected]>
Co-authored-by: Louise Poubel <[email protected]>

Co-authored-by: knoedler <[email protected]>
Co-authored-by: Kevin <[email protected]>
Co-authored-by: LolaSegura <[email protected]>
Co-authored-by: Andrew Ealovega <[email protected]>
Co-authored-by: Alejandro Hernández Cordero <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request 🏯 fortress Ignition Fortress
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

AckermannSteering System does not publish Tf
3 participants