ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Why doesn't the nav2 controller plugin API have a method for failing?

asked 2021-03-22 08:16:32 -0500

programmer-man gravatar image

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.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2021-03-22 15:46:25 -0500

They do, throw an exception

edit flag offensive delete link more


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!

programmer-man gravatar image programmer-man  ( 2021-03-23 07:53:34 -0500 )edit

PS. Where should I be asking these questions? Here? Discourse? Or somewhere else? Thanks.

programmer-man gravatar image programmer-man  ( 2021-03-23 11:59:31 -0500 )edit

Here is probably the right place

stevemacenski gravatar image stevemacenski  ( 2021-03-23 20:18:47 -0500 )edit

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?

stevemacenski gravatar image stevemacenski  ( 2021-03-23 20:19:08 -0500 )edit

Question Tools



Asked: 2021-03-22 08:16:32 -0500

Seen: 152 times

Last updated: Mar 22 '21