FilterBoxList 筛选箱子
FilterBoxList 算子用于按照一定的需求来筛选箱子点云列表 cloudlist 。
ByAxisZ | 按照箱子点云列表 cloudlist 的 Z 轴坐标值进行筛选,筛选出最上层箱子,并对最上层箱子进行排序。 |
ByArea | 按照箱子点云列表 cloudlist 的抓取区域进行筛选,筛选出最先需要抓取的箱子及其附近某范围内的箱子。 |
ByAxisZ
算子参数
-
选择模式/select_mode
:选择筛选的模式。-
Z_MAX:在机器人坐标系下最高的箱子。
-
Z_MIN:在相机坐标系下最高的箱子。
-
-
选择阈值/select_thresh
:选择筛选的阈值。如果某个箱子的点云中心 Z 值与最高的箱子的点云中心 Z 值的差值小于阈值,则判定为最上层箱子。 -
x权重/weight_x
:筛选出最上层箱子列表后,对其按照 X 值和 Y 值进行排序,weight_x 为 X 值的权重。 -
y权重/weight_y
:筛选出最上层箱子列表后,对其按照 X 值和 Y 值进行排序,weight_y 为 Y 值的权重。 -
点云列表/cloud_list
:设置筛选后的点云列表在 3D 视图中的可视化属性。-
打开筛选后的点云列表可视化。
-
关闭筛选后的点云列表可视化。
-
设置筛选后的点云列表的颜色。取值范围:[-2,360] 。默认值:-1 。
-
设置筛选后的点云列表的尺寸。取值范围:[1,50] 。默认值:1 。
-
数据信号输入输出
输入:
-
cloudlist
:-
数据类型:PointCloudList
-
输入内容:筛选前的点云列表
-
输出:
-
cloudlist
:-
数据类型:PointCloudList
-
输出内容:筛选后的点云列表
-
功能演示
使用 FilterBoxList 算子中 ByAxisZ 对 cloudlist 进行筛选。
步骤1:算子准备
添加 Trigger 、Load 、Emit 、ClusterExtraction 、FilterBoxList 算子至算子图。
步骤2:设置算子参数
-
设置 Load 算子参数:
-
类型 → pointcloud
-
文件 → → 选择点云文件名 ( example_data/pointcloud/box_stack.pcd )
-
-
设置 Emit 算子参数:
-
类型 → pose
-
坐标 → 生成相机坐标系的 Pose ( 0 0 0 0 0 0 ) 。
-
坐标 → 可视
-
-
设置 ClusterExtraction 算子参数:
-
最小点数 → 10000
-
最大点数 → 100000
-
公差值 → 0.005
-
点云列表 → 可视
-
-
设置 FilterBoxList 算子参数:
-
类型→ ByAxisZ
-
选择模式→ Z_MIN
-
选择阈值→ 0.1
-
x权重 → 1
-
y权重→ 1
-
点云列表 → 可视
-
步骤3:连接算子
步骤4:运行
点击 RVS 运行按钮,触发 Trigger 算子
运行结果
-
打开 ClusterExtraction 算子的
点云列表
可视化属性值,3D视图显示如下。 -
打开 FilterBoxList 算子的
点云列表
可视化属性值,筛选出点云列表的最上层的箱子,去掉图像右侧的四个下层箱子。3D 视图显示如下。
ByArea
算子参数
-
x权重/weight_x
:按照 X 值和 Y 值选取最先抓取的箱子,x权重为 X 值的权重。 -
y权重/weight_y
:按照 X 值和 Y 值选取最先抓取的箱子,y权重为 Y 值的权重。 -
选择半径/select_radius
:根据最先抓取的箱子,筛选出与最先抓取的箱子中心点在 OXY 平面上的距离小于 select_radius 的箱子。 -
点云列表/cloud_list
:设置筛选后的点云列表在 3D 视图中的可视化属性。-
打开筛选后的点云列表可视化。
-
关闭筛选后的点云列表可视化。
-
设置筛选后的点云列表的颜色。取值范围:[-2,360] 。默认值:-1 。
-
设置筛选后的点云列表的尺寸。取值范围:[1,50] 。默认值:1 。
-
数据信号输入输出
输入:
-
cloudlist
:-
数据类型:PointCloudList
-
输入内容:筛选前的点云列表
-
输出:
-
cloudlist
:-
数据类型:PointCloudList
-
输出内容:筛选后的点云列表
-
功能演示
使用 FilterBoxList 中 ByArea 对 cloudlist 进行筛选。
步骤1:算子准备
添加 Trigger 、Load 、Emit 、ClusterExtraction 、FilterBoxList 算子至算子图。
步骤2:设置算子参数
-
设置 Load 算子参数:
-
类型 → pointcloud
-
文件 → → 选择点云文件名 ( example_data/pointcloud/box_stack.pcd )
-
点云 → 可视
-
-
设置 Emit算子参数:
-
类型 →Pose
-
坐标 →生成相机坐标系的Pose (0 0 0 0 0 0 )。
-
坐标 → 可视
-
-
设置 ClusterExtraction 算子参数:
-
最小点数 → 10000
-
最大点数 → 100000
-
公差值 → 0.005
-
点云列表 → 可视
-
-
设置 FilterBoxList 算子参数:
-
类型 → ByArea
-
x权重 → 1
-
y权重→ 1
-
选择半径 → 0.5
-
点云列表 → 可视
说明:按照 x权重 与 y权重 计算出最先抓取的箱子为左下角的箱子( x权重 * x + y权重 * y 从小到大排序),然后筛选出左下角箱子及其周边 选择半径范围内的箱子,这样的筛选结果便于开展多个箱子的组合抓取工作。
-
步骤3:连接算子
步骤4:运行
点击 RVS 运行按钮,触发 Trigger 算子
运行结果
-
打开 ClusterExtraction 算子的
点云列表
可视化属性值,3D 视图显示如下: -
打开 FilterBoxList 算子的
点云列表
可视化属性值。3D 视图筛选出点云列表的左下角箱子及其周边 0.5 米范围内的箱子,3D 视图显示如下: