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

Costmap2D getlock() not found

asked 2015-07-02 03:12:25 -0500

robotman gravatar image

Hi, everyone,

I am trying to compile the movebase function, however, there's an error in the process.

   ./nav_stack/src/move_base/src/move_base.cpp:1206:105: error: ‘class costmap_2d::Costmap2D’ has no member named ‘getLock’
                     boost::unique_lock< boost::shared_mutex > lock(*(controller_costmap_ros_->getCostmap()->getLock()));

the compiler complains getLock() is not a member of costmap_2D. however, eclipse is able to infer the 'getLock()' function in the drop down function selection.

initially, I thought it was due to my boost lib path setting, so I added the path delibrately. however the same error pursists.

any good suggestion?

edit retag flag offensive close merge delete


I searched my ros installation folder as well as boost include directory, couldn't find getLock() function. is this normal?

robotman gravatar image robotman  ( 2015-07-02 06:06:36 -0500 )edit

Please add OS version, ROS version, whether installed from source or debians and how you installed costmap2d.

gvdhoorn gravatar image gvdhoorn  ( 2015-07-02 06:32:57 -0500 )edit

oh.. yeah... It's Ubuntu 14.04LTS. Install with sudo apt-get install ros-indigo-desktop-full. actually, the project was ok few weeks ago. there were a few system updates recently. could that be the reason? PS. I couldn't find the getLock() function instatiation anywhere. where are they declared

robotman gravatar image robotman  ( 2015-07-02 07:13:58 -0500 )edit

Well if there were updates to move_base or any other involved pkgs, then that would be one thing to check. diff(1.12.3; 1.12.4) for move_base fi.

gvdhoorn gravatar image gvdhoorn  ( 2015-07-02 09:18:03 -0500 )edit

1 Answer

Sort by » oldest newest most voted

answered 2015-07-04 01:23:25 -0500

fergs gravatar image

We recently fixed some nasty locking errors (and segfaults) in costmap_2d -- but it required changing the type of mutex used. See for the full details of changes. If you updated costmap_2d, you'll need to also update move_base.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2015-07-02 03:12:25 -0500

Seen: 486 times

Last updated: Jul 04 '15