PoseOperator 坐标操作

PoseOperator 算子用于对坐标或坐标列表进行过滤转换等操作。

type 功能
箱体区域过滤 根据给定的立方体范围过滤 PoseList,移除位于立方体外部的坐标。
夹角过滤 根据参考坐标的方向和坐标列表中指定轴的最大角度差进行过滤,保留符合角度差要求的坐标。
计算坐标轴夹角 计算两个坐标在指定轴上的夹角度数(弧度制)。
翻转坐标轴 翻转坐标列表中指定轴的方向。
平移 将坐标或者坐标列表进行平移操作。
旋转 将坐标或者坐标列表进行旋转操作。
拆分 将坐标或者坐标列表进行拆分操作。
组合 将坐标或者坐标列表进行组合操作。

箱体区域过滤

将 PoseOperator 算子的 类型 设置为 CropboxFilter ,用于根据给定的立方体范围过滤坐标或者坐标列表,移除位于立方体外部的坐标。

算子参数

  • 坐标:设置过滤后的 pose 在 3D 视图中的可视化属性。

    • icon_visOn 打开 pose 可视化。

    • icon_visOff 关闭 pose 可视化。

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

  • 坐标列表:设置过滤后的 pose 列表在 3D 视图中的可视化属性。值描述与 pose 一致。

数据信号输入输出

输入:

说明:根据需求选择坐标或坐标列表一种数据信号输入即可。

  • 坐标

    • 数据类型:Pose

    • 输入内容:pose 数据

  • 坐标列表

    • 数据类型:PoseList

    • 输入内容:pose 列表数据

  • 立方体

    • 数据类型:Cube

    • 输入内容:cube 数据

输出:

  • 坐标

    • 数据类型:Pose

    • 输出内容:立方体内部坐标

  • 坐标列表

    • 数据类型:PoseList

    • 输出内容:立方体内部坐标列表

功能演示

使用 PoseOperator 中 CropboxFilter 进行过滤坐标。

步骤1:算子准备

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

步骤2:设置算子参数

  1. 设置 Emit 算子参数:

    • 算子名称 →Emit_Pose

    • 类型 → pose

    • 坐标 → 0.4 0 0 0 0 0

    • 坐标 → icon_visOn 可视

  2. 设置 Emit 算子参数:

    • 算子名称 →Emit_Cube

    • 立方体 → icon_visOn 可视

  3. 设置 PoseOperator 算子参数:

    • 类型 → CropboxFilter

    • 坐标 → icon_visOn 可视

步骤3:连接算子

image-20240709152611076

步骤4:运行

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

运行结果

结果如下图所示,坐标在立方体范围内,PoseOperator 算子输出过滤后坐标。

image-20240709152704736

夹角过滤

将 PoseOperator 算子的 类型 设置为 AngleFilter ,根据参考坐标的方向和坐标列表中指定轴的最大角度差进行过滤,保留符合角度差要求的坐标。

算子参数

  • 参考方向:参考坐标的预定义方向。包含:“-X”、“-Y”、“-Z”、“X”、“Y”、“Z”。。例如,选择“Z”作为参考方向,意味着基准方向是沿着正 Z 轴。

  • 指定的轴:坐标列表中选择一个轴。包含:“X”、“Y”、“Z”。。例如,选择“X”作为指定的轴,意味着将比较所有坐标的 X 轴与参考方向之间的角度。

  • 最大角度差:参考方向与指定轴之间允许的最大夹角。例如,弧度制时,设置最大角度差为 1.5708,意味着只有那些与参考方向夹角小于或等于 90° 的坐标会被保留。

  • 坐标列表:设置过滤后的 poselist 在 3D 视图中的可视化属性。

    • icon_visOn 打开 poselist 可视化。

    • icon_visOff 关闭 poselist 可视化。

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

数据信号输入输出

输入:

  • 坐标列表

    • 数据类型:PoseList

    • 输入内容:poselist 数据

  • 参考坐标

    • 数据类型:Pose

    • 输入内容:pose 数据

输出:

  • 坐标列表

    • 数据类型:PoseList

    • 输出内容:过滤后的 pose 列表数据

功能演示

使用 PoseOperator 中 AngleFilter 将过滤坐标。

步骤1:算子准备

添加 Trigger、Load 、Emit、PoseOperator 算子至算子图。

步骤2:设置算子参数

  1. 设置 Load 算子参数:

    • 类型 → pose

    • 文件 → icon_more → 选择 pose 文件名

      文件内容如下:

      1.000000 0.000000 0.000000 1.570800 0.000000 0.000000
      0.000000 0.000000 0.000000 0.000000 1.570800 0.000000
      0.000000 0.500000 0.000000 0.000000 1.000000 0.000000
      
  2. 设置 Emit 算子参数:

    • 类型 → pose

    • 坐标 → icon_visOn 可视

  3. 设置 PoseOperator 算子参数:

    • 类型 → AngleFilter

    • 参考方向 → Z

    • 指定的轴 → Z

    • 最大角度差 → 1.5709

    • 坐标列表 → icon_visOn 可视

步骤3:连接算子

image-20240709171255779

步骤4:运行

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

运行结果

结果如下图所示,在 3D 视图中显示参考方向 Z 与 指定轴 Z 夹角小于或等于 90° 的坐标。

image-20240709171419184

计算坐标轴夹角

将 PoseOperator 算子的 类型 设置为 CalcAxisAngle ,用于计算两个坐标在指定轴上的夹角度数(弧度制)。

算子参数

  • 指定的轴:两个坐标指定轴。包含:“X”、“Y”、“Z”。

  • 夹角:设置夹角度数的曝光属性。曝光后可以与交互面板中文本框进行绑定。

    • icon_visOn 打开夹角曝光属性。

    • icon_visOff 关闭夹角曝光属性。

数据信号输入输出

输入:

  • 坐标1

    • 数据类型:Pose

    • 输入内容:pose 数据

  • 坐标2

    • 数据类型:Pose

    • 输入内容:pose 数据

输出:

  • 夹角

    • 数据类型:String

    • 输出内容:两个坐标指定轴的夹角弧度

功能演示

使用 PoseOperator 中 CalcAxisAngle 计算两个坐标的 Z 轴夹角度数。

步骤1:算子准备

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

步骤2:设置算子参数

  1. 设置 Emit 算子参数:

    • 算子名称 →Emit_Pose1

    • 类型 → pose

    • 坐标 → 0.000000 0.000000 0.000000 0.000000 1.570800 0.000000

    • 坐标 → icon_visOn 可视

  2. 设置 Emit 算子参数:

    • 算子名称 →Emit_Pose2

    • 坐标 → 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000

    • 坐标 → icon_visOn 可视

  3. 设置 PoseOperator 算子参数:

    • 类型 → CalcAxisAngle

    • 夹角 → icon_visOn 曝光

步骤3:连接算子

image-20240710120541376

步骤4:运行

  1. 夹角属性与交互面板中文本框控件进行绑定。

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

运行结果

结果如下图所示,在交互面板中显示两个坐标的 Z 轴夹角度数。

image-20240710120657784

翻转坐标轴

将 PoseOperator 算子的 类型 设置为 FlipPoseAxis ,用于翻转坐标列表中指定轴的方向。

算子参数

  • 需要翻转的轴:指定需要翻转方向的轴。包括:“X”、“Y”、“Z”。

  • 需要固定的轴:指定在翻转过程中保持不变的轴。包括:“X”、“Y”、“Z”。

  • 轴的朝向:指定翻转后的轴的朝向。包括:“正向”或“反向”。

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

    • icon_visOn 打开坐标列表可视化。

    • icon_visOff 关闭坐标列表可视化。

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

数据信号输入输出

输入:

  • 坐标列表

    • 数据类型:PoseList

    • 输入内容:pose 列表数据

输出:

  • 坐标列表

    • 数据类型:PoseList

    • 输入内容:pose 列表数据

功能演示

使用 PoseOperator 中 FlipPoseAxis 翻转坐标列表中 Z 轴的方向。

步骤1:算子准备

添加 Trigger 、Load 、Emit、PoseOperator 算子至算子图。

步骤2:设置算子参数

  1. 设置 Load 算子参数:

    • 类型 → pose

    • 文件 → icon_more → 选择 pose 文件名

      文件内容如下:

      0.2000000 0.2000000 0.000000 0 0.300000 0.000000
      0.2000000 0.4000000 0.000000 0 0.500000 0.000000
      0.4000000 0.2000000 0.000000 0 2.800000 0.000000
      0.4000000 0.4000000 0.000000 0 3.500000 0.000000
      
    • 坐标 → icon_visOn 可视

  2. 设置 Emit 算子参数:

    • 坐标 → 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000

    • 坐标 → icon_visOn 可视→icon_size 0.5

  3. 设置 PoseOperator 算子参数:

    • 类型 → FlipPoseAxis

    • 需要翻转的轴 → Z

    • 需要固定的轴 → Y

    • 轴的朝向 → 正向

    • 坐标列表 → icon_visOn 可视

步骤3:连接算子

image-20240710112807579

步骤4:运行

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

运行结果

  1. 结果如下图所示,Load 算子与 Emit 算子输出坐标如下图所示:

    image-20240710112858866

  2. PoseOperator 算子将 Z 轴朝下的坐标进行正向翻转,翻转后结果如下图所示:

    image-20240710113012457

平移

将 PoseOperator 算子的 类型 设置为平移,用于对坐标进行平移操作。

算子参数

  • 坐标系:指定平移操作所基于的坐标系。包含世界坐标系体坐标系

    • 体坐标系:相对于对象自身的坐标系。平移操作将基于对象的原点和方向进行。

    • 世界坐标系:全局坐标系,通常是整个场景的参考坐标系。平移操作将基于全局原点和方向进行。

  • X:沿 X 轴的平移距离。正值表示向正方向平移,负值表示向负方向平移。

  • Y:沿 Y 轴的平移距离。正值表示向正方向平移,负值表示向负方向平移。

  • Z:沿 Z 轴的平移距离。正值表示向正方向平移,负值表示向负方向平移。

  • 坐标:设置平移后的 pose 在 3D 视图中的可视化属性。

    • icon_visOn 打开 pose 可视化。

    • icon_visOff 关闭 pose 可视化。

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

  • 坐标列表:设置平移后的 pose 列表在 3D 视图中的可视化属性。值描述与 pose 一致。

数据信号输入输出

输入:

说明:根据需求选择坐标或坐标列表一种数据信号输入即可。

  • 坐标

    • 数据类型:Pose

    • 输入内容:pose 数据

  • 坐标列表

    • 数据类型:PoseList

    • 输入内容:pose 列表数据

输出:

  • 坐标

    • 数据类型:Pose

    • 输出内容:平移后坐标

  • 坐标列表

    • 数据类型:PoseList

    • 输出内容:平移后坐标列表

功能演示

使用 PoseOperator 中 平移 Z 轴。

步骤1:算子准备

添加 Trigger 、Emit 、PoseOperator 算子至算子图。

步骤2:设置算子参数

  1. 设置 Emit 算子参数:

    • 类型 → pose

    • 坐标 → 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000

    • 坐标 → icon_visOn 可视→icon_size 0.5

  2. 设置 PoseOperator 算子参:

    • 类型 → 平移

    • 坐标系 → 世界坐标系

    • Z → 1

    • 坐标 → icon_visOn 可视

步骤3:连接算子

image-20240910164823210

步骤4:运行

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

运行结果

结果如下图所示,坐标根据 Z 轴平移 1,Emit坐标为(0 0 0 0 0 0),平移后坐标为(0 0 1 0 0 0)。

image-20240910165019878

旋转

将 PoseOperator 算子的 类型 设置为旋转,用于对坐标进行旋转操作。

算子参数

  • 坐标系:指定旋转操作所基于的坐标系。包含世界坐标系体坐标系

    • 体坐标系:相对于对象自身的坐标系。平移操作将基于对象的原点和方向进行。

    • 世界坐标系:全局坐标系,通常是整个场景的参考坐标系。平移操作将基于全局原点和方向进行。

  • RX:绕 X 轴的旋转角度。正值表示顺时针旋转,负值表示逆时针旋转。

  • RY:绕 Y 轴的旋转角度。正值表示顺时针旋转,负值表示逆时针旋转。

  • RZ:绕 Y 轴的旋转角度。正值表示顺时针旋转,负值表示逆时针旋转。

  • 坐标:设置旋转后的 pose 在 3D 视图中的可视化属性。

    • icon_visOn 打开 pose 可视化。

    • icon_visOff 关闭 pose 可视化。

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

  • 坐标列表:设置旋转后的 pose 列表在 3D 视图中的可视化属性。值描述与 pose 一致。

数据信号输入输出

输入:

说明:根据需求选择坐标或坐标列表一种数据信号输入即可。

  • 坐标

    • 数据类型:Pose

    • 输入内容:pose 数据

  • 坐标列表

    • 数据类型:PoseList

    • 输入内容:pose 列表数据

输出:

  • 坐标

    • 数据类型:Pose

    • 输出内容:旋转后坐标

  • 坐标列表

    • 数据类型:PoseList

    • 输出内容:旋转后坐标列表

功能演示

与 PoseOperator 算子平移类型使用方法类似,请参考该类型进行学习。

拆分

将 PoseOperator 算子的 类型 设置为拆分,用于对坐标进行拆分操作。

数据信号输入输出

输入:

  • 坐标

    • 数据类型:Pose

    • 输入内容:pose 数据

输出:

  • x

    • 数据类型:Matrix

    • 输出内容:坐标中 X 轴的值

  • y

    • 数据类型:Matrix

    • 输出内容:坐标中 Y 轴的值

  • z

    • 数据类型:Matrix

    • 输出内容:坐标中 Z 轴的值

  • rx

    • 数据类型:Matrix

    • 输出内容:坐标中 RX 的值

  • ry

    • 数据类型:Matrix

    • 输出内容:坐标中 RY 的值

  • rz

    • 数据类型:Matrix

    • 输出内容:坐标中 RZ 的值

功能演示

使用 PoseOperator 中 拆分 坐标。

步骤1:算子准备

添加 Trigger 、Emit 、PoseOperator 算子至算子图。

步骤2:设置算子参数

  1. 设置 Emit 算子参数:

    • 类型 → pose

    • 坐标 → 1.000000 2.000000 3.000000 4.000000 5.000000 6.000000

  2. 设置 PoseOperator 算子参:类型 → 拆分

步骤3:连接算子

image-20240910170553181

步骤4:运行

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

运行结果

鼠标悬停至 PoseOperator 算子输出端口静止1s,将坐标进行拆分输出。下图中悬停至 y 端口输出 2。

image-20240910170941864

组合

将 PoseOperator 算子的 类型 设置为组合,用于组合坐标操作。

数据信号输入输出

输入:

  • x

    • 数据类型:Matrix

    • 输入内容:坐标中 X 轴的值

  • y

    • 数据类型:Matrix

    • 输入内容:坐标中 Y 轴的值

  • z

    • 数据类型:Matrix

    • 输入内容:坐标中 Z 轴的值

  • rx

    • 数据类型:Matrix

    • 输入内容:坐标中 RX 的值

  • ry

    • 数据类型:Matrix

    • 输入内容:坐标中 RY 的值

  • rz

    • 数据类型:Matrix

    • 输入内容:坐标中 RZ 的值

输入:

  • 坐标

    • 数据类型:Pose

    • 输出内容:pose 数据

功能演示

使用 PoseOperator 中 拆分 坐标。

步骤1:算子准备

添加 Trigger 、Emit(6个) 、PoseOperator 算子至算子图。

步骤2:设置算子参数

  1. 设置 Emit 0-5算子参数:

    • 类型 → 矩阵

    • 值 → 6个 Emit 算子的值分别输入 1 2 3 4 5 6。

  2. 设置 PoseOperator 算子参:类型 → 组合

步骤3:连接算子

image-20240910171641570

步骤4:运行

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

运行结果

鼠标悬停至 PoseOperator 算子输出端口静止1s,坐标组合为(1 2 3 4 5 6)。

image-20240910171859705