ubuntu中需要安裝的開源庫(SLAM14講為主)
新裝了ubuntu16.04,之前的開源庫全部需要重灌,這裡總結一下需要裝的庫,以及裝的步驟。
總的來說,需要裝Eigen線性代數庫、Sophus李代數庫、OpenCV計算機視覺庫、PCL點雲庫、Ceres非線性優化庫、G2O圖優化庫(Octomap八叉樹地相簿、DBoW3詞袋模型庫)
1、Eigen線性代數庫
Eigen庫是一個C++線性代數開源庫,它提供了有關線性代數、矩陣和向量運算、數值分析及相關的演算法。
其安裝比較簡單:
sudo apt-get install libeigen3-dev
驗證安裝成功:
sudo updatedb
locate eigen3
2、Sophus李代數庫
Sophus庫提供李代數的支援。
2.1下載
git clone http://github.com/strasdat/Sophus.git
2.2安裝:
cd XXXX mkdir build cd build cmake .. make
3、OPENCV視覺計算機庫
sudo apt-get install build-essential libgtk2.0-dev libvtk5-dev libjpeg-dev libtiff5-dev libjasper-dev libopenexr-dev libtbb-dev
......(安裝步驟參看2.2) make #編譯 sudo make install #安裝
4、PCL點雲庫的安裝
安裝依賴庫:
sudo apt-get update
sudo apt-get install git build-essential linux-libc-dev
sudo apt-get install cmake cmake-gui
sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev
sudo apt-get install mpi-default-dev openmpi-bin openmpi-common
sudo apt-get install libflann1.8 libflann-dev
sudo apt-get install libeigen3-dev
sudo apt-get install libboost-all-dev
sudo apt-get install libvtk5.10-qt4 libvtk5.10 libvtk5-dev
sudo apt-get install libqhull* libgtest-dev
sudo apt-get install freeglut3-dev pkg-config
sudo apt-get install libxmu-dev libxi-dev
sudo apt-get install mono-complete
sudo apt-get install qt-sdk openjdk-8-jdk openjdk-8-jre
下載原始碼
git clone https://github.com/PointCloudLibrary/pcl.git
編譯(時間漫長)
cd pcl
mkdir release
cd release
cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/usr \
-DBUILD_GPU=ON -DBUILD_apps=ON -DBUILD_examples=ON \
-DCMAKE_INSTALL_PREFIX=/usr ..
make
安裝
sudo make install
測試安裝結果:
測試程式碼main.cpp:
#include <iostream>
#include <pcl/common/common_headers.h>
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/console/parse.h>
int main(int argc, char **argv) {
std::cout << "Test PCL !!!" << std::endl;
pcl::PointCloud<pcl::PointXYZRGB>::Ptr point_cloud_ptr (new pcl::PointCloud<pcl::PointXYZRGB>);
uint8_t r(255), g(15), b(15);
for (float z(-1.0); z <= 1.0; z += 0.05)
{
for (float angle(0.0); angle <= 360.0; angle += 5.0)
{
pcl::PointXYZRGB point;
point.x = 0.5 * cosf (pcl::deg2rad(angle));
point.y = sinf (pcl::deg2rad(angle));
point.z = z;
uint32_t rgb = (static_cast<uint32_t>(r) << 16 |
static_cast<uint32_t>(g) << 8 | static_cast<uint32_t>(b));
point.rgb = *reinterpret_cast<float*>(&rgb);
point_cloud_ptr->points.push_back (point);
}
if (z < 0.0)
{
r -= 12;
g += 12;
}
else
{
g -= 12;
b += 12;
}
}
point_cloud_ptr->width = (int) point_cloud_ptr->points.size ();
point_cloud_ptr->height = 1;
pcl::visualization::CloudViewer viewer ("test");
viewer.showCloud(point_cloud_ptr);
while (!viewer.wasStopped()){ };
return 0;
}
CMakeLists.txt檔案:
cmake_minimum_required(VERSION 2.6)
project(pcl_test)
find_package(PCL 1.2 REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
add_executable(pcl_test main.cpp)
target_link_libraries (pcl_test ${PCL_LIBRARIES})
install(TARGETS pcl_test RUNTIME DESTINATION bin)
把main.cpp和CMakeLists.txt放在同一個資料夾後,執行
mkdir build
cd build
cmake..
cd ..
make
./pcl_test
結果:
5、Ceres非線性優化庫
見上一篇部落格。
6、g2o圖優化庫
安裝依賴項:
sudo apt-get install libqt4-dev qt4-qmake libqglviewer-dev libsuitesparse-dev libcxsparse3.1.2 libcholmod3.0.6
(最後一個是需要按tab鍵補全的,我選擇的是比較高的一個版本)
下載原始碼:
cmake編譯安裝
cd g2o
mkdir build
cd build
cmake..
makesudo make install
安裝成功後可以在/usr/local/include/g2o中找到其標頭檔案,在/usr/local/lib中找到其庫檔案。
7、Pangolin
https://github.com/stevenlovegrove/Pangolin
.............