-
Notifications
You must be signed in to change notification settings - Fork 277
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
Ackermann Steering Plugin #618
Conversation
Signed-off-by: Kevin <[email protected]>
Signed-off-by: Kevin <[email protected]>
Signed-off-by: Kevin <[email protected]>
Signed-off-by: Kevin <[email protected]>
Signed-off-by: Kevin <[email protected]>
@osrf-jenkins retest this please |
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.
This is looking good to me! I didn't check the math too closely though. I took a quick look at the implementation on gazebo_ros_pkgs but the approach looks a bit different.
@@ -0,0 +1,130 @@ | |||
/********************************************************************* |
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 think this can be moved to a common place so multiple plugins reuse it, see gazebosim/gz-math#194. We shouldn't block this PR for this, we can come back later and update this plugin and diff drive once the version on ign-math
is released.
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.
Remember to sign all your commits. DCO is failing
Co-authored-by: Louise Poubel <[email protected]>
Signed-off-by: Kevin <[email protected]>
That particular commit was from clicking on "commit suggestion". I would have expected github to handle signoffs. I have made a couple of attempts to resolve it, but my googling has not found a successful way to resolve it. I believe I have addressed the issues from the two reviews. |
Yeah unfortunately GitHub doesn't make it easy to sign commits from the web UI. We've been manually adding the signature for those cases. One way of solving this would be by adding the signature locally while rebasing and then force-pushing. If this is too much trouble, we can manually accept the DCO check since all other commits are properly signed. |
If you could, please manually accept the DCO check. Adding the signature locally/rebasing/force-pushing was one of the approaches I tried a couple of different ways, but it didn't work for me in this case. |
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.
Thank you for the new plugin!
Signed-off-by: Kevin <[email protected]> Co-authored-by: Kevin <[email protected]> Co-authored-by: Louise Poubel <[email protected]>
* 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]>
Summary
This adds an Ackermann Steering Plugin based on the differential drive plugin.
The plugin accepts a linear velocity (x) and a rotational velocity (z) the same as the differential drive plugin and sets the vehicle drive and steering joints to achieve the requested inputs. The plugin and integration tests are largely based on the differential drive plugin.
Items to consider:
SpeedLimiter.cc and SpeedLimiter.hh are identical copies from the diff_drive plugin
Odometry is not as accurate as a pure diff_drive robot. I had to open the integration tests limit up from 1cm to 25cm when comparing odometry to ground truth in the integration tests. I tried various ground friction coefficients and using the wheel
slip plugin, but I did not achieve 1cm accuracy for the odometry.
There is a lot of commonality between the differential and Ackermann plugins. It might make sense to merge them at some point in the future when the Ackermann plugin has aged a bit and is stable (to minimize risk to the heavily used diff drive plugin).
I was not able to generate a coverage report.
Test it
The plugin can be tested using examples/worlds/ackermann_steering.sdf
Checklist
codecheck
passed (See contributing)