Pangolin软件包介绍
Pangolin是一个用于视觉SLAM(Simultaneous Localization and Mapping,同时定位与地图构建)的开源软件包,旨在帮助机器人、自动驾驶汽车、无人机和其他自主系统实现实时的三维环境感知和定位。该软件包由Steven Lovegrove和Rok Solidar于2013年创建,其主要功能是使用视觉传感器(例如摄像头)来实时构建环境地图并同时定位自身在该地图中的位置。
以下是Pangolin的一些关键特点和功能:
- 实时三维地图构建: Pangolin可以从一台或多台摄像头捕捉的图像中构建实时的三维地图,这对于自主导航和环境理解非常重要。
- 相机追踪: Pangolin具有功能强大的相机追踪能力,可以跟踪相机的姿势和运动,从而确定相机在环境中的位置。
- 数据可视化: 软件包提供了丰富的数据可视化工具,使用户能够直观地查看三维地图、相机轨迹、点云数据等。
- 多传感器支持: Pangolin不仅支持单一相机,还支持多个传感器,如立体相机、激光雷达和惯性测量单元(IMU),以提供更丰富的环境感知。
- 跨平台: Pangolin支持多个操作系统,包括Linux、Windows和macOS,以适应不同的开发需求。
- 开源性质: Pangolin是一个开源软件包,这意味着用户可以自由地访问、修改和分发其源代码,从而促进了社区合作和开发。
Pangolin主要用于研究、开发和测试SLAM算法,以及在机器人、自动驾驶汽车和无人机等应用中实现实时的环境感知和定位。它为开发人员提供了一个强大的工具,用于构建自主系统的核心感知和导航功能。
报错与解决
博主在使用cmake
编译自己的工程时,遇到了如下报错:
CMake Error at CMakeLists.txt:5 (find_package):
By not providing "FindPangolin.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "Pangolin",
but CMake did not find one.
Could not find a package configuration file provided by "Pangolin" with any
of the following names:
PangolinConfig.cmake
pangolin-config.cmake
Add the installation prefix of "Pangolin" to CMAKE_PREFIX_PATH or set
"Pangolin_DIR" to a directory containing one of the above files. If
"Pangolin" provides a separate development package or SDK, be sure it has
been installed.
-- Configuring incomplete, errors occurred!
解决方法是安装Pangolin软件包:
# 下载Pangolin
git https://github.com/stevenlovegrove/Pangolin.git
# 编译
cd Pangolin
mkdir build
cd build
cmake .. && make
sudo make install
# 注意sudo make install一定要执行,否则编译自己的工程会报错fatal error: pangolin/pangolin.h: 没有那个文件或目录
在编译Pangolin时发现GLEW软件包未安装:
CMake Error at cmake/FindGLEW.cmake:51 (MESSAGE):
Could not find GLEW
使用如下命令进行安装:
sudo apt install libglew-dev
安装完后,重新对Pangolin进行编译,成功编译与安装。
但编译自己的工程又遇到了如下的报错(报错只截取了一部分):
In file included from /usr/local/include/pangolin/utils/signal_slot.h:3,
from /usr/local/include/pangolin/windowing/window.h:35,
from /usr/local/include/pangolin/display/display.h:34,
from /usr/local/include/pangolin/pangolin.h:38,
from /home/a616708946/slambook/ch5/code/disparity.cpp:8:
/usr/local/include/sigslot/signal.hpp:109:79: error: ‘decay_t’ is not a member of ‘std’; did you mean ‘decay’?
109 | constexpr bool is_weak_ptr_compatible_v = detail::is_weak_ptr_compatible<std::decay_t<P>>::value;
| ^~~~~~~
| decay
解决方法是把CMakeLists.txt中的这一部分进行修改,修改完如下:
set( CMAKE_CXX_FLAGS "-std=c++14")
# set(CMAKE_CXX_FLAGS "-std=c++11 -g -Wall")
接着,编译自己的工程又遇到了如下的报错(报错只截取了一部分):
In file included from /usr/local/include/pangolin/gl/gl.h:324:0,
from /usr/local/include/pangolin/handler/handler.h:31,
from /usr/local/include/pangolin/display/widgets.h:32,
from /usr/local/include/pangolin/pangolin.h:40,
from /home/marcos/code/SensorsCalibration/lidar2camera/manual_calib/src/run_lidar2camera.cpp:9:
/usr/local/include/pangolin/gl/gl.hpp: In member function ‘void pangolin::GlTexture::CopyFrom(const pangolin::GlTexture&)’:
/usr/local/include/pangolin/gl/gl.hpp:348:5: error: ‘glCopyImageSubDataNV’ was not declared in this scope
glCopyImageSubDataNV(tex.tid, GL_TEXTURE_2D, 0, 0, 0, 0,
^~~~~~~~~~~~~~~~~~~~
/usr/local/include/pangolin/gl/gl.hpp:348:5: note: suggested alternative: ‘glCopyColorSubTable’
glCopyImageSubDataNV(tex.tid, GL_TEXTURE_2D, 0, 0, 0, 0,
^~~~~~~~~~~~~~~~~~~~
glCopyColorSubTable
Pangolin安装的版本有误,解决方法如下:文章来源:https://www.toymoban.com/news/detail-429446.html
cd Pangolin
cd build
sudo make uninstall
cd .. && rm -rf build
git checkout v0.6
mkdir build && cd build
cmake ..
cmake --build .
sudo make install
最后编译自己的工程成功,问题成功解决。文章来源地址https://www.toymoban.com/news/detail-429446.html
到了这里,关于报错解决:Could not find a package configuration file provided by “Pangolin“以及一系列问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!