(NAV-1380) Feature: velocity smoother #23
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Purpose
Serena's movements are not smooth. Especially after re-planning around obstacles, trajectory changes and robot is doing jerky moves.
Approach
ros-planning/navigation2 on main introduced package velocity_smoother: link. We are cherry-picking it with small adaptation to make it work with old version of Life-cycle Node. Added remapping allows to use it with multiplexer input.
"The aim of this package is to implement velocity, acceleration, and dead band smoothing from Nav2 to reduce wear-and-tear on robot motors and hardware controllers by smoothing out the accelerations/jerky movements that might be present with some local trajectory planners' control efforts." NAV2 documentation
Package is scaling incoming velocity commands to keep accelerations and deceleration within given bounds and maintain the trajectory. All components of velocity are scaled proportionally to a component that require changes due to acceleration limits. Package supports dynamically reconfigurable parameters.
Testing
Results described here: serena_bringup/109
Open Questions and Pre-Merge TODOs
n/a
Dependencies
Disclaimers
n/a
Learning
Additional documentation
System Architecture, section 1.1.4.2 Velocity Smoother
Blog Posts