本篇文章主要讲pcl中如何生成点云AABB包围盒和OBB包围盒
包围盒定义:
包围体是一个简单的几何空间,里面包含着复杂形状的物体。为物体添加包围体的主要的目的是快速进行碰撞检测。包围体类型包括球体、轴对齐包围盒(AABB)、有向包围盒(OBB)等。
这里主要介绍AABB和OBB:
轴对齐包围盒(AABB)就是包围盒对齐坐标轴,如上图黄色的包围盒;
有向包围盒(OBB)就是根据物体本身的几何形状来决定盒子的大小和方向,盒子无须和坐标轴垂直,这是一种最为选择最合适、紧凑的包围盒,如上图白色包围盒。
在pcl教程中提供了两种包围盒的生成方法:
使用 pcl::MomentOfInertiaEstimation 就可计算得到两种包围盒。
主要代码:
#include <pcl/features/moment_of_inertia_estimation.h>
#include <vector>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/visualization/cloud_viewer.h>
#include <boost/thread/thread.hpp>
int main (int argc, char** argv)
{
if (argc != 2)
return (0);
//读取
pcl::PointC