Ask Your Question
1

make_plan service call fail

asked 2012-11-29 01:54:20 -0500

ane_fernandez gravatar image

Hi everyone,

When I call to make_plan service of move_base node I get this error:

move_base must be in an inactive state to make a plan for an external user

I've checked that when I execute call() function, move_base is in Active mode. After that the action that is being executed is canceled, it passes to the preempted state. I suppose at that state it could be possible to make a call so I wait calling periodically to exists() service method to check if the service is both advertised and available.

I don't get it working well, so I would like to know what I'm doing wrong or if there is another way to check service's availability.

Thanks

edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted
0

answered 2012-12-05 06:14:57 -0500

hersh gravatar image

I have also added this as a bug on the github nav-stack page:

make_plan service call should be available at all times

edit flag offensive delete link more
1

answered 2018-06-18 17:28:44 -0500

notanymike gravatar image

I had the same problem, my solution was to use /move_base/NavfnROS/make_plan instead

edit flag offensive delete link more

Comments

But i see that the planning is not efficient and is so slow

samir menaa gravatar image samir menaa  ( 2020-07-09 07:41:07 -0500 )edit
1

answered 2012-12-03 21:39:00 -0500

Lorenz gravatar image

The service should be available all the time, it will just throw an error as long as the robot is navigating. That means you need to call it when the robot is not processing any goals. To check for that, you can subscribe to the action's status topic and check if none of the goals is in an active state, i.e. PENDING, RECALLING, ACTIVE or PREEMPTING.

An alternative would be to write a simple node that just loads the global planner plugin using pluginlib, instantiates it and provides the same service without the underlying move_base instance. This approach will surely be more flexible but requires some work since you also need to provide costmaps to the planner.

edit flag offensive delete link more

Comments

1

Another way to do the same type of alternative is to run a separate copy of move_base just for the purpose of providing the service.

hersh gravatar image hersh  ( 2012-12-05 05:44:15 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2012-11-29 01:54:20 -0500

Seen: 1,196 times

Last updated: Dec 05 '12