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

news2024/11/25 1:46:58

三维空间边界点排序+机器人轨迹引导

  • 一、前言
  • 二、思路一:利用重建思路
  • 三、思路二:利用PCL边界提取方法+三维空间点排序
  • 四、后续


一、前言

最近做了点云边界提取、并实时发送至机器人进行引导的研究,主要遇到了两个问题: 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!!!!


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/4688.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python画爱心——一颗会跳动的爱心~

节日就快到来了,给你的Ta一个惊喜吧~ 今天给大家分享一个浪漫小技巧,利用Python制作一个立体会动的心动小爱心 成千上百个爱心汇成一个大爱心,从里到外形成一个立体状,给人视觉上的冲击感!浪漫极了↓ 微信扫码添加&a…

CUDA 从入门到放弃(一)

CUDA从入门到放弃系列包含内容 异构并行计算CUDA编程模型CUDA执行模型CUDA内存CUDA流和并发CUDA指令级原语GPU加速库多GPU编程 本文你将了解到 异构并行计算CUDA编程模型 温馨提示: 本文可能引发C/C零基础的读者不适,请谨慎观看. 一、聊聊异构并行计算 异构并行计算的本质是…

MQTT Broker mosquito配置以及使用tls证书登录附上Python调用代码

MQTT Broker mosquito配置以及使用tls证书登录 文章目录MQTT Broker mosquito配置以及使用tls证书登录1. 前言2. 安装3. mosquito相关命令3.1 运行停止查看状态3.2 创建可以登录mosquito的用户3.3 配置权限规则文件3.4 配置mosquito3.5 使用mosquito_pub和mosquito_sub测试3.5.…

web手势库Alloyfinger

前言 在上一篇文章 前端pdf预览、pdfjs的使用,我们使用pdf.js 来实现了pdf的预览。但是客户车间里的电脑是触摸屏,要求能够手势放大图纸,能够拖动图纸。最终决定使用 Alloyfinger 来解决手势的问题。 官方github https://github.com/Alloy…

计算机网络(一):计算机网络概念、功能、组成

计算机网络的概念 计算机网络:是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统 计算机网络是互连的、自治的计算机集合。 互连:互联互通 自治:无…

前端面经 前端优化

前端面经 前端优化 文章目录前端面经 前端优化HTTP/2 Web优化最佳实践DNS与解析如何使用CDN分发缓存策略页面渲染优化避免CSS、JS阻塞CSS阻塞JS的阻塞改变JS阻塞的方式使用字体图标iconfont代替图片图标降低CSS选择器的复杂性减少重绘和回流如何避免图片资源优化Webpack优化降低…

【Vue】VueCLI 的使用和单文件组件(1)

学习内容: 1)了解一下 Vue 的脚手架工具; 2) 认识一下 Vue 里面的单文件组件。‍‍ 在真正开发大型项目的时候,实际上我们并不能通过一个这样的index点html的方式去编写一个比较大型的项目,‍‍ 所以我们要学习使用 V…

JavaScript 69 JavaScript Web API 69.3 Web History API

JavaScript 文章目录JavaScript69 JavaScript Web API69.3 Web History API69.3.1 History back() 方法69.3.2 History go() 方法69.3.3 History 对象属性69.3.4 History 对象方法69 JavaScript Web API 69.3 Web History API Web History API 提供了访问 windows.history 对…

Linux进程与操作系统详解

文章目录一:冯诺依曼体系二:操作系统三:进程和PCB四:进程相关的指令五:getpid和getppid系统调用六:fork系统调用七:进程状态八:Linux下进程状态大全8.1:R(running)8.2&am…

Hive3 - HiveSQL 特征及操作

一、HiveSQL特征 Hive SQL(HQL)与SQL的语法大同小异,基本上是相通的,对SQL掌握的可以非常快的上手使用Hive SQL。不过在一些细节上需要特别注意Hive自己特有的语法知识点,下面分别进行介绍。 1. 字段数据类型 Hive数…

【附源码】Python计算机毕业设计烹饪课程预约系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

电脑重装系统c盘如何备份资料

现在越来越多的用户都喜欢重装自己所喜欢的电脑系统,但需要在重新安装系统之前备份自己的电脑。因此有很多用户问重装系统c盘如何备份的文件。今天小编就教下大家重装系统c盘如何备份的教程。 工具/原料: 系统版本:windows7系统 品牌型号&…

多目标应用:非支配排序的鲸鱼优化算法NSWOA优化RBF神经网络实现数据预测(RBF隐藏层神经元个数可以自行设定)

一、非支配排序的鲸鱼优化算法 非支配排序的鲸鱼优化算法(Non-Dominated Sorting Whale Optimization Algorithm,NSWOA)由Pradeep Jangir和 Narottam Jangir于2017年提出。 NSWOA算法流程如下: 二、RBF神经网络 1988年&#xf…

Spring-Aop面向切面编程

文章目录一、简介1、作用2、AOP核心概念3、五种(增强)通知类型二、AOP入门小案例(注解版)1.导入坐标(pom.xml)2.制作连接点(原始操作,Dao接口与实现类)3:定义通知类和通知4:定义切入点5:制作切面6:将通知类配给容器并标…

Linux操作系统

Linux 基础入门 Linux操作系统 操作系统 首先,我们需要知道什么是操作系统: 操作系统是应用程序运行的基础支撑环境操作系统作用是管理与控制计算机系统硬件与软件资源(软件与硬件的中间层)Intel X86 架构上的常见的操作系统&…

linux基本指令(上)

文章目录1.whomai指令2. pwd指令3. ls 指令1. ls指令2. ls -l指令3.ls -la指令1. cd .2. cd . .4. ls -ld指令5. ls -i指令1. windows 与linux标识文件之间的区别6. ls -R指令4. cd指令1.cd 指令2. cd ~ 指令3.cd -指令5. 根目录1.绝对路径2.相对路径例判断相对路径是否唯一6. …

leetcode-每日一题-119-杨辉三角2(简单,dp)

今天这道题是一道简单的dp题说实话很好想到解法,就是用两个dp来回倒换即可解除,然后也没啥难度所以就不解释了,养成一个好习惯就是设置数组的时候需要malloc动态获取即可,然后使用memset进行初始化,注意memset只能进行…

期货行权(期货行权日)

​ 期权如何行权?期货到期了如何进行实物交割? 期权到期日 Expiration Date:到期日即是指期权合约所规定的,期权购买者可以实际执行该期权的最后日期。 对欧式期权而言,为期权合约可以行权的唯一一天;对…

[附源码]计算机毕业设计JAVAjsp心理测评系统

[附源码]计算机毕业设计JAVAjsp心理测评系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis…

经典图割算法中图的构建及实现:Graph-Cut

经典图割算法中图的:Graph-Cut一.graph-cut:准则函数二.Graph-cut:图的建立1.术语:2.图的建立3. 头文件4. 源文件5. 测试图像讲解目前典型的3种图割算法:graph-cut、grab-but、one-cut。本文主要讲解graph-…