• 点云应用——三维空间边界点排序+机器人轨迹引导(1)



    一、前言

    最近做了点云边界提取、并实时发送至机器人进行引导的研究,主要遇到了两个问题: 1)点云轨迹如何提取; 2)提取好的轨迹如何按照一定的顺序发送至机器人

    下面以随机一片点云为例,如图所示,我们需要做出如下操作:

    1)准确提取边界
    2)空间点排序,并按照顺时针或逆时针发送至机器人
    在这里插入图片描述
    在这里插入图片描述


    二、思路一:利用重建思路

    1、原理

    针对上述点云,进行三角重建;重建后每两个点形成边,依据半边网格结构,边界上的点形成半边只被共用一次,而内部点形成的边被共用两次。如下所示:边界(1、3)只有一次,边界(1、4)、边界(1、2)被用2次。只要提取出使用一次的顶点信息,即可提取出边界。

    在这里插入图片描述



    2、实现步骤

    1)重建效果
    如图所示,虽然进行了三角重建,但是重建算法依旧重建错误,误把边界点当成内部点,此时需要进行重建优化。

    在这里插入图片描述
    2)优化策略:我们根据重建后的网格可以得出,错误的三角面片与正确的三角面片往往几何差异巨大,比如边界,面片面积等;
    据此,我们设计一个几何特征过滤器,将差异化的面片进行滤除。过滤器选择依据自己点云特征。最终加上几何特征过滤器后重建结果,可以看出,效果非常优越。
    在这里插入图片描述
    3)边界提取:根据上述原理,进行边界提取,效果如下:
    在这里插入图片描述
    4)顺序提取:我们通过重建提取出边界点后,同样可以根据半边数据结构进行空间点排序,具体原理不做详细描述了。最终效果图如3所示
    3、实现效果

    在这里插入图片描述


    三、思路二:利用PCL边界提取方法+三维空间点排序

    1、原理

    此方法原理简单,主要分为几个步骤;1)pcl边界提取;2)聚类分割获取边界数量;3)空间点的排序

    2、实现步骤

    1)边界提取:采用pcl中常见的几种边界提取方法,效果如下:
    1)基于法线:参数(30,30,2)——单纯记录一下,以防后续需要。
    在这里插入图片描述

    2)滚球法:效果不行,可能参数不行,后续试试cgal中相关算法。
    在这里插入图片描述

    2)聚类分割:通过聚类分割即可分割出相应的内边界与外边界。

    在这里插入图片描述

    3)空间点排序:参考二维边界点云顺序(逆向)排序,点云侠——二维边界点排序。结果如3所示。此方法针对局部变化明显的地方会存在误判,仍需注意。

    3、实现效果

    内边界
    在这里插入图片描述
    外边界
    在这里插入图片描述
    其他数据
    在这里插入图片描述
    在这里插入图片描述

    四、后续

    后续还需要将此位置信息发送至机器人,引导机器人轨迹优化。但目前边界点并不是均匀点,仍需要进行均匀化采样,此步暂且不提。

    代码后续补充到《点云算法处理》,over!!!!


    在这里插入图片描述

  • 相关阅读:
    一款专为电压调节电路而设计的齐纳二极管工作原理及MMSZ4678T1G主要参数
    QService 服务 指令引用的“0x00000000”内存。该内存不能为“read“
    leetcode 93 Restore IP Addresses详解
    查看Java程序的进程编号
    【基础知识】什么是系统工程
    python爬虫案例-爬取山东各城市近两年的天气情况(附带源码)
    c++多态的使用
    GitLab统计代码提交行数
    Python 安装js环境
    最短编辑距离
  • 原文地址:https://blog.csdn.net/weixin_43236944/article/details/127794133