-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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 acc limit consideration to avoid overshooting in RotationShimController #4864
base: main
Are you sure you want to change the base?
Add acc limit consideration to avoid overshooting in RotationShimController #4864
Conversation
@SteveMacenski Let me know if you would introduce a separate deceleration limit parameter or if a |
Codecov ReportAttention: Patch coverage is
|
3e9b083
to
7b2d2b7
Compare
Signed-off-by: RBT22 <[email protected]>
Signed-off-by: RBT22 <[email protected]>
7b2d2b7
to
7c1986a
Compare
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'm curious - did you test this with a small value for angular_disengage_threshold
?
If this worked as expected, I would expect the behavior to be a:
- Rotate accelerating to full rotational speed
- Rotating decelerating to the angle of the path, once in deceleration area
- Stop relatively close to the angle, with a small disengagement threshold (20 deg or less?)
- Then controller starts moving
If so, that would make a really nice behavior - very precise, very 'robotic'. A gif to put in the migration guide for this would be splendid to show it at work and the value of it. My hope was that this would be used to create very dynamic hand offs with the controllers, but I think experience has told me now from feedback that this isn't what people want (and most of the controllers don't take kindly to being started in a high-acceleration-turn when starting path tracking)
Let me know if you would introduce a separate deceleration limit parameter or if a min_angular_speed param is needed here.
Nah, I think this can be symmetric. If someone has a problem with that, they can have a follow up PR. A bunch of controllers for rotating to heading do this, so this is consistent behavior
Yes, we tested it with a small angular_disengage_threshold and with accelerations. The behavior aligns closely with what you described: accelerating to full rotational speed, decelerating near the path angle, and stopping close to the target with a small disengagement threshold. One thing to note however is that we moved the shim to open-loop to integrate it seamlessly with our setup. This approach worked well for our case, but I'm curious if this is something you'd consider supporting optionally. |
Basic Info
Description of contribution in a few bullet points
Currently we don't do the deceleration as a function of its target orientation with RotationShimController. This PR implements this behavior using the
max_angular_accel
param.Description of documentation updates required from your changes
The parameter description has to be updated.
Future work that may be required in bullet points
For Maintainers: