Selector 选择元素

Selector 算子为选择元素。将多条控制信号流和数据流通过逻辑或的方式并联在一起,合并后再触发后续算子。在 start 被触发的基础上,任意一个 input _? 端口被触发,都会触发 finished 端口,对应的 input _? 也会被触发并输出对应数据。

Selector 算子介绍视频教程

类型 功能
CalibInfo 标定文件选择,将多条标定文件数据合并在一起,根据触发 input_? 端口输出对应的标定文件数据。
Cube 立方体选择,将多条立方体数据合并在一起,根据触发 input_? 端口输出对应的立方体数据。
Cylinder 圆柱体选择,将多条圆柱体数据合并在一起,根据触发 input_? 端口输出对应的圆柱体数据。
Image 图像选择,将多条图像数据合并在一起,根据触发 input_? 端口输出对应的图像数据。
PointCloud 点云选择,将多条点云数据合并在一起,根据触发 input_? 端口输出对应的点云数据。
Pose pose 选择,将多条 pose 数据合并在一起,根据触发 input_? 端口输出对应的 pose 数据。
String 字符串选择,将多条 string 数据合并在一起,根据触发 input_? 端口输出对应的 字符串数据。

CalibInfo

将 Selector 算子的 类型 属性选择 CalibInfo,用于标定文件选择,将多条标定文件数据合并在一起,根据触发 input_? 端口输出对应的标定文件数据。

算子参数

  • 是否为列表/is_list:数据类型为:bool 。设置是否将算子输入输出端口变为列表形式。

    • True:元素类型变为 calib_info_list。

    • False:元素类型为 calib_info。

  • 输入数量/number_input:决定该算子的输入端口 input_? 的数量。范围:[1,10] 。默认值:2。

控制信号输入输出

  • input_ ?

    • 任意一个输入 input_ ? 端口被触发,都会触发对应 output_? 输出端口。

数据信号输入输出

输入:

  • calib_info_?

    • 数据类型:CalibInfo

    • 输入内容:标定文件

输出:

  • calib_info

    • 数据类型:CalibInfo

    • 输出内容:标定文件

功能演示

使用 Selector 算子中 CalibInfo 进行标定文件选择。将 2 条标定文件数据合并在一起,根据触发 input_? 端口输出对应的标定文件数据。

步骤1:算子准备

添加 Trigger (2个)、LoadCalibFile(2个) 、Selector 算子至算子图。

步骤2:设置算子参数

  1. 设置 LoadCalibFile 算子参数:

    • 算子名称 → LoadCalibFile_depth

    • 相机标定文件 → 选择 fs820 depth镜头标定文件(example_data/CalibFile/ty_depth_calib_fs820_207000115384.txt)

  2. 设置 LoadCalibFile_1 算子参数:

    • 算子名称 → LoadCalibFile_color

    • 相机标定文件 → 选择 fs820 rgb镜头标定文件(example_data/CalibFile/ty_color_calib_fs820_207000115384.txt)

  3. 设置 Selecor 算子参数:

    • 类型 → CalibInfo

    • 输入数量 → 2

步骤3:连接算子

image-20230822175934141

步骤4:运行

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

运行结果

  1. 当触发 Trigger 算子,会触发 input_0 端口,算子图运行如下图所示,日志视图中显示 fs820 相机的depth镜头参数。

    image-20230822180043372

  2. 当触发 Trigger_1 算子,会触发 input_1 端口,算子图运行如下图所示,日志视图中显示 fs820 相机的 rgb 镜头参数。

    image-20230822180326147

Cube

将 Selector 算子的 类型 属性选择 Cube,用于立方体选择,将多条立方体数据合并在一起,根据触发 input_? 端口输出对应的立方体数据。

算子参数

  • 是否为列表/is_list:数据类型为:bool 。设置是否将算子输入输出端口变为列表形式。

    • True:元素类型变为 cube_list。

      • False:元素类型为 cube。

  • 输入数量/number_input:决定该算子的输入端口 input_? 的数量。范围:[1,10] 。默认值:2。

  • 立方体/cube:设置立方体在 3D 视图中的可视化属性。

    • icon_visOn 打开立方体可视化。

    • icon_visOff 关闭立方体可视化。

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

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

控制信号输入输出

  • input_ ?

    • 任意一个输入 input_ ? 端口被触发,都会触发对应 output_? 输出端口。

数据信号输入输出

输入:

  • cube_?

    • 数据类型:Cube

    • 输入内容:立方体数据

输出:

  • cube

    • 数据类型:Cube

    • 输出内容:立方体数据

功能演示

使用 Selector 算子中 Cube 进行图像选择。将 2 条立方体数据合并在一起,根据触发 input_? 端口输出对应的cube数据。

步骤1:算子准备

添加 Trigger (2个)、Emit(2个) 、Selector 算子至算子图。

步骤2:设置算子参数

  1. 设置 Emit 算子参数:type → Cube

  2. 设置 Emit_1 算子参数:

    • 类型 → Cube

    • 宽度 → 0.3

  3. 设置 Selecor 算子参数:

    • 类型 → Cube

    • 输入数量 → 2

    • 立方体 → icon_visOn 可视

步骤3:连接算子

Basic_Selector_Cube_nodes

步骤4:运行

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

运行结果

  1. 当触发 Trigger 算子,会触发 input_0 端口,算子图运行如下:

    Basic_Selector_Cube_result2

  2. 结果如下图所示,3D 视图中显示 image_0 端口的立方体数据:

    Basic_Selector_Cube_result3

  3. 当触发 Trigger 算子,会触发 input_1 端口,算子图运行如下:

    basic_selector_result1

  4. 结果如下图所示,3D 视图中显示 image_1 端口的立方体数据:

    Basic_Selector_Cube_result4

Cylinder

将 Selector 算子的 类型 属性选择 Cylinder,用于圆柱体选择,将多条圆柱体数据合并在一起,根据触发 input_? 端口输出对应的圆柱体数据。

算子参数

  • 是否为列表/is_list:数据类型为:bool 。设置是否将算子输入输出端口变为列表形式。

    • True:元素类型变为 cylinder_list。

    • False:元素类型为 cylinder。

  • 输入数量/number_input:决定该算子的输入端口 input_? 的数量。范围:[1,10] 。默认值:2。

  • 圆柱体/Cylinder:设置圆柱体在 3D 视图中的可视化属性。

    • icon_visOn 打开圆柱体可视化。

    • icon_visOff 关闭圆柱体可视化。

    • icon_color 设置圆柱体的颜色。取值范围:[-2,360] 。默认值:-2 。

控制信号输入输出

  • input_ ?

    • 任意一个输入 input_ ? 端口被触发,都会触发对应 output_? 输出端口。

数据信号输入输出

输入:

  • cylinder_?

    • 数据类型:Cylinder

    • 输入内容:圆柱体数据

输出:

  • cylinder

    • 数据类型:Cylinder

    • 输出内容:圆柱体数据

功能演示

本节将使用 Selector 算子中 Cylinder ,将 2 条圆柱体数据合并在一起,根据触input_ ? 端口输出对应的圆柱体数据。

这与 Selector 算子中 Cube 属性将 2 条立方体数据合并在一起,根据触发 input_? 端口输出对应的立方体数据的方法相同,请参照该章节的功能演示。

Image

将 Selector 算子的 type 属性选择 Image ,用于图像选择,将多条图像数据合并在一起,根据触发 input_? 端口输出对应的图像数据。

算子参数

  • 是否为列表/is_list:数据类型为:bool 。设置是否将算子输入输出端口变为列表形式。

    • True:元素类型变为 image_list。

    • False:元素类型为 image。

  • 输入数量/number_input:决定该算子的输入端口 input_? 的数量。范围:[1,10] 。默认值:2。

  • 图像/image:设置图像在 2D 视图中的可视化属性。

    • icon_visOn 打开图像可视化。

    • icon_visOff 关闭图像可视化。

控制信号输入输出

  • input_ ?

    • 任意一个输入 input_ ? 端口被触发,都会触发对应 output_? 输出端口。

数据信号输入输出

输入:

  • image_?

    • 数据类型:Image

    • 输入内容:图像数据

输出:

  • image

    • 数据类型:Image

    • 输出内容:图像数据

功能演示

使用 Selector 算子中 Image 进行图像选择。将 2 条图像数据合并在一起,根据触发 input_? 端口输出对应的图像数据。

步骤1:算子准备

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

步骤2:设置算子参数

  1. 设置 Load 算子参数:

    • 类型 → Image

    • 文件 → icon_more → 选择 image 文件名(example_data/images/bird.png)

  2. 设置 Load_1 算子参数:

    • 类型 → Image

    • 文件 → icon_more → 选择 image 文件名(example_data/images/cat.png)

  3. 设置 Selecor 算子参数:

    • 类型 → Image

    • 输入数量 → 2

    • 图像 → icon_visOn可视

步骤3:连接算子

Basic_Selector_Image_Nodes

步骤4:运行

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

运行结果

  1. 当触发 Trigger 算子,会触发 input_0 端口,算子图运行如下:

    Basic_Selector_Image_result2

  2. 结果如下图所示,2D 视图中显示 image_0 端口的图像数据:

    Basic_Selector_Image_Result2

  3. 当触发 Trigger_1 算子,会触发 input_1 端口,算子图运行如下:

    Basic_Selector_Image_result3

  4. 结果如下图所示,2D 视图中显示 image_1 端口的图像数据:

    Basic_Selector_Image_Result4

PointCloud

将 Selector 算子的 类型 属性选择 PointCloud ,用于点云选择,将多条点云数据合并在一起,根据触发 input_? 端口输出对应的点云数据。

算子参数

  • 是否为列表/is_list:数据类型: bool 。设置是否将算子输入输出端口变为列表形式。

    • True:元素类型变为 cloud_list。

    • False:元素类型变为 cloud。

  • 输入数量/number_input:决定该算子的输入端口 input_? 的数量。范围:[1,10] 。默认值:2 。

  • 点云/cloud:设置点云在 3D 视图中的可视化属性。

    • icon_visOn 打开点云可视化。

    • icon_visOff 关闭点云可视化。

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

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

控制信号输入输出

  • input_ ?:任意一个输入 input_ ? 端口被触发,都会触发对应 output_? 输出端口。

数据信号输入输出

输入:

  • cloud_?

    • 数据类型:PointCloud

    • 输入内容:点云数据

输出:

  • cloud

    • 数据类型:PointCloud

    • 输出内容:点云数据

功能演示

本节将使用 Selector 算子中 PointCloud ,将 2 条点云数据合并在一起,根据触input_ ? 端口输出对应的点云数据。

这与 Selector 算子中 image 属性将 2 条图像数据合并在一起,根据触发 input_? 端口输出对应的图像数据的方法相同,请参照该章节的功能演示。

Pose

将 Selector 算子的 类型 属性选择 Pose ,用于 pose 选择,将多条 pose 数据合并在一起,根据触发 input_? 端口输出对应的 pose 数据。

算子参数

  • 是否为列表/is_list:数据类型: bool 。设置是否将算子输入输出端口变为列表形式。

    • True:元素类型变为 pose_list。

    • False:元素类型为 pose。

  • 输入数量/number_input:决定该算子的输入端口 input_? 的数量。范围:[1,10] 。默认值:2 。

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

    • icon_visOn 打开 pose 可视化。

    • icon_visOff 关闭 pose 可视化。

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

控制信号输入输出

  • input_ ?:任意一个输入 input_ ? 端口被触发,都会触发对应 output_? 输出端口。

数据信号输入输出

输入:

  • pose_?

    • 数据类型:Pose

    • 输入内容: pose 数据

输出:

  • pose

    • 数据类型:Pose

    • 输出内容: pose 数据

功能演示

本章节将使用 Selector 算子中 Pose ,将 2 条 pose 数据合并在一起,根据触发 input_ ? 端口输出对应的 pose 数据。

这与 Selector 算子中 image 属性将 2 条图像数据合并在一起,根据触发 input_ ? 端口输出对应的图像数据的方法相同,请参照该章节的功能演示。

String

将 Selector 算子的 类型 属性选择 String ,用于字符串选择,将多条 string 数据合并在一起,根据触发 input_? 端口输出对应的 字符串数据。

算子参数

  • 是否为列表/is_list:数据类型: bool 。设置是否将算子输入输出端口变为列表形式。

    • True:元素类型变为 string_list。

    • False:元素类型变为 string。

  • 输入数量/number_input:决定该算子的输入端口 input_? 的数量。范围:[1,10] 。默认值:2 。

  • 字符串/string:设置字符串的曝光属性。可与交互面板中输出工具“表格”、“文本框”空间进行绑定。

    • icon_visOn 打开字符串的曝光属性。

    • icon_visOff 关闭字符串的曝光属性。

控制信号输入输出

  • input_ ?:任意一个输入 input_ ? 端口被触发,都会触发对应 output_? 输出端口。

数据信号输入输出

输入:

  • string_?

    • 数据类型:String

    • 输入内容: 字符串数据

输出:

  • string

    • 数据类型:String

    • 输出内容:字符串数据

功能演示

本章节将使用 Selector 算子中 String ,将 2 条字符串数据合并在一起,根据触发 input_ ? 端口输出对应的字符串数据。

这与 Selector 算子中 image 属性将 2 条图像数据合并在一起,根据触发 input_ ? 端口输出对应的图像数据的方法相同,请参照该章节的功能演示。