Error reporting

31 views
Skip to first unread message

Stephen Balakirsky

unread,
Jul 24, 2018, 2:33:30 PM7/24/18
to ROSPlan
Hi,
Is there a way to tell that the planner was unable to find a solution? The service calls do not return an error, but the printout from the window where everything was started shows:
[ INFO] [1532456806.426716501]: KCL: (/rosplan_planner_interface) (problem.pddl) Planning complete
[ INFO] [1532456806.426850028]: KCL: (/rosplan_planner_interface) (problem.pddl) Plan was unsolvable.
[ INFO] [1532456806.429214588]: KCL: (/rosplan_parsing_interface) No new planner output received; nothing to parse.

I would think that an unsolvable plan would be an "error" and not "info"? How can you tell from the API that the planning failed? The last error was due to my code not knowing that the planning had failed and parsing should not be called. Thanks for any help.


Michael Cashmore

unread,
Jul 26, 2018, 8:18:08 AM7/26/18
to ROSPlan
It is possible if you use the service with parameters:
which returns a Boolean variable "plan_found".

The default service uses the standard "empty" service type for triggering planning, which unfortunately does not have any return values. The Boolean return of the service call method should return false only if the service call itself failed.

It is also possible to use an actionlib goal to trigger planning, which is similar to the service call with parameters (lines 59-66):

Finally, we are working on adding status publishers for each node, but you do not need to wait for these. Instead, you can subscribe to the planner output of the node. Instead of calling the parsing service every time planning is called, it can be called as a callback of the planner output.

Best regards,
Michael
Reply all
Reply to author
Forward
0 new messages