欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

libpointmatcher安装和使用

程序员文章站 2022-03-25 22:24:03
libpointmatcher介绍: libpointmatcher is a modular library implementing the Iterative Closest Point (ICP) algorithm for aligning point clouds. It has app ......

libpointmatcher介绍:

  libpointmatcher is a modular library implementing the Iterative Closest Point (ICP) algorithm for aligning point clouds. It has applications in robotics and computer vision.

安装:

  1、提前准备

  a. Installing Boost
   安装命令 sudo apt-get install libboost-all-dev

  b. Installing Git
   安装命令 sudo apt-get install git-core

  c. Installing CMake
   sudo apt-get install cmake cmake-gui

  2、正式安装

  a .Installing Eigen
   安装命令 sudo apt-get install libeigen3-dev

       b. Installing libnabo
  git clone git://github.com/ethz-asl/libnabo.git
  cd libnabo
  gedit install.sh
  复制如下的命令到文件里面
  

#!/bin/bash
echo start
SRC_DIR=`pwd`
BUILD_DIR=${SRC_DIR}/build
mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ${SRC_DIR}
make
sudo make install
echo done!

  执行./install.sh

  c. Compiling the Documentation
  安装命令 sudo apt-get install doxygen
  安装命令 sudo apt-get install texlive-full

  d. Installing libpointmatcher
  cd ~/Libraries/
  git clone git://github.com/ethz-asl/libpointmatcher.git
  cd libpointmatcher
  gedit install.sh
  复制如下的命令到文件里面

#!/bin/bash
echo start
SRC_DIR=`pwd`
BUILD_DIR=${SRC_DIR}/build
mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
cmake -D CMAKE_BUILD_TYPE=RelWithDebInfo ${SRC_DIR}
make
sudo make install
echo done!

  执行./install.sh
编译用例:
  在libpointmatcher的example目录下
  修改CMakeLists.txt为

cmake_minimum_required(VERSION 3.5)
add_compile_options(-std=c++11)
find_package(Boost 1.45.0 COMPONENTS system filesystem regex)

#if(Boost_FOUND)
include_directories(${Boost_INCLUDE_DIRS})

add_executable(pmicp icp.cpp)
target_link_libraries(pmicp pointmatcher ${Boost_LIBRARIES})
install(TARGETS pmicp RUNTIME DESTINATION bin)

add_executable(icp_simple icp_simple.cpp)
target_link_libraries(icp_simple pointmatcher ${Boost_LIBRARIES})

add_executable(align_sequence align_sequence.cpp)
target_link_libraries(align_sequence pointmatcher ${Boost_LIBRARIES})

add_executable(list_modules list_modules.cpp)
target_link_libraries(list_modules pointmatcher ${Boost_LIBRARIES})

add_executable(build_map build_map.cpp)
target_link_libraries(build_map pointmatcher ${Boost_LIBRARIES})

add_executable(compute_overlap compute_overlap.cpp)
target_link_libraries(compute_overlap pointmatcher ${Boost_LIBRARIES})

add_executable(icp_advance_api icp_advance_api.cpp)
target_link_libraries(icp_advance_api pointmatcher ${Boost_LIBRARIES})

add_executable(icp_customized icp_customized.cpp)
target_link_libraries(icp_customized pointmatcher ${Boost_LIBRARIES})

#endif()

 

  进入example的build文件夹下执行make,会在当先目录下生成可执行文件
添加环境变量:
  gedit /etc/profile
  在最后面添加 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/
  source /etc/profile
执行用例:
  在build目录下执行  ./icp_simple ../../examples/data/car_cloud400.csv ../../examples/data/car_cloud401.csv

  执行结果:

  Final transformation:
  0.983804 -0.179247 -0.0575061
  0.179247 0.983804 -0.228765
  0 0 1

  无报错成功!