navigation2
navigation2 copied to clipboard
bt_service_node: Don't block BT loop
Basic Info
Info | Please fill out this column |
---|---|
Ticket(s) this addresses | none |
Primary OS tested on | Ubuntu |
Robotic platform tested on | gazebo classic simulation of inhouse robots |
Does this PR contain AI generated software? | no |
Description of contribution in a few bullet points
- Since #3909, we get console warnings if a service call takes more time than a BT loop duration.
- The timeout for
spin_until_future_complete
introduced with #2320 waits exactlybt_loop_duration_
, which means thatloopRate.sleep()
might return false if anything else needs more time in the BT to finish the loop. - I changed the
spin_until_future_complete
to be non-blocking, which works fine in our setups.
Description of documentation updates required from your changes
none
Future work that may be required in bullet points
Please backport also to iron and humble if possible.
For Maintainers:
- [ ] Check that any new parameters added are updated in navigation.ros.org
- [ ] Check that any significant change is added to the migration guide
- [ ] Check that any new features OR changes to existing behaviors are reflected in the tuning guide
- [ ] Check that any new functions have Doxygen added
- [ ] Check that any new features have test coverage
- [ ] Check that any new plugins is added to the plugins page
- [ ] If BT Node, Additionally: add to BT's XML index of nodes for groot, BT package's readme table, and BT library lists