翻出了在实验室落灰的小觅相机,打算跑一下看看点云地图效果如何。
电脑是ubuntu20.04系统,官方介绍的支持平台最高到18.04,我想着应该差不多都能跑起来,于是进行了一些尝试。
官方SDK文档为 MYNT EYE D SDK
具体流程参考 ubuntu源码安装
因为之前已经安装过ROS1所以OpenCV和PCL库都有,但是因为版本问题,后续SDK编译的时候需要稍微改一下CMake
在 2.2 编译 SDK 中运行
make all
会出现如下错误
这个问题是PCL版本问题造成的,因为SDK的CMakeLists.txt里面使用的是c++11,但是ubuntu20.04默认安装的PCL10.0需要c++14的语法,因此只需在CMakeLists.txt里面添加c++14的部分即可,具体如下:
定位到MYNT-EYE-D-SDK/CMakeLists.txt文件第59行
发现对于c++版本设置在MYNT-EYE-D-SDK/cmake/DetectCXX11.cmake文件中,定位到33-46行:
上述code大概意思就是先找有没有c++11版本,如果有就设置为c++11
参考c++版本设置
改为如下代码
set(CXX_FLAGS_EXTRA "")
include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++14" COMPILER_SUPPORTS_CXX14)
check_cxx_compiler_flag("-std=c++11" COMPILER_SUPPORTS_CXX11)
check_cxx_compiler_flag("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
if(COMPILER_SUPPORTS_CXX14)
set(CXX_FLAGS_EXTRA "-std=c++14")
message(STATUS "Using flag -std=c++14")
elseif(COMPILER_SUPPORTS_CXX11)
set(CXX_FLAGS_EXTRA "-std=c++11")
message(STATUS "Using flag -std=c++11")
elseif(COMPILER_SUPPORTS_CXX0X)
set(CXX_FLAGS_EXTRA "-std=c++0x")
message(STATUS "Using flag -std=c++0x")
else()
message(FATAL_ERROR "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
endif()
添加对于c++14的版本,编译显示下图就表明添加成功,然后就可以成功编译PCL库了
最后编译成功
成功运行小觅相机(示例)!
但是深度信息没有那么准,还需要去不同环境检测一下
下面电源传输线一定要拧紧,不然容易松动,导致信号中断