GenerateSamplePose 生成样本坐标

GenerateSamplePose 算子用于生成样本坐标。包含 BoxGridSample 、BoxRandomSample 、SphereRandomSample 、CameraPoseSample 。

type 功能
BoxGridSample 在设定范围均匀生成样本坐标。
BoxRandomSample 在设定范围随机生成样本坐标。
SphereRandomSample 在球体表面随机生成样本坐标。
CameraPoseSample 根据棋盘的位置生成相机的多组拍照位。

BoxGridSample

将 GenerateSamplePose 算子的 类型 设置为 BoxGridSample ,用于设定范围均匀生成样本坐标。

算子参数

  • 起始坐标/start_pose:坐标起点。

  • 终止坐标/end_pose:坐标终点。

  • x方向步长/step_x:在 X 轴方向,从 min_position 到 max_position 范围内均匀生成的样本坐标数量。默认值:1。

  • y方向步长/step_y:在 Y 轴方向,从 min_position 到 max_position 范围内均匀生成的样本坐标数量。默认值:1。

  • z方向步长step_z:在 Z 轴方向,从 min_position 到 max_position 范围内均匀生成的样本坐标数量。默认值:1。

  • Roll旋转步长/step_rx:围绕 X 轴旋转方向,从 min_position 到 max_position 范围内均匀生成的样本坐标数量。默认值:1。

  • Pitch旋转步长/step_ry:围绕 Y 轴旋转方向,从 min_position 到 max_position 范围内均匀生成的样本坐标数量。默认值:1。

  • Yaw旋转步长/step_rz:围绕 Z 轴旋转方向,从 min_position 到 max_position 范围内均匀生成的样本坐标数量。默认值:1。

  • 坐标列表/pose_list:设置样本坐标 3D 视图中的可视化属性。

    • icon_visOn 打开样本坐标可视化。

    • icon_visOff 关闭样本坐标可视化。

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

数据信号输入输出

输入:

  • pose

    • 数据类型:Pose

    • 输入内容:pose 数据

输出:

  • pose_list

    • 数据类型:PoseList

    • 输出内容:样本坐标列表数据

功能演示

使用 GenerateSamplePose 中 BoxGridSample 根据加载的坐标在设置范围内均匀生成4个样本坐标。

步骤1:算子准备

添加 Trigger 、Load 、GenerateSamplePose 算子至算子图。

步骤2:设置算子参数

  1. 设置 Load 算子参数:

    • 类型 → pose

    • 文件 → icon_more → 选择 pose 坐标文件名( example_data/pose/tcp.txt )

  2. 设置 GenerateSamplePose 算子参数:

    • 类型 → BoxGridSample

    • 起始坐标 → 1 0 0 0 0 0

    • 终止坐标 → 3 0 0 0 0 0

    • x方向步长 → 4

    • 坐标列表 → icon_visOn 可视

3D_GenerateSample_BoxGridSamole_nodes

步骤4:运行

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

运行结果

运行结果如下图所示,在 3D 视图中显示生成的 4 个样本坐标。

3D_GenerateSamplePose_BoxGridSample_result

BoxRandomSample

将 GenerateSamplePose 算子的 类型 设置为 BoxRandomSample ,用于在设定范围随机生成样本坐标。

算子参数

  • 起始坐标/start_pose:坐标起点。

  • 终止坐标/end_pose:坐标终点。

  • 随机采样数量/random_sample_number:随机生成的坐标数量。默认值:1 。

  • 坐标列表/pose_list:设置随机生成的坐标 3D 视图中的可视化属性。

    • icon_visOn 打开样本坐标可视化。

    • icon_visOff 关闭样本坐标可视化。

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

数据型号输入输出

输入:

  • pose

    • 数据类型:Pose

    • 输入内容:pose 数据

输出:

  • pose_list

    • 数据类型:PoseList

    • 输出内容:样本坐标列表数据

功能演示

使用 GenerateSamplePose算子中 BoxRandomSample 根据加载的坐标随机生成2个样本坐标。

步骤1:算子准备

添加 Trigger 、Load 、GenerateSamplePose 算子至算子图。

步骤2:设置算子参数

  1. 设置 Load 算子参数:

    • 类型 → pose

    • 文件 → icon_more → 选择 pose 坐标文件名( example_data/pose/tcp2.txt )

    • 坐标 → icon_visOn 可视 → icon_size 0.2

  2. 设置 GenerateSamplePose 算子参数:

    • 类型 → BoxRandomSample

    • 起始坐标 → -0.3 -0.2 -0.15 0 0 0

    • 终止坐标 → 0.3 0.2 0.15 1 2 3

    • 随机采样坐标 → 2

    • 坐标列表 → icon_visOn 可视

步骤3:连接算子

3D_GenerateSample_BoxGridSamole_nodes

步骤4:运行

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

运行结果

结果如下图所示,在 3D 视图中显示加载的坐标和随机生成的2个样本坐标。

3D_GenerateSamolePose_BoxRandomSample_result

SphereRandomSample

将 GenerateSamplePose 算子的 类型设置为 SphereRandomSample ,在球体表面随机生成样本坐标。。

算子参数

  • 初始方向数量/init_direction_number:生成样本坐标的数量。默认值:6 。表示在球体表面随机生成6个坐标。

  • 半径/radius:球体半径。默认值:1 ,单位:m 。

  • 只有半球/only_half_sphere:生成的坐标的位置。

    • False :生成的坐标仅 Z 轴正方向的全球

    • True:生成的坐标仅 Z 轴正方向的半球。

  • 坐标列表/pose_list:设置球体随机生成的样本坐标在 3D 视图中的可视化属性。

    • icon_visOn 打开样本坐标可视化。

    • icon_visOff 关闭样本坐标可视化。

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

数据信号输入输出

输入:

  • pose

    • 数据类型:Pose

    • 输入内容:pose 数据

输出:

  • pose_list

    • 数据类型:PoseList

    • 输出内容:样本坐标列表数据

功能演示

使用 GenerateSamplePose 中 SphereRandomSample 在生成的球体表面生成6个样本坐标。

步骤1:算子准备

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

步骤2:设置算子参数

  1. 设置 Emit 算子参数:

    • 类型 → Pose

    • 坐标 → icon_visOn 可视

  2. 设置 Emit_1 算子参数:

    • 类型 → Sphere

    • 半径 → 1

    • 球体 → icon_visOn 可视 → icon_size 0.5

  3. 设置GenerateSamplePose算子参数:

    • 类型 → SphereRandomSample

    • 坐标列表 → icon_visOn 可视 → icon_size 0.2

    • 其余参数默认

步骤3:连接算子

3D_GenerateSample_SphereRandomSamole_nodes

步骤4:运行

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

运行结果

如下图所示,在 3D 视图中显示加载的球体,其表面随机生成的6个坐标样本。

3D_GenerateSample_SphereRandomSamole_result

CameraPoseSample

将 GenerateSamplePose 算子的 类型 设置为 CameraPoseSample ,用于根据棋盘的位置生成相机的多组拍照位。棋盘的坐标分别绕 XYZ 轴做旋转,然后得到的旋转后的 pose 沿其 Z 轴负方向平移 radius ,得到的 pose 就是相机拍照位。

算子参数

  • 半径/radius:相机拍照位到棋盘的距离。

  • Roll度数范围/degree_range_rx:棋盘绕着 x 轴旋转的角度步长。

  • Pitch度数范围/degree_range_ry:棋盘绕着 y 轴旋转的角度步长。

  • Yaw度数范围/degree_range_rz:棋盘绕着 z 轴随机旋转的角度范围。

  • 采样数量/num_size:拍照位网格边长,默认值:3 。表示 3*3 的网格位置。

  • 取反/inverse

    • True:拍照位排序为由外到内螺旋排序。

    • False:拍照位排序为由内到外螺旋排序。

  • 坐标列表/pose_list:设置生成的相机拍照位坐标列表的可视化属性。

    • icon_visOn 打开机拍照位坐标列表可视化。

    • icon_visOff 关闭机拍照位坐标列表可视化。

    • icon_size 设置机拍照位坐标列表的尺寸大小。取值范围:[0.001,10] 。默认值:0.1 。

数据信号输入输出

输入:

  • pose

    • 数据类型:Pose

    • 输入内容:棋盘坐标数据

输出:

  • pose_list

    • 数据类型:PoseList

    • 输出内容:相机拍照位列表数据

功能演示

将 GenerateSamplePose 算子中 CameraPoseSample 根据棋盘的位置生成相机的 9 组拍照位。

步骤1:算子准备

添加 Trigger 、Emit 、GenerateSamplePose 算子至算子图。

步骤2:设置算子参数

  1. 设置 Emit 算子参数:

    • 类型 → pose

    • 坐标 → icon_visOn 可视 → icon_size 0.2

  2. 设置 GenerateSamplePose 算子参数:

    • 类型 → CameraPoseSample

    • 坐标列表 → icon_visOn 可视

步骤3:连接算子

3D_GenerateSample_CameraPoseSample_nodes

步骤4:运行

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

运行结果

如下图所示,在 3D 视图中显示棋盘的 9 个相机拍照位。

3D_GenerateSample_CameraPoseSample_result