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++)
find_package(Boost 1.45. 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

  无报错成功!

  

  

libpointmatcher安装和使用的更多相关文章

  1. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  2. 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法

    如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...

  3. Sublime Text3安装JsHint

    介绍 Sublime Text3使用jshint依赖Nodejs,SublimeLinter和Sublimelinter-jshint. NodeJs的安装省略. 安装SublimeLinter Su ...

  4. Fabio 安装和简单使用

    Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...

  5. gentoo 安装

    加载完光驱后 1进行ping命令查看网络是否通畅 2设置硬盘的标识为GPT(主要用于64位且启动模式为UEFI,还有一个是MBR,主要用于32位且启动模式为bois) parted -a optima ...

  6. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...

  7. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...

  8. 【原】nodejs全局安装和本地安装的区别

    来微信支付有2年多了,从2年前的互联网模式转变为O2O模式,主要的场景是跟线下的商户去打交道,不像以往的互联网模式,有产品经理提需求,我们帮忙去解决问题. 转型后是这样的,团队成员更多需要去寻找业务的 ...

  9. tLinux 2.2下安装Mono 4.8

    Tlinux2.2发行版基于CentOS 7.2.1511研发而成,内核版本与Tlinux2.0发行版保持完全一致,更加稳定,并保持对Tlinux2.0的完全兼容.Mono 4版本要求CentOS 7 ...

随机推荐

  1. es6(三)

    四 . 字符串扩展:

  2. 学习python D1

    shell脚本最擅长移动文件和替换文本,并不适合GUI界面或者游戏开发,Python是一种解释型语言,在程序开发阶段可以为你节省大量时间 Python2的用户输入需要用raw_input()而非inp ...

  3. JavaScript中事件委托(事件代理)详解

    在JavaScript的事件中,存在事件委托(事件代理),那么什么是事件委托呢? 事件委托在生活中的例子: 有三个同事预计会在周一收到快递.为签收快递,有两种办法:一是三个人在公司门口等快递:二是委托 ...

  4. Django知识总结(三)

    拾伍 ● Ajax技术 一 ● Ajax定义 Ajax: 异步的 JavaScript 和 XML (Asynchronous+Javascript+XML) 通过Ajax, 我们可以在不重新加载整个 ...

  5. HDU2138(Miller-Rabin素数检测)

    最近在看RSA,找到一个一个大素数是好多加密算法的关键一步,而大素数无法直接构造,一般情况下都是生成一个随机数然后判断是不是素数.判断是否是素数的方法有好多,有的能够准确判断,比如可以直接因式分解(R ...

  6. 如何用EFCore Lazy Loading实现Entity Split

    α角 与 β角 支持 现实生活 的 计算机系统,总有着两大偏差,第一个是 现实生活 与 计算机系统 的α角,另外一个是计算机系统的 逻辑设计 与 物理设计 的β角.举个栗子: α角:假设某个公司的商业 ...

  7. JDBC连接ORACLE的三种URL格式

    格式一: Oracle JDBC Thin using an SID jdbc:oracle:thin:@host:port:SID 例如: jdbc:oracle:thin:@localhost:1 ...

  8. 类 Arrays StringBuilder 跟 StringBuffer 的异同 SimpleDateFormat

    类 String 同:起连接字符串类型作用 异: StringBuffer    //线程安全  效率慢 StringBuilder   //线程不安全  效率快 类 Arrays copyOf  ( ...

  9. JAVA面向对象之重载与重写

    重写:子类对父类方法的重新编写 返回值不变,形参不变 不能抛出新的或者范围更广的异常 class Animal{ public void move(){ System.out.println(&quo ...

  10. shell练习题3

    需求如下: 请按照这样的日期格式(xxxx-xx-xx)每天生成一个文件,例如今天生成的文件为2018-10-19.log, 并把磁盘的使用情况入到这个文件,(不需要写cron,写脚本即可) 参考解答 ...