Transform 元素空间变换

Transform 算子用于元素空间变换,适用于 Pose 、Cube 、PointCloud 。

type 功能
Pose pose 空间变换。
Cube 立方体空间变化。
PointCloud 点云空间变换。

Pose

将 Transform 算子的 类型 属性选择 Pose ,用于 pose 空间变换。Pose 以算子左侧输入端口 base 坐标为基础坐标系,平移旋转 relative 的量。 relative 矩阵左乘 base 矩阵所得到的矩阵即为 transform 所得 pose 的矩阵。

算子参数

  • 倒置/invert

    • True:输出空间变换后的逆 pose 。

    • False:输出空间变换后 pose 。

  • 转换后坐标/transformed:设置空间变换后的 pose 在 3D 视图中的可视化属性。

    • icon_visOn 打开 pose 可视化。

    • icon_visOff 关闭 pose 可视化。

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

  • 转换后坐标列表/transformed_list:设置空间变换后的 pose 列表在 3D 视图中的可视化属性。值描述与 transformed 一致。

数据信号输入输出

输入:

说明:base / base_list 端口和 relative / relative_list 端口连接时,单个 base 可以和单个 relative 连接,也可以和 relative_list 连接。只需要连接两个端口即可。

  • base

    • 数据类型:Pose

    • 输入内容:需要变换的坐标

  • relative

    • 数据类型:Pose

    • 输入内容:相对坐标

  • base_list

    • 数据类型:PoseList

    • 输入内容:需要变换的坐标列表

  • relative_list

    • 数据类型:PoseList

    • 输入内容:相对坐标列表

输出:

  • transformed

    • 数据类型:Pose

    • 输出内容:变换后坐标数据

  • transformed_list

    • 数据类型:PoseList

    • 输出内容:变换后坐标列表数据

功能演示

使用 Transform 算子中将 Emit 生成的 pose 与 Emit_1 生成的 pose 二者进行空间转换。

步骤1:算子准备

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

步骤2:设置算子参数

  1. 设置 Emit 算子参数:

    • 类型 → Pose

    • 坐标 → 0.2 0 0 0 0 0

    • 坐标 → icon_visOn 可视

  2. 设置Emit _1算子参数:

    • 类型 → Pose

    • 坐标 → 0 0 0 0 1.5708 0

    • 坐标 → icon_visOn 可视

  3. 设置 Transform 算子参数:

    • 类型 → Pose

    • 转换后坐标 → icon_visOn 可视

步骤3:连接算子

3D_Transform_Pose_nodes

步骤4:运行

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

运行结果

如下图所示,在 3D 视图中显示 Emit 和 Emit_1 结果和 Transformed 结果,其为 Emit 生成的 pose 与 Emit_1 生成的 pose ,前者矩阵左乘后者矩阵所得到的矩阵即为 transform 所得 pose 的矩阵。

3D_Transform_Pose_result

Cube

将 Transform 算子的 类型 属性选择 Cube ,用于立方体空间变换。其变换的原理是以 Cube 的中心点 pose 为基础进行变换。

算子参数

  • 倒置/invert

    • True:输出空间变换后的逆 pose 。

    • False:输出空间变换后 pose 。

  • 模式/mode:设置 cube 位姿的模式。

    • cube_base:将 cube 位姿作为变换的坐标。

    • cube_relative:将 cube 位姿作为相对的坐标。

  • 立方体/cube:设置空间变换后的 cube 在3D视图中的可视化属性。

    • icon_visOn 打开立方体可视化 。

    • icon_visOff 关闭立方体可视化 。

    • icon_color 设置 3D 视图中立方体的颜色。取值范围:[-2,360] 。默认值:-2 。

    • icon_opacity 设置立方体的透明度。取值范围:[0,1] 。默认值:0.5

  • 坐标/pose:设置变换后立方体中心点 pose 在 3D 视图中的可视化属性。

    • icon_visOn 打开立方体中心点 pose 可视化。

    • icon_visOff 关闭立方体中心点 pose 可视化。

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

  • 立方体列表/cube_list:设置 cube_list 的可视化属性,值描述与上述 立方体 一致。

  • 坐标列表/pose_list:设置空间变换后的 pose 列表可视化属性。值描述与 坐标 一致。

数据信号输入输出

说明:数据输入内容与属性面板中的 mode 模式相关。

输入:

  • cube

    • 数据类型:Cube

    • 输入内容:当模式为 cube_base 时为变换的 cube,当模式为 cube_relative 时为相对的 cube

  • cube_list

    • 数据类型:Cube

    • 输入内容:当模式为 cube_base 时为变换的 cubelist,当模式为 cube_relative 时为相对的 cubelist

  • pose

    • 数据类型:Pose

    • 输入内容:当模式为 cube_base 时为相对的 pose,当模式为 cube_relative 时为变换的 pose

  • pose_list

    • 数据类型:PoseList

    • 输入内容:当模式为 cube_base 时为相对的 poselist,当模式为 cube_relative 时为变换的 poselist

输出:

  • cube

    • 数据类型:Cube

    • 输出内容:变换后立方体数据

  • cube_list

    • 数据类型:CubeList

    • 输出内容:变换后立方体列表数据

  • pose

    • 数据类型:Pose

    • 输出内容:变换后立方体中心点坐标

  • pose_list

    • 数据类型:PoseList

    • 输出内容:变换后立方体中心点坐标列表

功能演示

使用 Transform 算子中 Cube 将加载的立方体进行空间变换。

步骤1:算子准备

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

步骤2:设置算子参数

  1. 设置 Load 算子参数:

    • 类型 → Cube

    • 文件 → icon_more → 选择立方体文件名 ( example_data/cube/cube.txt )

    • 立方体 → icon_visOn可视

  2. 设置Emit 算子参数:

    • 类型 → Pose

    • 坐标 → 1 0 0 1.57 3.14 0

    • 坐标 → icon_visOn 可视 → icon_size 1

  3. 设置 Transform 算子参数:

    • 类型 → Cube

    • 模式 → cube_base

    • 立方体 → icon_visOn 可视 → icon_color 120

步骤3:连接算子

3D_Transform_Cube_nodes

步骤4:运行

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

运行结果

如下图所示,3D 视图中分别显示 cube 转换前后的对比图,灰色立方体为 Load 算子加载的 cube ,绿色立方体为 Transform 算子转换后的 cube 。pose 为 Emit 算子生成的 pose 。

3D_Transform_Cube_result

PointCloud

将 Transform 算子的 类型 属性选择 PointCloud ,用于点云空间变换。其变换的原理是以点云的中心点 pose 为基础进行变换。

算子参数

  • 点云/cloud:设置空间变换后的点云在 3D 视图中的可视化属性。

    • icon_visOn 打开点云可视化。

    • icon_visOff 关闭点云可视化。

    • icon_color 设置 3D 视图中点云的颜色。取值范围:[-2,360] 。默认值:-1 。

    • icon_size 设置点云中点的尺寸。取值范围:[1,50] 。默认值:1 。

  • 点云列表/cloud_list:设置点云列表在 3D 视图中的可视化属性。值描述与 点云 一致。

数据信号输入输出

输入:

  • cloud

    • 数据类型:PointCloud

    • 输入内容:需要变换的点云数据

  • cloud_list

    • 数据类型:CloudList

    • 输入内容:需要变换的点云列表数据

  • pose

    • 数据类型:Pose

    • 输入内容:相对坐标数据

  • pose_list

    • 数据类型:PoseList

    • 输入内容:相对坐标列表数据

输出:

  • cloud

    • 数据类型:PointCloud

    • 输出内容:变换后点云数据

  • cloud_list

    • 数据类型:PointCloudList

    • 输出内容:变换后点云列表数据

功能演示

使用 Transform 算子中 PointCloud 将加载的点云进行空间变换。

步骤1:算子准备

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

步骤2:设置算子参数

  1. 设置 Load 算子参数:

    • 类型 → pointcloud

    • 文件 → icon_more → 选择点云文件名( example_data/pointcloud/wolf1.pcd )

    • 坐标 → icon_visOn可视 → icon_color 280

  2. 设置Emit 算子参数:

    • 类型 → Pose

    • 坐标 → 1 2 0 1.57 3.14 0

    • 坐标 → icon_visOn 可视 → icon_size 10

  3. 设置 Transform 算子参数:

    • 类型 → PointCloud

    • 点云 → icon_visOn 可视 → icon_color 60

步骤3:连接算子

3D_Transform_PointCloud_nodes

步骤4:运行

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

运行结果

如下图所示,3D 视图中分别显示点云转换前后的对比图,紫色点云为 Load 算子加载的点云,黄色点云为 Transform 算子转换后的点云,pose 为 Emit 算子生成的 pose。

3D_Transform_PointCloud_result2