0
$\begingroup$

Rosanswers logo

I have another question about the design choices of nav2. Specifically, I'm wondering why the controller plugins (nav2_core::Controller) don't have a mechanism for failure. Consider the following example as motivation.

Suppose we have a very forgiving progress checker (our robot is slow and unreliable and so we have a 10 second timer for it to raise an error) and suppose we have a simulator in our controller plugin that can detect problems. Then in the event that our robot detects a problem in simulation, we will have to wait an additional 10 seconds for the control server (nav2_controller::ControllerServer) to quit. This seems far too long since we were able to detect a problem in the controller plugin 10 seconds early.


Originally posted by programmer-man on ROS Answers with karma: 29 on 2021-03-22

Post score: 0

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

They do, throw an exception https://github.com/ros-planning/navigation2/blob/main/nav2_controller/src/nav2_controller.cpp#L335


Originally posted by stevemacenski with karma: 8272 on 2021-03-22

This answer was ACCEPTED on the original site

Post score: 1


Original comments

Comment by programmer-man on 2021-03-23:
Thanks Steve, I didn't see the try and catch, I was just looking at the API.

PS. Thanks for all of your other answers as well!

Comment by programmer-man on 2021-03-23:
PS. Where should I be asking these questions? Here? Discourse? Or somewhere else? Thanks.

Comment by stevemacenski on 2021-03-23:
Here is probably the right place

Comment by stevemacenski on 2021-03-23:
If this (and the others) are correct, can you mark the check mark on the left to get them off of the unanswered questions queue?

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.