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

The move_base node doesn't provide an action server?

asked 2017-05-17 23:03:30 -0500

ufr3c_tjc gravatar image

updated 2017-05-17 23:10:12 -0500

Have come across a weird one today. When launching the move_base node, there is no action server found at all. Initially I was launching in a launch file, but even doing rosrun move_base move_base provides no action server. The node launches fine, without any errors, and lists the topics that are unrelated to the server, such as /move_base_simple/goal, which works to move the robot. Using rosrun actionlib axclient.py /move_base also fails to connect. I haven't before used the actionlib interface for move_base.

Is there something fundamental i may be missing to cause this?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
2

answered 2017-05-18 00:02:08 -0500

ufr3c_tjc gravatar image

updated 2017-08-13 19:08:56 -0500

So in my launch file there was a problem with map_server, meaning a map wasn't available for AMCL, which caused move_base to hang at requesting the costmaps. The action server is started at the very end of move_base initialization, so this is all occurring before the start call. No errors resulted meaning it was hard to identify.

As for rosrun move_base move_base, it probably also hangs for the same reason. However, nothing is printed to console to tell you what's going on. Anyway, problem solved.

EDIT: Aug 14 '17

For me, the move_base action server didn't start because I wasn't providing it with a map, as it used a static map for its global costmap. If you aren't using gmapping, or don't plan on using AMCL, the best way to get going is to simply use a rolling window global costmap. This will be very similar to your local costmap, but perhaps use a larger resolution and larger size. You should then be able to use move_base without issue, as it will build the maps itself, rather than looking for an external one.

It only makes sense to use a static global costmap if you are usually going to be working in the same area, as opposed to using your robot in a different location every time. In this case, you should spend some time using gmapping to populate a map with obstacles, which can then be used as a static costmap. The gmapping node uses a laser to create a map in real-time, where each cell is either occupied, free, or unknown. The gmapping node can then share this map to move_base, which can inflate obstacles etc, and use it as the static global costmap. By default, gmapping publishes to /map, and move_base listens to /map. After using gmapping to map your area, use rosrun map_server map_saver map:=/map to save the map as a local YAML file and corresponding image.

The next time you come to navigate in the same area, turn off gmapping and use an instance of map_server to load the previously saved map. This way, the move_base node has access to the previously created map, and can efficiently plan a long distance path. If you want, you can also use AMCL to localize within the same map and provide the odom -> map transform which gmapping was providing, but this isn't related to any issue with the move_base server not loading.

So in summary, if your server isn't loading, check that there is something publishing to the /map topic if using a static costmap.

edit flag offensive delete link more

Comments

Would you be willing to share your actual configuration files? I am having a similar issue and trying to track down where I may have gone awry.

benabruzzo gravatar image benabruzzo  ( 2017-08-10 23:22:48 -0500 )edit

I'll edit the answer with some more info.

ufr3c_tjc gravatar image ufr3c_tjc  ( 2017-08-13 18:16:15 -0500 )edit

@benabruzzo I've added more info. Let me know which nodes (gmapping/amcl/neither) you're trying to implement and I'll upload a config for that.

ufr3c_tjc gravatar image ufr3c_tjc  ( 2017-08-13 19:10:03 -0500 )edit

Hi I encountered the same problem, but I already run my gmapping node while running the actionclient move_base but it still says that action server not available.

mgrallos gravatar image mgrallos  ( 2022-03-31 00:56:12 -0500 )edit

Question Tools

2 followers

Stats

Asked: 2017-05-17 23:03:30 -0500

Seen: 3,003 times

Last updated: Aug 13 '17