AdjustPose 调整位姿
AdjustPose 算子用于调整位姿,包含 InvertPose 、AveragePose 、RotateAxis 、ReferencePose 、NormalizePose 。
类型 | 功能 |
---|---|
坐标取逆 | 对原 pose 取逆。 |
坐标取平均 | 求取输入 pose 列表的平均 pose 。 |
坐标旋转轴 | / |
坐标变换 | 根据参考姿态调整 pose 。 |
坐标旋转角度归一化 | 根据参考轴和角度调整pose的 rx 、ry 、rz 角 |
坐标取逆
将 AdjustPose 算子的 类型
设置为
InvertPose ,用于对原 pose 取逆。
算子参数
-
坐标/pose
:设置逆 pose 在 3D 视图中的可视化属性。-
打开逆 pose 可视化。
-
关闭逆 pose 可视化。
-
设置逆 pose 的尺寸大小。取值范围:[ 0.001,10] 。默认值:0.1 。
-
-
坐标列表/pose_list
:设置逆 pose 列表在 3D 视图中的可视化属性。值描述与坐标
一致。
数据信号输入输出
输入:
说明:根据需求选择其中一种数据信号输入即可。
-
坐标
:-
数据类型:Pose
-
输入内容:pose 数据
-
-
坐标列表
:-
数据类型:PoseList
-
输入内容:pose 列表数据
-
输出:
-
坐标
:-
数据类型:Pose
-
输出内容:逆 pose 数据
-
-
坐标列表
:-
数据类型:PoseList
-
输出内容:逆 pose 列表数据
-
功能演示
使用 AdjustPose 算子中 类型
属性 InvertPose 将加载的 pose 取逆。
步骤1:算子准备
添加 Trigger 、Load 、AdjustPose 算子至算子图。
步骤2:设置算子参数
-
设置 Load 算子参数:
-
类型 → 坐标
-
文件 → →选择 pose 文件名( example_data/pose/tcp1.txt )
-
坐标 → 可视
-
-
设置 AdjustPose 算子参数:
-
类型 → 坐标取逆
-
坐标 → 可视
-
步骤3:连接算子
步骤4:运行
点击 RVS 运行按钮,触发 Trigger 算子。
运行结果
如下图所示,3D 视图中显示 Load 算子的 pose 和 AdjustPose 的结果。分别为加载的 pose 及其逆 pose 。
坐标取平均
将 AdjustPose 算子的 类型
属性设置为 坐标取平均
,用于求取输入 pose
列表的平均 pose 。
项目中,主要用于对同一目标多次计算所得的相近位姿求取平均作为最终结果位姿。
其中的位置信息 xyz 数值直接求平均值。而姿态信息对应的三个旋转角计算过程相对复杂,仅在输入 pose 的旋转角彼此相差不大时具有实际意义,一般彼此之间的旋转角差值标准差不超过 0.3 弧度为佳。
算子参数
-
坐标/pose
:设置平均 pose 在 3D 视图中的可视化属性。-
打开平均 pose 可视化。
-
关闭平均 pose 可视化。
-
设置平均 pose 的尺寸大小。取值范围:[0.001,10] 。默认值:0.1 。
-
数据信号输入输出
输入:
-
坐标列表
:-
数据类型:Pose
-
输入内容:pose 数据
-
输出:
-
坐标
:-
数据类型:Pose
-
输出内容:平均 pose 数据
-
功能演示
使用 AdjustPose 算子中 类型
属性 AveragePose 求取加载的三个 pose 的平均 pose 。
步骤1:算子准备
添加 Trigger 、Load 、AdjustPose 算子至算子图。
步骤2:设置算子参数
-
设置 Load 算子参数:
-
类型 → 坐标
-
文件 → → 选择 pose 文件目录名( example_data/averagepose.txt )
-
坐标列表 → 可视
-
-
设置 AdjustPose 算子参数:
-
类型 → 坐标取平均
-
坐标 → 可视
-
步骤3:连接算子
步骤4:运行
点击 RVS 的运行按钮,触发 Trigger 算子。
运行结果
如下图所示,3D 视图中显示 Load 算子和 AdjustPose 的结果。分别为加载的三个 pose 和平均 pose 后的结果。
坐标变换
将 AdjustPose 算子的 类型
属性设置为在坐标变换
,用于根据参考姿态调整
pose 姿态。
算子参数
-
坐标/pose
:设置调整姿态后的 pose 在3D视图中的可视化属性。-
打开 pose 可视化。
-
关闭 pose 可视化。
-
设置 pose 的尺寸大小。取值范围:[0.001,10] 。默认值:0.1 。
-
数据信号输入输出
输入:
-
坐标
:-
数据类型:Pose
-
输入内容:pose 数据
-
-
参考坐标
:-
数据类型:Pose
-
输入内容:参考 pose 数据
-
输出:
-
坐标
:-
数据类型:Pose
-
输出内容:调整姿态后 pose 数据
-
功能演示
使用AdjustPose算子中 类型
属性坐标变换
根据参考姿态调整 pose 。
步骤1:算子准备
添加 Trigger 、Emit(2个) 、AdjustPose 算子至算子图。
步骤2:设置算子参数
-
设置 Emit 算子参数:
-
类型 → 坐标
-
坐标 → 0 0 0 0 0 0
-
坐标 → 可视
-
-
设置 Emit_1 算子参数:
-
类型 → 坐标
-
坐标 → 0.5 0. 1 0.1 1.57 1.57 -1.57
-
坐标 → 可视
-
-
设置 AdjustPose 算子参数:
-
类型 → 坐标变换
-
坐标 → 可视 → 0.2
-
步骤3:连接算子
步骤4:运行
点击 RVS 的运行按钮,触发 Trigger 算子。
运行结果
如下图所示,3D 视图中显示 Emit 算子以及 AdjustPose 算子的结果。
坐标旋转角度归一化
将 AdjustPose 算子中将 类型
设置为坐标旋转角度归一化
,用于计算并输出 pose
的两种不同姿态角表达形式。通常来说,同一姿态角在 -π 到 π
的定义域区间内至少有两种表达形式,其中一种姿态角的表达形式无法用机器人直接移动,因此需要筛选某一旋转轴的最优旋转角度,通过参数参考旋转轴参考旋转轴
和 参考角度
进行判断。原理是判断两种表达形式的某一旋转轴(由
参考旋转轴
设置)是否更接近于参考值 参考角度
,分别输出为正向坐标
和负向坐标
。判断旋转角度是否更接近需符合旋转角度周期原则,即 -π 和 π 认为是同一个角度,若参考值为 -3,那么认为 π 比 0 更接近于 -3 。
算子参数
-
参考旋转轴/ref_rot_axis
:参考轴:X / Y / Z 。 -
参考角度/ref_angle
:参考弧度。 -
正向坐标/pose_positive
:设置pose 最优表达形式在 3D 视图中的可视化属性。-
打开调整后 pose 位姿可视化。
-
关闭调整后 pose 位姿可视化。
-
设置调整后 pose 位姿的尺寸大小。取值范围:[0.001,10] 。默认值:0.1 。
-
-
负向坐标/pose_negative
:设置 pose 另一种表达形式在 3D 视图中的可视化属性。参数值与正向坐标正向坐标
描述一致。 -
正向坐标列表/pose_positive_list
:设置pose 列表最优表达形式在 3D 视图中的可视化属性。参数值与正向坐标
描述一致。 -
负向坐标列表/pose_negative_list
:设置 pose 列表另一种表达形式在 3D 视图中的可视化属性。参数值与正向坐标
描述一致。
数据信号输入输出
输入:
-
坐标
:-
数据类型:Pose
-
输入内容:pose 数据
-
-
坐标列表
:-
数据类型:PoseList
-
输入内容:pose 列表数据
-
输出:
-
正向坐标
:-
数据类型:Pose
-
输出内容:姿态调整后与参考轴和弧度相近的 pose 数据
-
-
负向坐标
:-
数据类型:Pose
-
输出内容:姿态调整后负向 pose 数据
-
-
正向坐标列表
:-
数据类型:PoseList
-
输出内容:姿态调整后与参考轴和弧度相近的 pose 列表数据
-
-
负向坐标列表
:-
数据类型:PoseList
-
输出内容:姿态调整后负向 pose 列表数据
-
功能演示
使用 AdjustPose 算子中 类型
属性坐标旋转角度归一化
根据 x 轴 在参考角度
3(弧度值) 进行姿态调整。
步骤1:算子准备
添加 Trigger、Emit 、AdjustPose 算子至算子图。
步骤2:设置算子参数
-
设置 Emit 算子参数:
-
类型 → 坐标
-
坐标 → 1 2 0.5 0.5 0.1 0.3
-
坐标 → 可视
-
-
设置 AdjustPose 算子参数:
-
类型 → 坐标旋转角度归一化
-
参考旋转轴 → x
-
参考角度 → 3
-
正向坐标 → 可视
-
负向坐标 → 可视
-
步骤3:连接算子
步骤4:运行
-
点击打开 RVS 的运行按钮,触发 Trigger 算子。
-
分别将三个 pose 与交互面板中的输出工具“ pose 输出” 进行绑定。
运行结果
如下图所示,在交互面板中显示 Emit 算子和 AdjustPose 算子输出端口的结果。