-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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 acceleration limits to DriveOnHeading and BackUp behaviors #4810
base: main
Are you sure you want to change the base?
Add acceleration limits to DriveOnHeading and BackUp behaviors #4810
Conversation
@RBT22, your PR has failed to build. Please check CI outputs and resolve issues. |
1 similar comment
@RBT22, your PR has failed to build. Please check CI outputs and resolve issues. |
a6633a8
to
228de3b
Compare
@RBT22, your PR has failed to build. Please check CI outputs and resolve issues. |
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.
Build is failing - not 100% sure why off hand other than it relates to a method added
nav2_behaviors/include/nav2_behaviors/plugins/drive_on_heading.hpp
Outdated
Show resolved
Hide resolved
nav2_behaviors/include/nav2_behaviors/plugins/drive_on_heading.hpp
Outdated
Show resolved
Hide resolved
nav2_behaviors/include/nav2_behaviors/plugins/drive_on_heading.hpp
Outdated
Show resolved
Hide resolved
nav2_behaviors/include/nav2_behaviors/plugins/drive_on_heading.hpp
Outdated
Show resolved
Hide resolved
@RBT22, your PR has failed to build. Please check CI outputs and resolve issues. |
f8f5bd8
to
36daf76
Compare
@RBT22, your PR has failed to build. Please check CI outputs and resolve issues. |
36daf76
to
83b4ff4
Compare
@RBT22, your PR has failed to build. Please check CI outputs and resolve issues. |
1 similar comment
@RBT22, your PR has failed to build. Please check CI outputs and resolve issues. |
79dbabc
to
836fb46
Compare
@RBT22, your PR has failed to build. Please check CI outputs and resolve issues. |
a56b9c8
to
544887c
Compare
Codecov ReportAttention: Patch coverage is
|
Sorry for the delayed review - see comment above. It also looks like this block doesn't have any test coverage. I think you should make a new backup or drive on heading unit or system test which specifies acceleration limits to exercise. This is not ABI/API breaking, so once approved, you could open a PR to backport to Jazzy/Humble if you wanted either (Jazzy I may be able to do automatically, Humble I definitely can't / wouldn't unless someone else opened it) |
nav2_behaviors/include/nav2_behaviors/plugins/drive_on_heading.hpp
Outdated
Show resolved
Hide resolved
nav2_behaviors/include/nav2_behaviors/plugins/drive_on_heading.hpp
Outdated
Show resolved
Hide resolved
if (command_speed_ > 0.0) { | ||
double max_vel_to_stop = std::sqrt(2.0 * deceleration_limit_ * remaining_distance); | ||
if (max_vel_to_stop < cmd_vel->twist.linear.x) { | ||
cmd_vel->twist.linear.x = max_vel_to_stop; |
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 you may also need to set a minimum velocity parameter. Most robots can't go 1mm/s or have stalling velocities.
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.
Speaking of this -- an aside. Do you use the rotation shim controller? Right now, we don't do the deceleration as a function of its target orientation and this would be great to add in there too if you happened to also use it & be open to submitting the PR
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.
@SteveMacenski I can add the limits for the shim controller after this, but I’m kinda stuck on the tests—can’t get the subscriber to run its callback. Any tips?
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.
It generally looks right ot me, but I'd look at other subscription-based BT node tests for reference :-)
I'd also try:
- do
rclcpp::spin_some(node_);
after the while loop - Print in the callbacks, are you sure its not actually being triggered
- Check the topic is correct
Signed-off-by: RBT22 <[email protected]>
Signed-off-by: RBT22 <[email protected]>
Signed-off-by: RBT22 <[email protected]>
Signed-off-by: RBT22 <[email protected]>
Signed-off-by: RBT22 <[email protected]>
Signed-off-by: RBT22 <[email protected]>
Signed-off-by: RBT22 <[email protected]>
544887c
to
9b9a6ce
Compare
@RBT22, your PR has failed to build. Please check CI outputs and resolve issues. |
Signed-off-by: RBT22 <[email protected]>
Signed-off-by: RBT22 <[email protected]>
Signed-off-by: RBT22 <[email protected]>
rclcpp::ParameterValue(-2.5)); | ||
nav2_util::declare_parameter_if_not_declared( | ||
node, this->behavior_name_ + ".minimum_speed", | ||
rclcpp::ParameterValue(0.01)); |
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.
rclcpp::ParameterValue(0.01)); | |
rclcpp::ParameterValue(0.10)); |
More realistic
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.
Also for the nav2_params.yaml
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.
Also, configuration guide entries are needed and migration guide to mention the new params
rclcpp::ParameterValue(-2.5)); | ||
nav2_util::declare_parameter_if_not_declared( | ||
node, this->behavior_name_ + ".minimum_speed", | ||
rclcpp::ParameterValue(0.01)); |
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.
Also for the nav2_params.yaml
Basic Info
Description of contribution in a few bullet points
Added two params:
acceleration_limit
anddeceleration_limit
for DriveOnHeading and BackUp behaviors.Description of documentation updates required from your changes
Added new parameter, so need to add that to default configs and documentation page
Future work that may be required in bullet points
For Maintainers: