#include<octomap/octomap.h>
octomap::OcTree tree(o.o5); //参数为分辨率
octomap::Pointcloud clound; //octomap中的点云
cloud.push_back(pointWorld[0],pointWorld[1],pointWorld[2]); //将世界坐标系中的点放入点云
tree.insertPointCloud(cloud,octomap::point3d(T(0,3),T(1,3),T(2,3)));
//将点云存入八叉树地图,给定原点,这样可以计算射线
//函数原型为:void insertPointCloud(const Pointcloud &scan,
const octomap::point3d &sensor_origin,//是指传感器相较于全局参考帧的原点
double maxrange = -1.,//单个波束插入的最大范围
bool lazy_eval = false,//是否更新被遗漏的内部结点,为真则必须调用updateInnerOccupancy()
bool discretize = false ) // 和离散化有关的参数,
tree.updateInnerOccupancy(); //更新中间节点的占据信息并写入磁盘
tree.writeBinary(octomap.bt); //将八叉树地图写入二进制文件
CMakeLists.txt的写法
cmake_minimum_required(VERSION 2.8)
project(dense_mapping)
set(CMAKE_CXX_FLAGS "-std=c++11")
find_package(octomap REQUIRED)
include_directories(${OCTOMAP_INCLUDE_DIRS})
add_exec