位姿法向估计流程
主要流程概述
该流程主要是针对搬运位姿法向估计设计的一些可用方法,这些流程可在搬运位姿后处理中使用,在atom1.1.1及以前的版本中主要通过搬运位姿估计(基于点云法向)、搬运位姿估计(基于聚类点云包围盒)两个节点进行实现,这两个节点中包含了点云分割、法向计算等过程,无法看到每一步的结果,难以调参。 所以在atom1.1.2版本中,新增了一些流程用于搬运位姿法向估计,详见下图:
图中1和5是atom1.1.1以前版本中的节点,为了更好的看到中间结果进行调参,也增加节点选择的自由度,在不同场景用不同方法以达到更好的效果,在atom1.1.2中,节点1、5保留,且节点1可被流程2、3替换,节点5可被流程6替换,流程4是新增的平面拟合计算法向方法。

流程设计参考
根据上图,位姿法向估计功能可由以上6种方式实现,其中1、2、3是利用法向估计方法实现,4是由平面拟合方法实现,5、6是利用点云包围框计算方法实现。1,5两个节点在前文纯图像识别流程中已有介绍,在此不赘述。
1. 首先用搬运位姿提取检测结果节点得到检测结果,再用根据检测结果提取点云节点分割出每个检测结果对应点云
2. 然后用不同的方法进行法向估计:
-
2、3点云包围框计算进行位姿估计的设计:
-
通过点云滤波方法或点云聚类方法去掉离散点云,然后用计算点云包围框节点得到每块点云的中心点和平均法向,此平均法向是根据包围框朝向计算出来的。其中,使用聚类方法相关方法时,需要设置保留分割结果数量为1,即对每一块输入点云,都输出一个分割出来最大的点云,以保证搬运位姿和分割出来的点云是对应的。
-

-
其中在计算点云包围框之前可加入相关的点云降采样等方法,以提高精度和速度。
-
4平面拟合进行位姿法向估计的设计:
-
-
用点云平面拟合节点得到每块点云的中心点和平均法向,此平均法向是拟合平面的方程参数得到的。
-
其中在平面拟合之前可加入相关的点云降采样等方法,以提高精度和速度。
-
6点云法向计算进行位姿估计的设计:
-
-
此流程在根据检测结果提取点云节点处需要设置形状类型为centerCircle,以减少点云操作时间,分割出每个检测结果中心点处圆形区域对应点云,再进行点云滤波等方法,然后用点云法向估计节点估计方向,再从法向点云中用获取平均法向与中心点节点得到每块点云的中心点和平均法向,此平均法向是根据估计的法向计算出来的。

3. 将输出的法向和点云中心点输入到估计搬运位姿(法向输入)节点进行搬运位姿的法向估计
参数调优
1. 平面拟合
-
原理:
-
利用Ransac方法进行平面拟合得到平面方程参数、拟合点云结果、拟合点云法向、拟合点云平面中心点,此节点适用于目标较平整但是可能有凹凸不平的场景
-
-
参数:
-
损失函数阈值:Ransac拟合平面的损失函数阈值
-
迭代次数:迭代多次,每次结束后将已经拟合的平面点云去除,再重新拟合剩下点云,直到无法拟合,迭代次数增加,拟合平面中点的数量会增加,时间会相应增加
-
平面平行线方向:即拟合平面法向方向,可估计一个方向
-
角度差值阈值:设置拟合出来的平面法向与平面平行线方向的角度差值阈值,每次迭代中,二者差值过大则不保留此结果
-
拟合平面最少点数:设置拟合出来的平面法向内点最小数量,每次迭代中,拟合平面点数小于此值则不保留此结果
-
拟合平面最多点数:设置拟合出来的平面法向内点最大数量,每次迭代中,拟合平面点数大于于此值则不保留此结果
-
中心点计算方法:"均值", "中位数", '最大最小中值', "拟合方程中心点",均值和中位数是拟合出来平面内点的均值与中位数,最小最大中值则为拟合平面中最小点和最大点之和除以2,拟合方程中心点是指用拟合平面的内点的均值x, y和平面方程计算出一个z值,最后返回[x,y,z]为中心点
-
2. 估计搬运位姿(法向输入)
-
原理:
-
输入法向和点云中心点数据,对搬运位姿中的pose进行调整,默认调整旋转,可选调整z值
-
-
参数:
-
更新位姿z值:用输入的中心点更新结果中的pose的z值,此开关打开时,需保证点云中心点输入不为空,若开关关闭,则可不输入点云中心点
-