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 视图显示如下: