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)。