ubuntu14.04+ros_indigo+lsdslam

我在开始进行安装的时候是信心满满得照着https://github.com/tum-vision/lsd_slam.git的README.md文档规矩得一步一步操作,没想到遇上了许多问题。

最后,我放弃了rosmake,改用catkin_make。

以下是我安装时参考的一些博客,大多数的问题以下的博客都给出了解决方法。

https://blog.csdn.net/zhuquan945/article/details/72980831

https://blog.csdn.net/love1055259415/article/details/79874231

https://blog.csdn.net/fireflychh/article/details/79246752

在这里我要重点提出的是opencv版本冲突的问题,

实验环境:

1.ros indigo版本

2.ubuntu14.04+系统自带的opencv2.4.8+自己安装的opencv2.4.11+opencv3.1.0

首先用指令pkg-config --modversion opencv查询我的ubuntu默认的系统,结果发现是3.1.0。

在我编译的时候发现了很多未定义的问题:

  main_stitchVideos.cpp:(.text+0x8f01):对‘cv::String::deallocate()’未定义的引用
  main_stitchVideos.cpp:(.text+0x8f30):对‘cv::String::deallocate()’未定义的引用
  main_stitchVideos.cpp:(.text+0x8fc9):对‘cv::String::deallocate()’未定义的引用
  main_stitchVideos.cpp:(.text+0x8fdb):对‘cv::String::deallocate()’未定义的引用

 分析后以为是sldslam要求的是opencv2.4.8的版本,而我的系统是opencv3.1.0,所以想在CMakeList.txt下进行修改。

 修改方法可以参考:https://github.com/YaoZhiwen/lsd_slam_catkin_16.04/blob/master/lsd_slam_core/CMakeLists.txt

set(OpenCV_INCLUDE_DIRS /opt/ros/kinetic/include/opencv-3.3.1)
set(OpenCV_LIBS /opt/ros/kinetic/lib/libopencv_core3.so.3.3.1 /opt/ros/kinetic/lib/libopencv_imgproc3.so.3.3.1 /opt/ros/kinetic/lib/libopencv_highgui3.so.3.3.1 /opt/ros/kinetic/lib/libopencv_calib3d3.so.3.3.1)

find_package(${OpenCV_INCLUDE_DIRS})
target_link_libraries(lsdslam ${FABMAP_LIB} ${G2O_LIBRARIES} ${catkin_LIBRARIES} csparse cxsparse X11 ${OpenCV_LIBS})

在以上4个地方作出修改,上一个博主实在ubuntu16.04上安装的Kinetic版本的ros系统,因为这个版本的ros是自带opencv的,所以我们根据自己系统的实际的情况,把路径修改,如果你采用cmake,make没修改路径安装的话,那么安装后OpenCV默认存储的位置是/usr/local目录下。头文件放在include文件夹下,库文件放在lib文件夹下。但是我又遇到了问题:

/usr/bin/id:warning:libopencv_imgproc.so.2.4,need by  /opt/ros/indigo/lib/libcv_brige.so, may conflict with libopencv_imgproc.so.3.0
/usr/bin/id:warning:libopencv_core.so.2.4,need by  /opt/ros/indigo/lib/libcv_brige.so, may conflict with libopencv_core.so.3.0

这是cv_bridge需要opencv2.4.8的支持,而我的系统默认的是opencv3.1.0。这里有一些别人解决这个问题的方式:

https://blog.csdn.net/u013832707/article/details/72636602

https://www.cnblogs.com/Jessica-jie/p/6959309.html

https://blog.csdn.net/gauxonz/article/details/52842099

这三个博客,前两个是我写这篇博客的时候现找的,后面的一篇我试了,对我不起作用。

最后,因为被这个问题折磨得太久了,所以我放弃了挣扎,我直接把opencv3.1.0卸载了。

然后,查了下系统的默认版本,输出2.4.8。

编译... ...

终于编译成功了。

 

posted @ 2018-04-12 21:26  h_立青人韦  阅读(867)  评论(0编辑  收藏  举报