mrpt-ros-pkg / mrpt_slam

ROS wrappers for SLAM algorithms in MRPT
http://wiki.ros.org/mrpt_slam
BSD 3-Clause "New" or "Revised" License
114 stars 49 forks source link

FTBFS against MRPT < 1.5.0 #15

Closed jlblancoc closed 8 years ago

jlblancoc commented 8 years ago

Hi @bergercookie ,

Please, when you have a spare while, could you please take a look at the errors in http://build.ros.org/job/Idev__mrpt_slam__ubuntu_trusty_amd64/20/changes in your new graphslam node??

It was detected by the ROS build farm, and the problem seems to be the missing COutputLogger.h in older MRPT files. If possible, the common solution is to use #if's with MRPT version to disable specific portions of code, I think you have seen that in the past, right? ( example here ).

One can test this in a local machine by renaming the build directory of MRPT and temporarily installing it from official Ubuntu repositories (typically having mrpt 1.0. or 1.3. versions).

Alternatively, if the node absolutely requires MRPT 1.5.0, you can modify the CMakeLists.txt of the node to disable the node if an older version of mrpt is found. Example: https://github.com/mrpt-ros-pkg/mrpt_slam/blob/master/mrpt_ekf_slam_3d/CMakeLists.txt#L60

bergercookie commented 8 years ago

Hi Jose!

On 07/11/16, Jose Luis Blanco-Claraco wrote:

Hi @bergercookie ,

Please, when you have a spare while, could you please take a look at the errors in http://build.ros.org/job/Idev__mrpt_slam__ubuntu_trusty_amd64/20/changes in your new graphslam node??

Of course, I will take care of it.

It was detected by the ROS build farm, and the problem seems to be the missing COutputLogger.h in older MRPT files. If possible, the common solution is to use

if's with MRPT version to disable specific portions of code, I think you have

seen that in the past, right? ( example here ).

One can test this in a local machine by renaming the build directory of MRPT and temporarily installing it from official Ubuntu repositories (typically having mrpt 1.0.* or 1.3.* versions).

Alternatively, if the node absolutely requires MRPT 1.5.0, you can modify the CMakeLists.txt of the node to disable the node if an older version of mrpt is found. Example: https://github.com/mrpt-ros-pkg/mrpt_slam/blob/master/ mrpt_ekf_slam_3d/CMakeLists.txt#L60

I think the second solution is cleaner since (I think) most people do use MRPT >= 1.5.0 and it will not decrease readability. However I will take another look and if there aren't that many logging statements I could also use the #if directives

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.*

Nikos Koukis School of Mechanical Engineering National Technical University of Athens nickkouk@gmail.com +30 6985827375

jlblancoc commented 8 years ago

This seems solved now... good! 👍