1、

报错:ERROR [gendeps] 1 Finding dependencies for /home/cc/rosbuild_ws/package_dir/lsd_slam/lsd_slam_viewer/cfg/LSDSLAMViewerParams.cfg

分析:顾名思义,不应该在描述中出现引号(单引号或双引号),可以通过查看错误内容得知需要修改的文件的名称。

解决方法:

1) lsd_slam_viewer/cfg/LSDSLAMViewerParams.cfg 第20行scaledDepthVarTH:单词 point's和keyframe's 中出现了单引号,删除单引号 第21行absDepthVarTH:单词 point's 第24行cutFirstNKf:单词 keyframe's

2) lsd_slam_core/cfg/LSDDebugParams.cfg 第11行plotStereoImages:单词 what's 第12行plotTracking:单词 what's 第48行continuousPCOutput:单词 Keyfram's

2

解决方法:

export LD_LIBRARY_PATH=$LD_LIBARARY_PATH:/usr/local/lib

打开一个新的终端输入:

sudo ldconfig

3、

分析:qt中的qreal表示小数,在Ubuntu14.04中qreal就是float,但是Ubuntu16.04中qreal变为了double。错误中的变量x, y, z的类型是float,getPosition函数的形参类型是qreal,也就是double,所有x, y, z的值会自动转型为double,并存储在一个临时变量中,这会导致getPosition函数的实参变为了右值,但是右值不能初始化非const的引用。

解决方法: 1) lsd_slam_viewer/src/PointCloudViewer.h 第135行:将float x, y, z修改为qreal x, y, z或者double x, y, z 2) lsd_slam_viewer/src/PointCloudViewer.cpp 第325行:将float x, y, z修改为qreal x, y, z或者double x, y, z

4、

分析:这条错误信息可以在文件/opt/ros/kinetic/include/opencv-3.2.0-dev/opencv2/stitching.hpp的58行查看到,信息中已经告诉了如何解决这个问题,即:将这个头文件放到任何X11头文件之前,或者也可以直接将#include "opencv2/opencv.hpp"注释掉

解决方法: 将文件lsd_slam_viewer/src/KeyFrameDisplay.cpp的头文件修改为如下顺序:

#include "opencv2/opencv.hpp"

#include <GL/glx.h>

#include <GL/gl.h>

#include  <GL/glu.h>

或者

#include <GL/glx.h>

#include <GL/gl.h>

#include  <GL/glu.h>

// #include "opencv2/opencv.hpp"/

5、

报错:

main_stitchVideos.cpp:(.text+0xd65c):对‘cv::imshow(cv::String const&, cv::_InputArray const&)’未定义的引用
main_stitchVideos.cpp:(.text+0xd668):对‘cv::String::deallocate()’未定义的引用
main_stitchVideos.cpp:(.text+0xd672):对‘cv::waitKey(int)’未定义的引用
main_stitchVideos.cpp:(.text+0xd715):对‘cv::fastFree(void*)’未定义的引用
main_stitchVideos.cpp:(.text+0xd7b5):对‘cv::fastFree(void*)’未定义的引用
main_stitchVideos.cpp:(.text+0xd84d):对‘cv::fastFree(void*)’未定义的引用
main_stitchVideos.cpp:(.text+0xd8e5):对‘cv::fastFree(void*)’未定义的引用
main_stitchVideos.cpp:(.text+0xd985):对‘cv::fastFree(void*)’未定义的引用
CMakeFiles/videoStitch.dir/src/main_stitchVideos.cpp.o:main_stitchVideos.cpp:(.text+0xda25): 跟着更多未定义的参考到 cv::fastFree(void*)
CMakeFiles/videoStitch.dir/src/main_stitchVideos.cpp.o:在函数‘inlayVid(int, char**)’中:
main_stitchVideos.cpp:(.text+0xdeb4):对‘cv::String::allocate(unsigned long)’未定义的引用
main_stitchVideos.cpp:(.text+0xdedf):对‘cv::Mat::deallocate()’未定义的引用
main_stitchVideos.cpp:(.text+0xdeec):对‘cv::Mat::deallocate()’未定义的引用
main_stitchVideos.cpp:(.text+0xdefd):对‘cv::Mat::deallocate()’未定义的引用
main_stitchVideos.cpp:(.text+0xdf0e):对‘cv::Mat::deallocate()’未定义的引用
main_stitchVideos.cpp:(.text+0xdf1f):对‘cv::Mat::deallocate()’未定义的引用
CMakeFiles/videoStitch.dir/src/main_stitchVideos.cpp.o:main_stitchVideos.cpp:(.text+0xdf30): 跟着更多未定义的参考到 cv::Mat::deallocate()
CMakeFiles/videoStitch.dir/src/main_stitchVideos.cpp.o:在函数‘inlayVid(int, char**)’中:
main_stitchVideos.cpp:(.text+0xdfb7):对‘cv::String::allocate(unsigned long)’未定义的引用
main_stitchVideos.cpp:(.text+0xe212):对‘cv::String::deallocate()’未定义的引用
main_stitchVideos.cpp:(.text+0xe23e):对‘cv::String::deallocate()’未定义的引用
main_stitchVideos.cpp:(.text+0xe26e):对‘cv::String::deallocate()’未定义的引用
main_stitchVideos.cpp:(.text+0xe282):对‘cv::String::deallocate()’未定义的引用
main_stitchVideos.cpp:(.text+0xe2a6):对‘cv::String::deallocate()’未定义的引用

lsd_slam_viewer cmakelists修改如下:

find_package(Boost REQUIRED COMPONENTS filesystem system)

include_directories(${Boost_INCLUDE_DIRS})

target_link_libraries(viewer boost_system boost_filesystem)

target_link_libraries(videoStitch boost_system boost_filesystem)

lsd_slam_core cmakelists修改如下:

find_package(Boost REQUIRED COMPONENTS filesystem system)

include_directories(${Boost_INCLUDE_DIRS})

target_link_libraries(lsdslamboost_system boost_filesystem)

target_link_libraries(live_slam boost_system boost_filesystem)

target_link_libraries(dataset_slam lsdslam boost_system boost_filesystem)

注意:应将targe_link放在add_executable之后,不然链接不到库。

6、

lsd_slam_viewer cmakelists修改如下:

cmake_minimum_required(VERSION 2.4.6)
set (OpenCV_DIR "/home/vision1/Downloads/opencv-2.4.8/build") #########

project(lsd_slam_viewer)
include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
############################################
find_package(OpenCV REQUIRED)  
message(STATUS "OpenCV library status:")  
message(STATUS "    version: ${OpenCV_VERSION}")  
message(STATUS "    libraries: ${OpenCV_LIBS}")  
message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")  
if(CMAKE_VERSION VERSION_LESS "2.4.6")  
  # Add OpenCV headers location to your include paths  
  include_directories(${OpenCV_INCLUDE_DIRS})  
endif()
###########################################
# Set the build type.  Options are:
#  Coverage       : w/ debug symbols, w/o optimization, w/ code-coverage
#  Debug          : w/ debug symbols, w/o optimization
#  Release        : w/o debug symbols, w/ optimization
#  RelWithDebInfo : w/ debug symbols, w/ optimization
#  MinSizeRel     : w/o debug symbols, w/ optimization, stripped binaries
set(ROS_BUILD_TYPE Release)

rosbuild_init()

ADD_SUBDIRECTORY(${PROJECT_SOURCE_DIR}/thirdparty/Sophus)

set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake)

find_package(OpenGL REQUIRED)
set(QT_USE_QTOPENGL TRUE)
set(QT_USE_QTXML TRUE)
find_package(QGLViewer REQUIRED)
find_package(Eigen3 REQUIRED)
include_directories(${QT_INCLUDES} ${EIGEN3_INCLUDE_DIR} ${QGLVIEWER_INCLUDE_DIR})

rosbuild_find_ros_package(dynamic_reconfigure)
include(${dynamic_reconfigure_PACKAGE_PATH}/cmake/cfgbuild.cmake)
gencfg()

# Messages & Services
rosbuild_genmsg()

# SSE flags
rosbuild_check_for_sse()
set(CMAKE_CXX_FLAGS
   "${SSE_FLAGS}"
)

# SSE Sources files
set(SOURCE_FILES         
  src/PointCloudViewer.cpp
  src/KeyFrameDisplay.cpp
  src/KeyFrameGraphDisplay.cpp
  src/settings.cpp
)

set(HEADER_FILES     
  src/PointCloudViewer.h
  src/KeyFrameDisplay.h
  src/KeyFrameGraphDisplay.h
  src/settings.h
)

include_directories(
  ${PROJECT_SOURCE_DIR}/thirdparty/Sophus
  #${Boost_INCLUDE_DIRS}/usr/lib/x86_64-linux-gnu/libpthread.so
)  
rosbuild_add_executable(viewer src/main_viewer.cpp ${SOURCE_FILES} ${HEADER_FILES})
#LIBS =-lpthread
#LIBS +=-lboost_system
#link_libraries("/usr/lib/x86_64-linux-gnu/libboost_system.so" "/usr/lib/x86_64-linux-gnu/libpthread.so")
target_link_libraries(viewer ${QGLViewer_LIBRARIES} ${QT_LIBRARIES} ${QGLVIEWER_LIBRARY} boost_system GL glut GLU)

rosbuild_link_boost(viewer thread)

rosbuild_add_executable(videoStitch src/main_stitchVideos.cpp)
target_link_libraries(videoStitch ${OpenCV_LIBS})
#link_libraries("/usr/lib/x86_64-linux-gnu/libboost_system.so" "/usr/lib/x86_64-linux-gnu/libpthread.so")

lsd_slam_core:

cmake_minimum_required(VERSION 2.8.7)
set (OpenCV_DIR "/home/vision1/Downloads/opencv-2.4.8/build") #########

project(lsd_slam_core)
include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)

############################################
find_package(OpenCV REQUIRED)  
message(STATUS "OpenCV library status:")  
message(STATUS "    version: ${OpenCV_VERSION}")  
message(STATUS "    libraries: ${OpenCV_LIBS}")  
message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")  
if(CMAKE_VERSION VERSION_LESS "2.8.7")  
  # Add OpenCV headers location to your include paths  
  include_directories(${OpenCV_INCLUDE_DIRS})  
endif()

# Set the build type.  Options are:
#  Coverage       : w/ debug symbols, w/o optimization, w/ code-coverage
#  Debug          : w/ debug symbols, w/o optimization
#  Release        : w/o debug symbols, w/ optimization
#  RelWithDebInfo : w/ debug symbols, w/ optimization
#  MinSizeRel     : w/o debug symbols, w/ optimization, stripped binaries
set(ROS_BUILD_TYPE Release)

rosbuild_init()

set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
set(CMAKE_MODULE_PATH   ${PROJECT_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})

find_package(Eigen3 REQUIRED)
find_package(SuiteParse REQUIRED) # Apparently needed by g2o
find_package(X11 REQUIRED)

# FabMap
# uncomment this part to enable fabmap
#add_subdirectory(${PROJECT_SOURCE_DIR}/thirdparty/openFabMap)
#include_directories(${PROJECT_SOURCE_DIR}/thirdparty/openFabMap/include)
#add_definitions("-DHAVE_FABMAP")
#set(FABMAP_LIB openFABMAP )

# Dynamic Reconfigure Services
rosbuild_find_ros_package(dynamic_reconfigure)
include(${dynamic_reconfigure_PACKAGE_PATH}/cmake/cfgbuild.cmake)
gencfg()

# SSE flags
rosbuild_check_for_sse()
add_definitions("-DUSE_ROS")
add_definitions("-DENABLE_SSE")

# Also add some useful compiler flag
set(CMAKE_CXX_FLAGS
   "${CMAKE_CXX_FLAGS} ${SSE_FLAGS} -march=native  -std=c++0x"
)

# Set source files
set(lsd_SOURCE_FILES
  ${PROJECT_SOURCE_DIR}/src/DataStructures/Frame.cpp
  ${PROJECT_SOURCE_DIR}/src/DataStructures/FramePoseStruct.cpp
  ${PROJECT_SOURCE_DIR}/src/DataStructures/FrameMemory.cpp
  ${PROJECT_SOURCE_DIR}/src/SlamSystem.cpp
  ${PROJECT_SOURCE_DIR}/src/LiveSLAMWrapper.cpp
  ${PROJECT_SOURCE_DIR}/src/DepthEstimation/DepthMap.cpp
  ${PROJECT_SOURCE_DIR}/src/DepthEstimation/DepthMapPixelHypothesis.cpp
  ${PROJECT_SOURCE_DIR}/src/util/globalFuncs.cpp
  ${PROJECT_SOURCE_DIR}/src/util/SophusUtil.cpp
  ${PROJECT_SOURCE_DIR}/src/util/settings.cpp
  ${PROJECT_SOURCE_DIR}/src/util/Undistorter.cpp
  ${PROJECT_SOURCE_DIR}/src/Tracking/Sim3Tracker.cpp
  ${PROJECT_SOURCE_DIR}/src/Tracking/Relocalizer.cpp
  ${PROJECT_SOURCE_DIR}/src/Tracking/SE3Tracker.cpp
  ${PROJECT_SOURCE_DIR}/src/Tracking/TrackingReference.cpp
  ${PROJECT_SOURCE_DIR}/src/IOWrapper/Timestamp.cpp
  ${PROJECT_SOURCE_DIR}/src/GlobalMapping/FabMap.cpp
  ${PROJECT_SOURCE_DIR}/src/GlobalMapping/KeyFrameGraph.cpp
  ${PROJECT_SOURCE_DIR}/src/GlobalMapping/g2oTypeSim3Sophus.cpp
  ${PROJECT_SOURCE_DIR}/src/GlobalMapping/TrackableKeyFrameSearch.cpp
)
set(SOURCE_FILES
  ${lsd_SOURCE_FILES}
  ${PROJECT_SOURCE_DIR}/src/IOWrapper/ROS/ROSImageStreamThread.cpp
  ${PROJECT_SOURCE_DIR}/src/IOWrapper/ROS/ROSOutput3DWrapper.cpp
  ${PROJECT_SOURCE_DIR}/src/IOWrapper/OpenCV/ImageDisplay_OpenCV.cpp
)

include_directories(
  ${EIGEN3_INCLUDE_DIR}
  ${PROJECT_SOURCE_DIR}/src
  ${PROJECT_SOURCE_DIR}/thirdparty/Sophus
  ${CSPARSE_INCLUDE_DIR} #Has been set by SuiteParse
  ${CHOLMOD_INCLUDE_DIR} #Has been set by SuiteParse
  ${Boost_INCLUDE_DIRS}/usr/lib/x86_64-linux-gnu/libboost_system.so
)

# build shared library.
rosbuild_add_library(lsdslam SHARED ${SOURCE_FILES})
target_link_libraries(lsdslam ${FABMAP_LIB} g2o_core g2o_stuff csparse cxsparse g2o_solver_csparse g2o_csparse_extension g2o_types_sim3 g2o_types_sba X11 boost_system)
rosbuild_link_boost(lsdslam thread)

# build live ros node
rosbuild_add_executable(live_slam src/main_live_odometry.cpp)
target_link_libraries(live_slam lsdslam boost_system ${OpenCV_LIBS})

# build image node
rosbuild_add_executable(dataset_slam src/main_on_images.cpp)
target_link_libraries(dataset_slam lsdslam boost_system ${OpenCV_LIBS})

7、

/home/bdf/lsd-slam_ws/devel/lib/liblsdslam.so:对‘cv::getOptimalNewCameraMatrix(cv::_InputArray const&, cv::_InputArray const&, cv::Size_<int>, double, cv::Size_<int>, cv::Rect_<int>*, bool)’未定义的引用
/home/bdf/lsd-slam_ws/devel/lib/liblsdslam.so:对‘cv::waitKey(int)’未定义的引用
/home/bdf/lsd-slam_ws/devel/lib/liblsdslam.so:对‘cv::namedWindow(cv::String const&, int)’未定义的引用
/home/bdf/lsd-slam_ws/devel/lib/liblsdslam.so:对‘cv::destroyAllWindows()’未定义的引用
/home/bdf/lsd-slam_ws/devel/lib/liblsdslam.so:对‘cv::resizeWindow(cv::String const&, int, int)’未定义的引用
/home/bdf/lsd-slam_ws/devel/lib/liblsdslam.so:对‘cv::imshow(cv::String const&, cv::_InputArray const&)’未定义的引用
collect2: error: ld returned 1 exit status

解决:lsd_slam_core/CMakeLists.txt更改

target_link_libraries(live_slam lsdslam boost_system ${OpenCV_LIBS})
# build image node

target_link_libraries(dataset lsdslam boost_system ${OpenCV_LIBS})

ubuntu16.04安装、编译LSD-SLAM遇到错误及解决相关推荐

  1. [专业亲测]Ubuntu16.04安装Nvidia显卡驱动(cuda)--解决你的所有困惑【转】

    本文转载自: 因为要做毕设需要安装caffe2,配置cuda8.0,但是安装nvidia驱动真的是把我难倒了,看了很多篇博文都没有效果,现在我自己重新总结了下几种 安装方法(亲测有效),希望能帮到大家 ...

  2. [专业亲测]Ubuntu16.04安装Nvidia显卡驱动(cuda)--解决你的所有困惑

    因为要做毕设需要安装caffe2,配置cuda8.0,但是安装nvidia驱动真的是把我难倒了,看了很多篇博文都没有效果,现在我自己重新总结了下几种 安装方法(亲测有效),希望能帮到大家. 查看版本驱 ...

  3. Ubuntu16.04安装搜狗输入法后有黑边问题的解决方法

    apt-get install compton compton -b 转载于:https://www.cnblogs.com/xiaoyafei/p/8383678.html

  4. Ubuntu16.04安装Nvidia显卡驱动(cuda)

    [专业亲测]Ubuntu16.04安装Nvidia显卡驱动(cuda)--解决你的所有困惑 确实是可行的 下载完成之后: 卸载原先的所有驱动: #for case1: original driver ...

  5. 基于ubuntu16.04多用户编译android N(android 7.1)系统提示ninja_wrapper错误问题

    基于ubuntu16.04多用户编译android N(android 7.1)系统提示ninja_wrapper错误问题 Ubuntu 1604系统除了root,还有kandi和sundi两个用户, ...

  6. Linux ubuntu16.04 安装opencv4教程(源码编译)

    参考文章1:Ubuntu 安装 OpenCV(亲测有效) 参考文章2:OpenCV - Linux(Ubuntu 16.04)中安装OpenCV + OpenCV_Contrib 参考文章3:ubun ...

  7. ubuntu16.04安装opencv3.4.1教程

    最近opencv3.4.1发布了,想换个新的试试鲜,于是把配置的过程通过博文的方式记录下来,方便查阅.  本教程原为3.3.0,但经过博主亲测,3.4.0.3.4.1皆适用 1.去官网下载opencv ...

  8. python3.8.5是python3吗_科学网-Ubuntu16.04安装Python3.8.5问题及解决方法-陈超的博文

    Ubuntu16.04安装Python3.8.5: 安装编译之后出现apt-get错误You might want to run 'apt-get -f install' to correct the ...

  9. Ubuntu16.04安装文本标注工具brat

    brat 的下载地址http://brat.nlplab.org/ Ubuntu16.04安装CGI环境 安装Apache2 sudo apt install apache2 配置CGI 1)打开文件 ...

  10. Ubuntu16.04 安装 CUDA、CUDNN、OpenCV 并用 Anaconda 配置 Tensorflow 和 Caffe 详细过程(此种方案不好,好的方案是另一篇,基于pyhton2的)

    Ubuntu16.04 安装 CUDA.CUDNN.OpenCV 和 Caffe 详细过程(基于Python2,没有anaconda2和3,因为基于anaconda2和3在安装caffe时会报错,很难 ...

最新文章

  1. EOS账户和钱包综合指南
  2. C# Note27: GetHashCode方法
  3. [测试]将TestCase整合
  4. TCP listen() Backlog 参数详解
  5. ServiceStack.Redis之IRedisClient第三篇
  6. java商品新增怎麽弄_添加新商品时如何初始化计数器 - java
  7. mysql grep 提取错误日志_详解grep获取MySQL错误日志信息的方法
  8. Linux Epoll 一网打尽
  9. 随想录(强大的kprobe)
  10. 和DOM一起的日子:检测与预防DOM跨站脚本攻击
  11. 《算法图解》第二章笔记与课后练习_选择排序算法
  12. AE intersect、clip的实现
  13. 556. 下一个更大元素 III
  14. 记一次 windows server 2012R2 上安装 MSSQL2005 及网站发布
  15. python画球面_matplotlib中的球面坐标图
  16. scsi接口服务器硬盘转速,服务器硬盘接口SCSI结构、特点详解
  17. 使用c语言实现后缀表达式计算器
  18. 【2016北京集训】网络战争
  19. 写着代码的插画师—王凌 |WLOP|
  20. 银行卡识别-自动识别银行卡号

热门文章

  1. win10计算机用户怎么删除,Win10系统怎么管理的家庭成员账户? Win10删除账户的教程...
  2. Nodejs爬虫自动爬取百度图片
  3. 数商云:大宗商品撮合交易平台搭建丨加强业务、技术、应用与集成的创新
  4. 2022推荐大宗商品行业研究报告投资策略产业发展前景市场行情分析(附件中为网盘链接,报告持续更新)
  5. 黄家驹的《光辉岁月》永远流传,但IT人的光辉岁月已渐远去
  6. 安装git和创建版本库
  7. html弹出对话框 自动点击,c#如何自动点击网页弹出的对话框的确认键
  8. Spark SQL电影分析案例
  9. oracle 9i for redhat9 下载,RedHat9上安装Oracle9i手记(原作:hotman_x)
  10. PAT乙级1050 螺旋矩阵