-
Notifications
You must be signed in to change notification settings - Fork 413
Update odometry implementation in diff_drive #1854
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
base: master
Are you sure you want to change the base?
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #1854 +/- ##
==========================================
- Coverage 85.12% 84.90% -0.22%
==========================================
Files 143 143
Lines 13744 13776 +32
Branches 1201 1204 +3
==========================================
- Hits 11699 11696 -3
- Misses 1638 1673 +35
Partials 407 407
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
diff_drive_controller/include/diff_drive_controller/odometry.hpp
Outdated
Show resolved
Hide resolved
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.
Let's discuss my points first, and merge the outcome. If necessary, let's open a new PR afterwards for the other controllers.
diff_drive_controller/include/diff_drive_controller/odometry.hpp
Outdated
Show resolved
Hide resolved
diff_drive_controller/include/diff_drive_controller/odometry.hpp
Outdated
Show resolved
Hide resolved
Co-authored-by: Christoph Fröhlich <christophfroehlich@users.noreply.github.com>
|
Sorry for the delay in fixing the failing checks here! I was busy shifting Linux distros and had tried to make the commits that caused the checks to fail through the web. |
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.
Still not sure about the tryUpdateOpenLoop method, maybe @saikishor or anyone else has an opinion about that.
Co-authored-by: Christoph Fröhlich <christophfroehlich@users.noreply.github.com>
|
@christophfroehlich pre-commit isn't working for me for some reason, but besides that I have made the changed you requested. If possible, could you clone the pr, and push a fix for the pre-commit? Thanks! |
|
This pull request is in conflict. Could you fix it @Amronos? |
|
Sorry for the delay on this! All requested changes have been made now, please review! |
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.
Thanks for your patience. This is almost good to be merged, two minor comments only
| } | ||
| } | ||
|
|
||
| void Odometry::integrate(const double dx, const double dheading) |
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'd find it more meaningful to pass dt to the integration method as well, instead of delta values only?
Or we rename the method to accumulate or something.
| bool updateFromPos(const double left_pos, const double right_pos, const double dt); | ||
| bool updateFromVel(const double left_vel, const double right_vel, const double dt); | ||
| bool tryUpdateOpenLoop(const double linear_vel, const double angular_vel, const double dt); |
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.
- no need for const qualifier for non-ref datatypes.
- let's change the code style to snake case for new methods.
Fixes #271.
Fixes #357.
I have updated the odometry implementation of the
diff_drive_controllerto fix the above two issues alongside improving the code's readability. This implementation is similar to that ofomni_wheel_drive_controller.I have created some new methods and deprecated the older ones.
Should I also make similar changes to other controllers? If yes, should I do that in a separate PR?