Rosanswers logo

I tried to follow the steps described here: http://wiki.ros.org/mrpt_navigation/Tutorials/Installing but catkin_make gives me errors. My steps are: 1)sudo apt-get install libmrpt-dev 2)cd <your_catkin_ws>/src 3)git clone https://github.com/mrpt-ros-pkg/mrpt_navigation.git 4)cd .. 5)catkin_make

After that, when building mrpt_navigation it gives me this:

[ 50%] Building CXX object mrpt_navigation/mrpt_bridge/CMakeFiles/mrpt_bridge.dir/src/point_cloud2.cpp.o
Building CXX object mrpt_navigation/mrpt_bridge/CMakeFiles/mrpt_bridge.dir/src/point_cloud.cpp.o
/home/arms/catkin_ws/src/mrpt_navigation/mrpt_bridge/src/pose.cpp: In function ‘mrpt::poses::CPose3D& mrpt_bridge::convert(const tf::Transform&, mrpt::poses::CPose3D&)’:
/home/arms/catkin_ws/src/mrpt_navigation/mrpt_bridge/src/pose.cpp:87:10: error: ‘class mrpt::poses::CPose3D’ has no member named ‘setRotationMatrix’
/home/arms/catkin_ws/src/mrpt_navigation/mrpt_bridge/src/point_cloud2.cpp: In function ‘bool mrpt_bridge::copy(const mrpt::slam::CSimplePointsMap&, const Header&, sensor_msgs::PointCloud2&)’:
/home/arms/catkin_ws/src/mrpt_navigation/mrpt_bridge/src/point_cloud2.cpp:108:55: note: #pragma message: TODO: "Implement pointcloud2 mrpt2ros"

[ 52%] Building CXX object mrpt_navigation/mrpt_bridge/CMakeFiles/mrpt_bridge.dir/src/laser_scan.cpp.o

[ 55%] Building CXX object mrpt_navigation/mrpt_bridge/CMakeFiles/mrpt_bridge.dir/src/map.cpp.o

make[2]: *** [mrpt_navigation/mrpt_bridge/CMakeFiles/mrpt_bridge.dir/src/pose.cpp.o] Error 1

make[2]: *** Waiting for unfinished jobs....

Linking CXX shared library /home/arms/catkin_ws/devel/lib/libmrpt_localization_core.so
[ 55%] Built target mrpt_localization_core
Scanning dependencies of target mrpt_localization

[ 61%] [ 61%] Building CXX object mrpt_navigation/mrpt_localization/CMakeFiles/mrpt_localization.dir/src/mrpt_localization/mrpt_localization_parameters.cpp.o
Building CXX object mrpt_navigation/mrpt_localization/CMakeFiles/mrpt_localization.dir/src/mrpt_localization/mrpt_localization.cpp.o
make[1]: *** [mrpt_navigation/mrpt_bridge/CMakeFiles/mrpt_bridge.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
Linking CXX shared library /home/arms/catkin_ws/devel/lib/libmrpt_localization.so

[ 61%] Built target mrpt_localization

make: *** [all] Error 2

Invoking "make" failed

In my src/mrpt_navigation there are multiple mrpt folders and when I run roslaunch mrpt_localization demo.launch it gives me: Error: cannot launch node of type [mrpt_localization/mrpt_localization_node]: cant locate node in package
Could anyone please help?

I am using ROS Hydro, Ubuntu 12.04

[edit] added full error message

Originally posted by kost9 on ROS Answers with karma: 97 on 2015-02-11

Post score: 1

Original comments

Comment by ahendrix on 2015-02-11:
Please edit your question to include the full error that you get when running catkin_make


1 Answer 1


Rosanswers logo

The best solution is to remove the system version of mrpt, which is quite old in Ubuntu 12.04:

sudo apt-get remove libmrpt-dev mrpt-apps

then installing a more recent version. You have 2 options:

  1. Build from sources, either cloning master from GitHub or downloading the last stable version. Building instructions can be found here.

  2. Installing with apt-get via the PPA repository.


Originally posted by Jose Luis Blanco with karma: 288 on 2015-03-05

This answer was ACCEPTED on the original site

Post score: 1

Original comments

Comment by kost9 on 2015-03-11:
Thank you Very much, Jose! that helped.

Comment by sealguy77 on 2015-03-13:
I installed the more recent version from the PPA repository.

But when I went to the MRPT Git Repository, there was only the ROS Indigo distribution.
I'm working with Hydro, where can I find it?

Comment by Jose Luis Blanco on 2015-03-14:
@kost9: Great!

@sealguy77: Just clone the branch named "indigo", it should work on hydro too. In the future we'll probably rename the branch to "master" or alike to avoid confusion.

Comment by kost9 on 2015-03-14:
Hi Jose! thanks for your help again!

Another question: Does mrpt_localization package rely on odometry messages from robot? I used a slam method to generate a map that doesnt need odometry, since my robot doesnt provide odometry data.

Comment by Jose Luis Blanco on 2015-03-15:
Yes, mrpt_localization relies on odometry, but if it is not present it should still be able to track the robot just from laser scans (increase the "uncertainty parameters" a bit to make the particles spread more than usual). If it doesn't work open an issue on GitHub or try to fix and pull-request

Comment by kost9 on 2015-03-17:
A) Thanks for help, Jose! I tried following but had no luck. So far I used your demo.launch file as a template:

  1. I tried feeding my own map (.pgm, .tiff formats) but those didnt load.
  2. changed r1/front_laser/scan to just /scan (I provide scan topic)
  3. not sure how to set up tf transform

Comment by kost9 on 2015-03-17:
B) generally I dont know how to set this launch file up.

in terminal I get this error : Failed to subtract global_frame (map) from odom_frame (r1/odom)

I am only providing /scan topic and I have a ready map (previously generated in rviz by hector_slam)

I would very much appreciate your help!


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.