Pangolin軟件包介紹
Pangolin是一個(gè)用于視覺(jué)SLAM(Simultaneous Localization and Mapping,同時(shí)定位與地圖構(gòu)建)的開(kāi)源軟件包,旨在幫助機(jī)器人、自動(dòng)駕駛汽車、無(wú)人機(jī)和其他自主系統(tǒng)實(shí)現(xiàn)實(shí)時(shí)的三維環(huán)境感知和定位。該軟件包由Steven Lovegrove和Rok Solidar于2013年創(chuàng)建,其主要功能是使用視覺(jué)傳感器(例如攝像頭)來(lái)實(shí)時(shí)構(gòu)建環(huán)境地圖并同時(shí)定位自身在該地圖中的位置。
以下是Pangolin的一些關(guān)鍵特點(diǎn)和功能:
- 實(shí)時(shí)三維地圖構(gòu)建: Pangolin可以從一臺(tái)或多臺(tái)攝像頭捕捉的圖像中構(gòu)建實(shí)時(shí)的三維地圖,這對(duì)于自主導(dǎo)航和環(huán)境理解非常重要。
- 相機(jī)追蹤: Pangolin具有功能強(qiáng)大的相機(jī)追蹤能力,可以跟蹤相機(jī)的姿勢(shì)和運(yùn)動(dòng),從而確定相機(jī)在環(huán)境中的位置。
- 數(shù)據(jù)可視化: 軟件包提供了豐富的數(shù)據(jù)可視化工具,使用戶能夠直觀地查看三維地圖、相機(jī)軌跡、點(diǎn)云數(shù)據(jù)等。
- 多傳感器支持: Pangolin不僅支持單一相機(jī),還支持多個(gè)傳感器,如立體相機(jī)、激光雷達(dá)和慣性測(cè)量單元(IMU),以提供更豐富的環(huán)境感知。
- 跨平臺(tái): Pangolin支持多個(gè)操作系統(tǒng),包括Linux、Windows和macOS,以適應(yīng)不同的開(kāi)發(fā)需求。
- 開(kāi)源性質(zhì): Pangolin是一個(gè)開(kāi)源軟件包,這意味著用戶可以自由地訪問(wèn)、修改和分發(fā)其源代碼,從而促進(jìn)了社區(qū)合作和開(kāi)發(fā)。
Pangolin主要用于研究、開(kāi)發(fā)和測(cè)試SLAM算法,以及在機(jī)器人、自動(dòng)駕駛汽車和無(wú)人機(jī)等應(yīng)用中實(shí)現(xiàn)實(shí)時(shí)的環(huán)境感知和定位。它為開(kāi)發(fā)人員提供了一個(gè)強(qiáng)大的工具,用于構(gòu)建自主系統(tǒng)的核心感知和導(dǎo)航功能。
報(bào)錯(cuò)與解決
博主在使用cmake
編譯自己的工程時(shí),遇到了如下報(bào)錯(cuò):
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一定要執(zhí)行,否則編譯自己的工程會(huì)報(bào)錯(cuò)fatal error: pangolin/pangolin.h: 沒(méi)有那個(gè)文件或目錄
在編譯Pangolin時(shí)發(fā)現(xiàn)GLEW軟件包未安裝:
CMake Error at cmake/FindGLEW.cmake:51 (MESSAGE):
Could not find GLEW
使用如下命令進(jìn)行安裝:
sudo apt install libglew-dev
安裝完后,重新對(duì)Pangolin進(jìn)行編譯,成功編譯與安裝。
但編譯自己的工程又遇到了如下的報(bào)錯(cuò)(報(bào)錯(cuò)只截取了一部分):
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中的這一部分進(jìn)行修改,修改完如下:
set( CMAKE_CXX_FLAGS "-std=c++14")
# set(CMAKE_CXX_FLAGS "-std=c++11 -g -Wall")
接著,編譯自己的工程又遇到了如下的報(bào)錯(cuò)(報(bào)錯(cuò)只截取了一部分):
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安裝的版本有誤,解決方法如下:文章來(lái)源:http://www.zghlxwxcb.cn/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
最后編譯自己的工程成功,問(wèn)題成功解決。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-429446.html
到了這里,關(guān)于報(bào)錯(cuò)解決:Could not find a package configuration file provided by “Pangolin“以及一系列問(wèn)題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!