调整位姿朝向

功能描述

该算子用于调整输入位姿列表的朝向,使其满足特定的方向约束。例如,调整工具使其Z轴朝上或朝下,或者将工具的X轴对齐到某个特定方向。

使用场景

  • 标准化抓取姿态 : 在机器人抓取应用中,即使物体本身有多种可能的抓取姿态,也常常需要将最终工具朝向限制在少数几个或一个标准方向上,以简化机器人运动规划或避免碰撞。例如,无论物体如何摆放,都要求工具的Z轴(通常是接近物体的轴)垂直向下。

  • 消除旋转歧义 : 某些位姿估计算法可能产生围绕某个轴旋转180度的歧义,此算子可以根据先验知识(如物体哪个面应该朝上)来校正姿态。

  • 对齐特定方向 : 需要将工具的某个轴对齐到场景中的特定方向向量(例如,沿着传送带方向)。

输入输出

输入项

抓取物位姿信息: 输入的位姿列表。

输出项

抓取物位姿信息: 经过朝向调整后的位姿列表。

参数说明

调整策略

参数说明

选择应用哪种主要的朝向调整方法,不同的策略对应不同的后续参数。

调参说明

  • 调整指定轴正负方向(默认): 将位姿的某个轴(主方向轴)主动调整为大致指向世界坐标系的对应轴的正向或负向,并可进一步优化第二个轴(副方向轴)的朝向,使其更符合实际应用需求。

  • 指定轴对齐指定方向: 将位姿的某个轴(指定方向轴)精确地对齐到用户提供的任意方向向量,并且可以约束另一个轴(固定方向轴)在对齐后的姿态下尽量指向某个正负方向。

主方向轴

参数说明

"选择要调整朝向的位姿坐标系的主轴(X, Y, 或 Z)。(当“调整策略”选择“调整指定轴正负方向”时生效)"

调参说明

通常选择与机器人工具关键方向对应的轴,例如工具的接近方向(常为Z轴)。

主轴指定方向

参数说明

指定上面选定的“主方向轴”应该指向世界坐标系对应轴的哪个方向。(当“调整策略”选择“调整指定轴正负方向”时生效)

调参说明

  • 正方向(默认): 例如,如果主方向轴是Z,则会调整位姿的Z轴使其对齐到世界坐标系的+Z方向。

  • 负方向: 例如,如果主方向轴是Z,则会调整位姿的Z轴使其对齐到世界坐标系的-Z方向。 算子会检查当前位姿的主轴方向与目标方向的夹角,如果夹角大于等于90度,会进行180度旋转调整。

副主方向轴

参数说明

在主方向轴调整完成后,选择需要进一步优化朝向的位姿坐标系次要轴(X、Y 或 Z),需确保所选副轴与主方向轴不同。(当“调整策略”选择“调整指定轴正负方向”时生效)

调参说明

用于消除围绕主方向轴的旋转自由度。例如,主轴是Z轴,可以选择X轴作为副轴。

副轴指定方向

参数说明

指定上面选定的“副方向轴”在主轴调整完成后,应尽量将其朝向对齐到世界坐标系对应轴的目标方向。(当“调整策略”选择“调整指定轴正负方向”时生效)

调参说明

  • 正方向(默认) / 负方向:与主轴类似,算子会检查当前副轴方向与目标方向的夹角,如果夹角大于90度,会绕主轴旋转180度进行调整。

  • 保持原方向: 不对副轴方向做额外调整,保持其在主轴调整后的相对朝向。

指定方向轴

参数说明

选择位姿坐标系的哪个轴(X, Y, 或 Z)需要精确对齐到目标方向。(当“调整策略”选择“指定轴对齐指定方向”时生效)

调参说明

选择需要对齐的工具轴,例如工具的Z轴。

选定轴指定方向

参数说明

提供一个三维向量,定义“指定方向轴”需要对齐的目标方向。(当“调整策略”选择“指定轴对齐指定方向”时生效)

调参说明

输入一个表示方向的向量,例如 [0, 0, 1] 表示对齐到世界坐标系的Z轴正方向,[1, 0, 0] 表示对齐到X轴正方向,也可以是任意方向如 [1, 1, 0](算子内部会归一化)。

参数范围

默认值:[0, 0, 1]

固定方向轴

参数说明

在“指定方向轴”完成对齐后,选择位姿坐标系的另一个轴(X, Y, 或 Z)作为参考,用于消除围绕对齐轴的旋转。需要注意的是,必须与指定方向轴不同。(当“调整策略”选择“指定轴对齐指定方向”时生效)

调参说明

选择一个在对齐后需要进一步约束方向的轴。

固定轴指定方向

参数说明

指定上面选定的“固定方向轴”在主轴对齐后,应该尽量指向世界坐标系对应轴的哪个方向。(当“调整策略”选择“指定轴对齐指定方向”时生效)

调参说明

  • 正方向(默认) / 负方向: 算子会检查固定轴与世界坐标系对应轴(由固定轴指向的那个世界轴决定,例如固定轴是X,则比较其与世界X轴或Y/Z轴中最接近的那个)方向的夹角,如果需要(夹角大于90度),会绕已对齐的“指定方向轴”旋转180度。

  • 不指定方向 : 不对固定轴做额外约束。

使能节点

参数说明

控制该算子是否执行朝向限制操作。

调参说明

  • 若开关为开启状态,则算子正常执行功能;

  • 若开关为关闭状态,则算子不执行任何操作,直接将输入位姿列表透传到输出端口。