SortList 列表排序

SortList 算子用于列表排序,该算子按 Weight_x * x + weight_y * y + weight_z * z 计算结果从小到大排序。适用于 Pose 、Cube 、PointCloud 。

type 功能
Pose pose 列表排序。
Cube 立方体列表排序。根据立方体中心点 pose 进行排序。
PointCloud 点云列表排序。根据点云质心 pose 进行排序。
  • 模式/mode:排序后列表输出模式。默认值:LinearSort。

    • LinearSort:将输入数据列表按照权重排序输出。

    • ByDistance:根据参考点将坐标列表由近到远进行排序,输出排序后的坐标列表和对应的索引列表。

    • ReverseIndex:将输入数据列表倒序输出。

Pose

将 SortList 算子的 类型 属性选择 Pose ,用于 pose 列表排序。

算子参数

  • X权重/weight_x:x 轴 pose 权重。

  • Y权重/weight_y : y 轴 pose 权重。

  • Z权重/weight_z : z 轴 pose 权重。

  • 坐标列表/pose_list:设置排序后 pose 列表在 3D 视图中的可视化属性。

    • icon_visOn 打开排序后 pose 列表可视化。

    • icon_visOff 关闭排序后 pose 列表可视化。

    • icon_size 设置排序后 pose 列表的尺寸大小。取值范围:[0.001,10] 。默认值:0.1 。

  • 索引列表/index_list:设置排序后 pose 索引的曝光属性。可与交互面板中输出工具“表格”进行绑定。

    • icon_visOn 打开曝光。

    • icon_visOff 关闭曝光。

数据信号输入输出

  • poselist

    • 数据类型:PoseList

    • 输入内容: pose 列表数据

输出:

  • poselist

    • 数据类型:PoseList

    • 输出内容:排序 pose 列表数据

  • index_list

    • 数据类型:String

    • 输出内容:排序后索引列表

功能演示

使用 SortList 算子中 Pose 对加载的多个 pose 进行不同方式的排序。

假设: 1号坐标:(1,1,5)

​ 2号坐标:(2,1,5)

​ …

​ 5号坐标: (1,2,5)

​ …

​ 12号坐标:(3,4,5)

步骤1:算子准备

添加 Trigger 、Load 、SortList 算子至算子图。

步骤2:设置算子参数

  1. 设置 Load 算子参数:

    • 类型 → pose

    • 文件 →icon_more → 选择 pose 文件名( example_data/pose/poselist.txt )(文件内容如下)

    3D_SortList_Poselist

  2. 设置 SortList 算子参数:

    • 类型 → pose

    • 坐标 → icon_visOn 可视

步骤3:连接算子

3D_SortList_Pose_nodes1

步骤4:运行与结果

排序1: 按照1 -> 2 -> 3 -> 4 ->……12 排序:

  • 参考取值:

    • X权重: 1

    • Y权重 :4

    • Z权重 :0

  • 双击 3D 视图中的 pose ,打开 POSELIST 面板。点击“坐标列表”按钮,显示排序后所有坐标参数。

3D_SortList_Pose_result1

排序2: 按照 1 -> 4 -> 7 -> 10 -> 2……12 排序

  • 参考取值:

    • X权重:4

    • Y权重:1

    • Z权重 :0

  • 双击 3D 视图中的 pose ,打开 POSELIST 面板。点击“坐标列表”按钮,显示排序后所有坐标参数。

3D_SortList_Pose_result2

排序3: 按照 12 - > 11 -> 10- > 9……1 排序

  • 参考取值:

    • X权重:-1

    • Y权重 :-4

    • Z权重 :0

  • 双击 3D 视图中的 pose ,打开 POSELIST 面板。点击“坐标列表”按钮,显示排序后所有坐标参数。

3D_SortList_Pose_result3

排序4:按照 12 ->9 -> 6 -> 3 -> 11……1排序

  • 参考取值:

    • X权重:-4

    • Y权重 : -1

    • Z权重 :0

  • 双击 3D 视图中的 pose ,打开 POSELIST 面板。点击“坐标列表”按钮,显示排序后所有坐标参数。

3D_SortList_Pose_result4

Cube

将 SortList 算子的 类型 属性选择 Cube ,用于立方体列表排序。根据立方体中心点坐标进行排序。

算子参数

  • X权重/weight_x:x 轴坐标权重。

  • Y权重/weight_y : y 轴坐标权重。

  • Z权重/weight_z : z 轴坐标权重。

  • 立方体列表/cube_list:设置排序后立方体列表在 3D 视图中的可视化属性。

    • icon_visOn 打开立方体列表可视化。

    • icon_visOff 关闭立方体列表可视化。

    • icon_color 设置立方体列表的颜色。取值范围:[-2,360] 。默认值:-1 。

    • icon_opacity 设置立方体列表的透明度。取值范围:[0,1] 。默认值:0.5 。

  • 索引列表/index_list:设置排序后索引的曝光属性。可与交互面板中输出工具“表格”进行绑定。

    • icon_visOn 打开曝光。

    • icon_visOff 关闭曝光。

数据信号输入输出

  • cubelist

    • 数据类型:CubeList

    • 输入内容:立方体列表数据

输出:

  • cubelist

    • 数据类型:CubeList

    • 输出内容:排序后立方体列表数据

  • index_list

    • 数据类型:String

    • 输出内容:排序后索引列表

功能演示

使用 SortList 算子中 Cube 对加载的多个立方体进行不同方式的排序。

步骤1:算子准备

添加 Trigger 、Load 、SortList 算子至算子图。

步骤2:设置算子参数

  1. 设置 Load 算子参数:

    • 类型 → Cube

    • 目录 → icon_more → 选择 cube 文件目录名( example_data/cubelist )

  2. 设置 SortList 算子参数:

    • 类型 → Cube

    • 立方体列表 → icon_visOn 可视

步骤3:连接算子

3D_SortList_Cube_nodes

步骤4:运行

1. 将立方体按照 X 轴负方向排序

  • 参考取值:

    • X权重:-1

    • Y权重:0

    • Z权重:0

  • 双击 3D 视图中立方体,打开 CUBE_LIST 面板,点击按钮“ Cube 列表”,显示 Cube 索引 。当点击按钮“下一个”,索引会同步进行变换。

3D_SortList_Cube_result1

2. 将立方体 X 轴正方向排序

  • 参考取值:

    • X权重:1

    • Y权重:0

    • Z权重:0

  • 双击3D视图中立方体,打开CUBE_LIST面板,点击按钮“ Cube 列表”,显示 Cube 索引 。当点击按钮“下一个”,索引会同步进行变换。

3D_SortList_Cube_result2

PointCloud

将 SortList 算子的 类型 属性选择 PointCloud,用于点云列表排序。根据点云中心点坐标进行排序。

算子参数

  • X权重/weight_x:x 轴坐标权重。

  • Y权重/weight_y : y 轴坐标权重。

  • Z权重/weight_z : z 轴坐标权重。

  • 点云列表/cloud_list:设置排序后点云在 3D 视图中的可视化属性。

    • icon_visOn 打开过滤后点云可视化。

    • icon_visOff 关闭过滤后点云可视化。

    • icon_color 设置 3D 视图中点云的颜色。取值范围:[-2,360] 。默认值:-1 。

    • icon_size 设置点云中点的尺寸。取值范围:[1,50] 。默认值:1 。

  • 索引列表/index_list:设置排序后索引的曝光属性。可与交互面板中输出工具“表格”进行绑定。

    • icon_visOn 打开曝光。

    • icon_visOff 关闭曝光。

数据信号输入输出

输入:

  • cloud_list

    • 数据类型:PointCloudList

    • 输入内容:点云列表数据

输出:

  • cloud_list

    • 数据类型:PointCloudList

    • 输出内容:排序后点云列表数据

  • index_list

    • 数据类型:String

    • 输出内容:排序后索引列表

功能演示

使用 SortList 算子中 PointCloud 对加载的多个点云按照 X 轴正方向排序。

步骤1:算子准备

添加 Trigger 、Load 、SortList、CloudProcess (2 个)算子至算子图。

步骤2:设置算子参数

  1. 设置 Load 算子参数:

    • 类型 → pointcloud

    • 目录 →icon_more → 选择点云文件目录名( example_data/pointcloud/pointclouds )

  2. 设置 SortList 算子参数:

    • 类型 → PointCloud

    • X权重:1

    • Y权重:0

    • Z权重:0

    • 点云列表 → icon_visOn 可视

  3. 设置 CloudProcess/CloudProcess_1 算子参数:

    • 类型 → CloudCentroid

    • 坐标列表 → icon_visOn 曝光

    说明:CloudProcess 算子用于输出点云的中心点 pose,便于查看排序后点云中心点坐标位置。

步骤3:连接算子

3D_SortList_PointCloud_nodes

步骤4:运行

  1. 在交互面板中拖入 2 个输入工具——“标签”,分别输入文字:排序前/排序后。

  2. 再拖入 2 个 输出工具 ——”表格“,分别与CloudProcess/CloudProcess_1 的 pose_list 属性进行绑定。

  3. 点击 RVS 运行按钮,触发 Trigger 算子。

运行结果

  1. 结果如下图所示,在 3D 视图中显示 SortList 算子 cloud_list 可视化结果。

3D_SortList_PointCloud_result1

  1. 在交互面板中查看排序前后点云中心点 pose 对比。

3D_SortList_PointCloud_result2