ObjectSceneOperator 物品场景操作

类型 功能
AddObject 输入检测目标的位姿,其效果是将实际的检测目标添加到场景中。
GetObjects 从场景中获得所有已添加的检测目标的 SceneObject 列表。
GetObjectByID 根据输入的物体 ID 参数,从场景中获得对应名称的检测目标并以 SceneObject 的数据格式输出。
RemoveObjects 清空场景中的所有已添加的检测目标。
RemoveObjectByID 根据输入的物体 ID 参数,清除场景中对应名称的检测目标。
AddObstacleObject 为运动规划场景添加障碍物。
RemoveObstacleObjectByID 根据输入的物体 ID 参数,清除场景中的对应名称的障碍物。
ObjectToPolydata 将 SceneObject 数据转换成 PolyData 数据。

AddObject

将 ObjectSceneOperator 的算子类型选择 AddObject,根据输入的检测目标位姿,将该目标添加到场景中。 分为两种输入模式:pose 或者 pose_list。

  • pose:一次添加一个检测目标。在使用 pose 输入模式时,算子参数物体ID生效,其参数值会作为检测目标的名称。当参数空置时,以参数运动规划资源管理的抓取目标类型名 pipe 举例,RVS 会自动为其赋名为 pipe_n。

  • pose_list:一次性添加一个检测目标列表。在使用 pose_list 输入模式时,算子参数物体ID无效。RVS 会自动为其赋名为 pipe_1、pipe_n 等。

    注意:运动规划场景会自动计数当前已添加的检测目标个数,进而保证上述 pipe_n 中数值 n 的正确性。当执行 RemoveObjects类型时,所有计数重置。

算子参数

  • 运动规划资源管理/motion_planning_resource:运动规划资源管理算子名称。使用时需要在 Resource Group 中添加一个运动规划资源管理算子并将其名称填入此处。

  • 物体ID/object_id:物体名称。

数据信号输入输出

说明:Pose 输入端口有数据时,无论 pose_list 输入端口是否有连线,都仅采用 pose 输入端口的连接数据。

输入:

  • pose :

    • 数据类型:Pose

    • 输入内容:一个检测目标

  • pose_list :

    • 数据类型:PoseList

    • 输入内容:检测目标列表

功能演示

详见深框抓取Demo展示。

GetObjects

将 ObjectSceneOperator 的算子类型选择 GetObjects,用于从场景中获得所有已添加的检测目标的SceneObject列表,SceneObject数据无法可视化,需要转换成 polydata 数据进行显示。

算子参数

  • 运动规划资源管理/motion_planning_resource:运动规划资源管理算子名称。使用时需要在 Resource Group 中添加一个运动规划资源管理算子并将其名称填入此处。

数据信号输入输出

输出:

  • scene_object_list :

    • 数据类型:SceneObject

    • 输出内容:从场景中获得所有已经添加的检测目标的数据列表

功能演示

详见深框抓取Demo展示。

GetObjectByID

将 ObjectSceneOperator 的算子类型选择 GetObjectByID,用于根据输入的 物体ID参数,从场景中获得对应名称的检测目标并以 SceneObject 的数据格式输出。SceneObject数据无法可视化,需要转换成 polydata 数据进行显示。

算子参数

  • 运动规划资源管理/motion_planning_resource:运动规划资源管理算子名称。使用时需要在 Resource Group 中添加一个运动规划资源管理算子并将其名称填入此处。

  • 物体ID/object_id:物体名称。

数据信号输入输出

输出:

  • scene_object_list :

    • 数据类型:SceneObject

    • 输出内容:从场景中获得指定物体ID的检测目标

功能演示

详见深框抓取Demo展示。

RemoveObjects

将 ObjectSceneOperator 的算子类型选择 RemoveObjects,用于清空场景中的所有检测目标,同时其内部的命名序号计数(即 AddObject 类型中提及的检测目标计数个数)重置为0。

算子参数

  • 运动规划资源管理/motion_planning_resource:运动规划资源管理算子名称。使用时需要在 Resource Group 中添加一个运动规划资源管理算子并将其名称填入此处。

功能演示

详见深框抓取Demo展示。

RemoveObjectByID

将 ObjectSceneOperator 的算子类型选择 RemoveObjectByID,用于根据输入的物体ID参数,清除场景中的对应名称的检测目标,其内部命名序号(即 AddObject 类型中提及的检测目标计数个数)不变。

算子参数

  • 运动规划资源管理/motion_planning_resource:运动规划资源管理算子名称。使用时需要在 Resource Group 中添加一个运动规划资源管理算子并将其名称填入此处。

  • 物体ID/object_id:物体名称。

数据信号输入输出

输入:

  • object_id :

    • 数据类型:String

    • 输入内容:物体名称

功能演示

详见深框抓取Demo展示。

AddObstacleObject

将 ObjectSceneOperator 的算子类型选择 AddObstacleObject,为运动规划场景添加障碍物。分为RemainCloud、PolyData、Cube三种模式。

每种模式下都有一个物体ID的属性,表示所添加障碍物的命名。如果命名已经被占用,则会将新添加的障碍物直接替换原有障碍物。所以不建议将该参数空置,因为全局只能有一个未命名(或者说命名为空)的障碍物。

注意:每个障碍物或者被检测到的抓取目标,在场景中都有唯一对应的名称,用于场景内部数据的增删维护以及避撞消息提示等。

算子参数

  • 运动规划资源管理/motion_planning_resource:运动规划资源管理算子名称。使用时需要在 Resource Group 中添加一个运动规划资源管理算子并将其名称填入此处。

  • mode:选择障碍物的模式,分为RemainCloud、PolyData、Cube三种模式。

    • Cube:类似于工作台的台面这种简单障碍物可以直接使用 Cube 数据类型直接添加到场景中,也可以将障碍物拆分成多个 Cube 的形式分别添加到场景中。Cube形式的障碍物在实际避撞运算时,默认视为凸面体进行避撞运算,所以运算速度最快0。同时添加也最方便,无需客户提供目标数模文件。

      • 物体ID/object_id:物体名称。

    • PolyData:对于复杂的障碍物,需要客户提供 3D 数模文件并转换成 PolyData 的数据格式添加到场景中。实际避撞运算时,默认视为凹面体进行避撞运算。

      • 物体ID/object_id:物体名称。

    • RemainCloud:一种特殊的避撞物添加方式,专用于将剩余点云转换为 PolyData 数模并添加到场景中。此时算子端口输入的是 Pointcloud,输出的是PolyData 数据,该输出端口专用于在 3D 窗口中的效果展示。

      • 物体ID/object_id:物体名称。

      • 采样规模/sampling_size:将点云转换成 polydata 数据时的采样间隔。在采样间隔范围内仅采集一个点作为 polydata 数据的一个顶点。

      • 粘连高度/dliate_height:当采集的相邻 3 个顶点之间的距离彼此都小于该高度数值时,将 3 个顶点连接构成 polydata 数据的一个三角面。

      • 多边形/polydata:设置多边形在 3D 视图中的可视化属性。

        • icon_visOn 打开多边形可视化。

        • icon_visOff 关闭多边形可视化。

        • icon_color 设置多边形颜色。取值范围:[-2,360] 。默认值:-1 。

        • icon_opacity 设置多边形透明度。取值范围:[0,1] 。默认值:1 。

数据信号输入输出

Cube 模式

输入:

  • cube :

    • 数据类型:Cube

    • 输入内容:立方体数据(简单障碍物)

PolyData 模式

输入:

  • polydata :

    • 数据类型:PolyData

    • 输入内容: 3D 数据文件转成的 PolyData 数据

RemainCloud 模式

输入:

  • cloud :

    • 数据类型:PointCloud

    • 输入内容:剩余点云

输出:

  • polyData :

    • 数据类型:PolyData

      • 输出内容:剩余点云转成的 PolyData

功能演示

详见深框抓取Demo展示。

RemoveObstacleObjectByID

将 ObjectSceneOperator 的算子类型选择 RemoveObstacleObjectByID,用于根据输入的物体ID参数,清除场景中的对应名称的障碍物。

算子参数

  • 运动规划资源管理/motion_planning_resource:运动规划资源管理算子名称。使用时需要在 Resource Group 中添加一个运动规划资源管理算子并将其名称填入此处。

  • 物体ID/object_id:物体名称。

功能演示

详见深框抓取Demo展示。

ObjectToPolydata

将 ObjectSceneOperator 的算子类型选择 ObjectToPolydata,用于将 SceneObject 数据转换成 polydata 数据。

算子参数

  • 运动规划资源管理/motion_planning_resource:运动规划资源管理算子名称。使用时需要在 Resource Group 中添加一个运动规划资源管理算子并将其名称填入此处。

  • 多边形/polydata:设置多边形在 3D 视图中的可视化属性。

    • icon_visOn 打开多边形可视化。

    • icon_visOff 关闭多边形可视化。

    • icon_color 设置多边形颜色。取值范围:[-2,360] 。默认值:-1 。

    • icon_opacity 设置多边形透明度。取值范围:[0,1] 。默认值:1 。

  • 多边形列表/polydata_list:设置多边形列表在 3D 视图中的可视化属性。值描述与多边形一致。

数据信号输入输出

输入:

  • scene_object :

    • 数据类型:SceneObject

    • 输入内容:单个 SceneObject 数据

  • scene_object :

    • 数据类型:SceneObjectList

    • 输入内容: SceneObject 列表数据

输出:

  • polyData :

    • 数据类型:PolyData

    • 输出内容:PolyData 数据

  • polyData_list :

    • 数据类型:PolyDataList

    • 输出内容:PolyData 数据列表

功能演示

详见深框抓取Demo展示。