PoseOperator 坐标操作
PoseOperator 算子用于对坐标或坐标列表进行过滤转换等操作。
type | 功能 |
---|---|
箱体区域过滤 | 根据给定的立方体范围过滤 PoseList,移除位于立方体外部的坐标。 |
夹角过滤 | 根据参考坐标的方向和坐标列表中指定轴的最大角度差进行过滤,保留符合角度差要求的坐标。 |
计算坐标轴夹角 | 计算两个坐标在指定轴上的夹角度数(弧度制)。 |
翻转坐标轴 | 翻转坐标列表中指定轴的方向。 |
平移 | 将坐标或者坐标列表进行平移操作。 |
旋转 | 将坐标或者坐标列表进行旋转操作。 |
拆分 | 将坐标或者坐标列表进行拆分操作。 |
组合 | 将坐标或者坐标列表进行组合操作。 |
箱体区域过滤
将 PoseOperator 算子的 类型
设置为 CropboxFilter ,用于根据给定的立方体范围过滤坐标或者坐标列表,移除位于立方体外部的坐标。
算子参数
-
坐标
:设置过滤后的 pose 在 3D 视图中的可视化属性。-
打开 pose 可视化。
-
关闭 pose 可视化。
-
设置 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:设置算子参数
-
设置 Emit 算子参数:
-
算子名称 →Emit_Pose
-
类型 → pose
-
坐标 → 0.4 0 0 0 0 0
-
坐标 → 可视
-
-
设置 Emit 算子参数:
-
算子名称 →Emit_Cube
-
立方体 → 可视
-
-
设置 PoseOperator 算子参数:
-
类型 → CropboxFilter
-
坐标 → 可视
-
步骤3:连接算子
步骤4:运行
点击 RVS 运行按钮,触发 Trigger 算子。
运行结果
结果如下图所示,坐标在立方体范围内,PoseOperator 算子输出过滤后坐标。
夹角过滤
将 PoseOperator 算子的 类型
设置为 AngleFilter ,根据参考坐标的方向和坐标列表中指定轴的最大角度差进行过滤,保留符合角度差要求的坐标。
算子参数
-
参考方向
:参考坐标的预定义方向。包含:“-X”、“-Y”、“-Z”、“X”、“Y”、“Z”。。例如,选择“Z”作为参考方向,意味着基准方向是沿着正 Z 轴。 -
指定的轴
:坐标列表中选择一个轴。包含:“X”、“Y”、“Z”。。例如,选择“X”作为指定的轴,意味着将比较所有坐标的 X 轴与参考方向之间的角度。 -
最大角度差
:参考方向与指定轴之间允许的最大夹角。例如,弧度制时,设置最大角度差为 1.5708,意味着只有那些与参考方向夹角小于或等于 90° 的坐标会被保留。 -
坐标列表
:设置过滤后的 poselist 在 3D 视图中的可视化属性。-
打开 poselist 可视化。
-
关闭 poselist 可视化。
-
设置 poselist 的尺寸大小。取值范围:[0.001,10] 。默认值:0.1 。
-
数据信号输入输出
输入:
-
坐标列表
:-
数据类型:PoseList
-
输入内容:poselist 数据
-
-
参考坐标
:-
数据类型:Pose
-
输入内容:pose 数据
-
输出:
-
坐标列表
:-
数据类型:PoseList
-
输出内容:过滤后的 pose 列表数据
-
功能演示
使用 PoseOperator 中 AngleFilter 将过滤坐标。
步骤1:算子准备
添加 Trigger、Load 、Emit、PoseOperator 算子至算子图。
步骤2:设置算子参数
-
设置 Load 算子参数:
-
类型 → pose
-
文件 → → 选择 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
-
-
设置 Emit 算子参数:
-
类型 → pose
-
坐标 → 可视
-
-
设置 PoseOperator 算子参数:
-
类型 → AngleFilter
-
参考方向 → Z
-
指定的轴 → Z
-
最大角度差 → 1.5709
-
坐标列表 → 可视
-
步骤3:连接算子
步骤4:运行
点击 运行按钮,触发 Trigger 算子。
运行结果
结果如下图所示,在 3D 视图中显示参考方向 Z 与 指定轴 Z 夹角小于或等于 90° 的坐标。
计算坐标轴夹角
将 PoseOperator 算子的 类型
设置为 CalcAxisAngle ,用于计算两个坐标在指定轴上的夹角度数(弧度制)。
算子参数
-
指定的轴
:两个坐标指定轴。包含:“X”、“Y”、“Z”。 -
夹角
:设置夹角度数的曝光属性。曝光后可以与交互面板中文本框
进行绑定。-
打开夹角曝光属性。
-
关闭夹角曝光属性。
-
数据信号输入输出
输入:
-
坐标1
:-
数据类型:Pose
-
输入内容:pose 数据
-
-
坐标2
:-
数据类型:Pose
-
输入内容:pose 数据
-
输出:
-
夹角
:-
数据类型:String
-
输出内容:两个坐标指定轴的夹角弧度
-
功能演示
使用 PoseOperator 中 CalcAxisAngle 计算两个坐标的 Z 轴夹角度数。
步骤1:算子准备
添加 Trigger 、Emit(2个) 、PoseOperator 算子至算子图。
步骤2:设置算子参数
-
设置 Emit 算子参数:
-
算子名称 →Emit_Pose1
-
类型 → pose
-
坐标 → 0.000000 0.000000 0.000000 0.000000 1.570800 0.000000
-
坐标 → 可视
-
-
设置 Emit 算子参数:
-
算子名称 →Emit_Pose2
-
坐标 → 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
-
坐标 → 可视
-
-
设置 PoseOperator 算子参数:
-
类型 → CalcAxisAngle
-
夹角 → 曝光
-
步骤3:连接算子
步骤4:运行
-
将
夹角
属性与交互面板中文本框
控件进行绑定。 -
点击运行按钮,触发 Trigger 算子。
运行结果
结果如下图所示,在交互面板中显示两个坐标的 Z 轴夹角度数。
翻转坐标轴
将 PoseOperator 算子的 类型
设置为 FlipPoseAxis ,用于翻转坐标列表中指定轴的方向。
算子参数
-
需要翻转的轴
:指定需要翻转方向的轴。包括:“X”、“Y”、“Z”。 -
需要固定的轴
:指定在翻转过程中保持不变的轴。包括:“X”、“Y”、“Z”。 -
轴的朝向
:指定翻转后的轴的朝向。包括:“正向”或“反向”。 -
坐标列表
:设置坐标列表在 3D 视图中的可视化属性。-
打开坐标列表可视化。
-
关闭坐标列表可视化。
-
设置坐标列表的尺寸大小。取值范围:[0.001,10] 。默认值:0.1 。
-
数据信号输入输出
输入:
-
坐标列表
:-
数据类型:PoseList
-
输入内容:pose 列表数据
-
输出:
-
坐标列表
:-
数据类型:PoseList
-
输入内容:pose 列表数据
-
功能演示
使用 PoseOperator 中 FlipPoseAxis 翻转坐标列表中 Z 轴的方向。
步骤1:算子准备
添加 Trigger 、Load 、Emit、PoseOperator 算子至算子图。
步骤2:设置算子参数
-
设置 Load 算子参数:
-
类型 → pose
-
文件 → → 选择 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
-
坐标 → 可视
-
-
设置 Emit 算子参数:
-
坐标 → 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
-
坐标 → 可视→ 0.5
-
-
设置 PoseOperator 算子参数:
-
类型 → FlipPoseAxis
-
需要翻转的轴 → Z
-
需要固定的轴 → Y
-
轴的朝向 → 正向
-
坐标列表 → 可视
-
步骤3:连接算子
步骤4:运行
点击运行按钮,触发 Trigger 算子。
运行结果
-
结果如下图所示,Load 算子与 Emit 算子输出坐标如下图所示:
-
PoseOperator 算子将 Z 轴朝下的坐标进行正向翻转,翻转后结果如下图所示:
平移
将 PoseOperator 算子的 类型
设置为平移
,用于对坐标进行平移操作。
算子参数
-
坐标系
:指定平移操作所基于的坐标系。包含世界坐标系
和体坐标系
。-
体坐标系:相对于对象自身的坐标系。平移操作将基于对象的原点和方向进行。
-
世界坐标系:全局坐标系,通常是整个场景的参考坐标系。平移操作将基于全局原点和方向进行。
-
-
X
:沿 X 轴的平移距离。正值表示向正方向平移,负值表示向负方向平移。 -
Y
:沿 Y 轴的平移距离。正值表示向正方向平移,负值表示向负方向平移。 -
Z
:沿 Z 轴的平移距离。正值表示向正方向平移,负值表示向负方向平移。 -
坐标
:设置平移后的 pose 在 3D 视图中的可视化属性。-
打开 pose 可视化。
-
关闭 pose 可视化。
-
设置 pose 的尺寸大小。取值范围:[0.001,10] 。默认值:0.1 。
-
-
坐标列表
:设置平移后的 pose 列表在 3D 视图中的可视化属性。值描述与 pose 一致。
数据信号输入输出
输入:
说明:根据需求选择坐标或坐标列表一种数据信号输入即可。
-
坐标
:-
数据类型:Pose
-
输入内容:pose 数据
-
-
坐标列表
:-
数据类型:PoseList
-
输入内容:pose 列表数据
-
输出:
-
坐标
:-
数据类型:Pose
-
输出内容:平移后坐标
-
-
坐标列表
:-
数据类型:PoseList
-
输出内容:平移后坐标列表
-
功能演示
使用 PoseOperator 中 平移
Z
轴。
步骤1:算子准备
添加 Trigger 、Emit 、PoseOperator 算子至算子图。
步骤2:设置算子参数
-
设置 Emit 算子参数:
-
类型 → pose
-
坐标 → 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
-
坐标 → 可视→ 0.5
-
-
设置 PoseOperator 算子参:
-
类型 → 平移
-
坐标系 → 世界坐标系
-
Z → 1
-
坐标 → 可视
-
步骤3:连接算子
步骤4:运行
点击运行按钮,触发 Trigger 算子。
运行结果
结果如下图所示,坐标根据 Z 轴平移 1,Emit坐标为(0 0 0 0 0 0),平移后坐标为(0 0 1 0 0 0)。
旋转
将 PoseOperator 算子的 类型
设置为旋转
,用于对坐标进行旋转操作。
算子参数
-
坐标系
:指定旋转操作所基于的坐标系。包含世界坐标系
和体坐标系
。-
体坐标系:相对于对象自身的坐标系。平移操作将基于对象的原点和方向进行。
-
世界坐标系:全局坐标系,通常是整个场景的参考坐标系。平移操作将基于全局原点和方向进行。
-
-
RX
:绕 X 轴的旋转角度。正值表示顺时针旋转,负值表示逆时针旋转。 -
RY
:绕 Y 轴的旋转角度。正值表示顺时针旋转,负值表示逆时针旋转。 -
RZ
:绕 Y 轴的旋转角度。正值表示顺时针旋转,负值表示逆时针旋转。 -
坐标
:设置旋转后的 pose 在 3D 视图中的可视化属性。-
打开 pose 可视化。
-
关闭 pose 可视化。
-
设置 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:设置算子参数
-
设置 Emit 算子参数:
-
类型 → pose
-
坐标 → 1.000000 2.000000 3.000000 4.000000 5.000000 6.000000
-
-
设置 PoseOperator 算子参:类型 → 拆分
步骤3:连接算子
步骤4:运行
点击运行按钮,触发 Trigger 算子。
运行结果
鼠标悬停至 PoseOperator 算子输出端口静止1s,将坐标进行拆分输出。下图中悬停至 y
端口输出 2。
组合
将 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:设置算子参数
-
设置 Emit 0-5算子参数:
-
类型 → 矩阵
-
值 → 6个 Emit 算子的值分别输入 1 2 3 4 5 6。
-
-
设置 PoseOperator 算子参:类型 → 组合
步骤3:连接算子
步骤4:运行
点击运行按钮,触发 Trigger 算子。
运行结果
鼠标悬停至 PoseOperator 算子输出端口静止1s,坐标组合为(1 2 3 4 5 6)。