navigation2 icon indicating copy to clipboard operation
navigation2 copied to clipboard

bt_service_node: Don't block BT loop

Open christophfroehlich opened this issue 10 months ago • 10 comments

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 exactly bt_loop_duration_, which means that loopRate.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

christophfroehlich avatar Mar 25 '24 08:03 christophfroehlich