RobotOperator 机器人操作工具

RobotOperator 算子为机器人操作工具,用于对机器人的操作

type 功能
EmitJoint 生成机器人的关节值joint。
EmitActualJoint 获得当前机器人的关节值joint。
EmitActualTCP 获得当前机器人的TCP。
EmitToolPose 获得当前机器人工具的pose。
ComputeDK 计算机器人正运动学。
ComputeIK 计算机器人逆运动学。
ComputeJoinPose 计算各个旋转轴所在的位置。
VisualizeJoin /
AttachObject 用于给机器人添加工具。
DetachObject 用于删除机器人工具。

EmitJoint

将 RobotOperator 算子的 类型 属性选择 EmitJoint ,用于生成机器人的关节值 joint。

算子参数

  • 机器人资源名称/robot_resource_name:机器人资源名。选择在Resource Group 中添加的机器人资源。

  • 机器人名称/robot_name:机器人名称。

  • 机器人模型文件/robot_file:机器人文件名。

  • 工具模型文件/tool_file:工具文件名。

  • 关节/joint:机器人关节弧度值。

  • 机器人/robot:设置机器人在 3D 视图中的可视化属性。

    • icon_visOn 打开机器人可视化。

    • icon_visOff 关闭机器人可视化。

  • 机器人更新/robot_updata:设置机器人更新。

    • 是/True:机器人更新操作。

    • 否/False:机器人未更新操作。

数据信号输入输出

输入:

  • joint

    • 数据类型:JointArray

    • 输入内容:机器人关节弧度值数据

输出:

  • robot

    • 数据类型:Robot

    • 输出内容:机器人数据

  • joint

    • 数据类型:JointArray

    • 输出内容:机器人关节弧度值数据

功能演示

使用 RobotOperator 算子中 EmitJoint ,生成机器人的关节弧度值 joint。

步骤1:算子准备

添加 Trigger 、RobotOperator 算子至算子图。

步骤2:设置算子参数

设置 RobotOperator 算子参数:

  • 类型 → EmitJoint

  • 机器人名称 → UniversalRobot

  • 机器人模型文件夹 → icon_more→ 选择 robot 文件名 ( example_data/UR5/UR5.rob )

  • 关节 → 1.5708 0 0 0 0 0

  • 机器人 → icon_visOn 可视

步骤3:连接算子

Robot_RobotOperator_EmitJoint_Nodes

步骤4:运行

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

运行结果

如下图所示,在 3D 视图中显示当前加载的机器人,鼠标左键双击 3D 视图中的机器人,弹出机器人面板,将机器人基坐标和机器人 TCP 设为 True 。机器人当前关节值为“ 90° 0° 0° 0° 0° 0° ”,与 RobotOperator 算子 joint 参数 “ 1.5708 0 0 0 0 0 ” 一致。

Robot_RobotOperator_EmitJoint_Result

EmitActualJoint

将 RobotOperator 算子的 类型 属性选择 EmitActualJoint ,用于获得当前机器人的关节弧度值。

算子参数

  • 机器人资源名称/robot_resource_name:机器人资源名。选择在Resource Group 中添加的机器人资源。

数据信号输出

输出:

  • joint

    • 数据类型:JointArray

    • 输出内容:机器人关节弧度值数据

功能演示

使用 RobotOperator 算子中 EmitActualJoint ,获得当前机器人的关节弧度值。

步骤1:算子准备

  1. 添加 SimulatedRobotResource 资源算子至 Resource Group 。

  2. 添加 Trigger 、RobotMovement 、RobotOperator 算子至算子图。

步骤2:设置算子参数

  1. 设置 SimulatedRobotResource 算子参数:

    • 机器人模型文件 → icon_more→ 选择 robot 文件名 ( example_data/UR5/UR5.rob )

    • 机器人 → icon_visOn 可视

  2. 设置 RobotMovement 算子参数:

    • 机器人资源名称 → SimulatedRobotResource

    • 类型 → MoveJoint

    • 关节 → 1.5708 0 0 0 0 0

  3. 设置 RobotOperator 算子参数:

    • 机器人资源名称 → SimulatedRobotResource

    • 类型 → EmitActualJoint

步骤3:连接算子

Robot_RobotOperator_EmitActualJoint_Nodes

步骤4:运行

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

运行结果

  1. 如下图所示,在 3D 视图中显示当前加载的机器人 ,鼠标左键双击 3D 视图中的机器人,弹出机器人面板,将机器人基坐标和机器人 TCP 设为 True 。仿真机器人按照 MoveJoint 方式移动关节值 “ 1.5708 0 0 0 0 0 ” 。RobotOperator算子可以获得当前机器人的关节值为 “ 1.5708 0 0 0 0 0 ” 。

    Robot_RobotOperator_EmitActualJoint_Result1

2.如下图所示,在 RobotOperator 算子的右侧输出端口显示当前机器人的关节值为 “ 1.5708 0 0 0 0 0 ” 。

Robot_RobotOperator_EmitActualJoint_Result2

EmitActualTCP

将 RobotOperator 算子的 类型 属性选择 EmitActualTCP ,用于获得当前机器人的 TCP 值。

算子参数

  • 机器人资源名称/robot_resource_name:机器人资源名。选择在Resource Group 中添加的机器人资源。

  • 机器人TCP/tcp:设置机器人 TCP 可视化属性。

    • icon_visOn 打开 TCP 可视化。

    • icon_visOff 关闭 TCP 可视化。

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

数据信号输出

输出:

  • tcp

    • 数据类型:TCP

    • 输出内容:机器人 tcp 值数据

功能演示

本节将使用 RobotOperator 算子中 EmitActualTCP ,获得当前机器人的 TCP 值。这与 RobotOperator 算子中 EmitActualJoint 属性获得当前机器人的关节弧度值的方法相同,请参照该章节的功能演示。

打开 TCP 可视化结果,最终在 3D 视图中显示如下。

Robot_RobotOperater_EmitActualTCP_nodes

EmitToolPose

将 RobotOperator 算子的 类型 属性选择 EmitToolPose ,用于获得当前机器人工具的 pose 。

算子参数

  • 机器人资源名称/robot_resource_name:机器人资源名。选择在Resource Group 中添加的机器人资源。

  • 工具坐标补偿/tool_offset:当前机器人工具在机器人法兰坐标系下的 pose 。

  • 工具坐标/tool_pose:当前机器人工具的 pose 。

  • 工具坐标补偿/tool_offset:设置 tool_offset 在 3D 视图中的可视化属性。

    • icon_visOn 打开 tool_offset 可视化。

    • icon_visOff 关闭 tool_offset 可视化。

  • 工具坐标/tool_pose:设置 tool_pose 在 3D 视图中的可视化属性。

    • icon_visOn 打开 tool_pose 可视化。

    • icon_visOff 关闭 tool_pose 可视化。

数据信号输出

输出:

  • tool_offset

    • 数据类型:Pose

    • 输出内容:机器人工具在机器人法兰坐标系下的 pose

  • tool_pose

    • 数据类型:Pose

    • 输出内容:机器人工具的 pose

功能演示

将 RobotOperator 算子的 type 属性选择 EmitToolPose ,获得当前机器人工具的 pose 和 机器人工具在机器人法兰坐标系下的 pose 。

步骤1:算子准备

  1. 添加 SimulatedRobotResource 资源算子至 Resource Group 。

  2. 添加 Trigger 、RobotMovement 、RobotOperator 算子至算子图。

步骤2:设置算子参数

  1. 设置 SimulatedRobotResource 算子参数:

    • 机器人模型文件 → icon_more→ 选择 robot 文件名 ( example_data/UR5/UR5.rob )

    • 工具模型文件 → icon_more→ 选择 tool 文件名 ( example_data/Tool/EliteRobotSucker1.tool.xml )

    • 机器人 → icon_visOn 可视

  2. 设置 RobotMovement 算子参数:

    • 机器人资源名称 → SimulatedRobotResource

    • 类型 → MoveJoint

    • 关节 → 1.5708 0 0 0 0 0

  3. 设置 RobotOperator 算子参数:

    • 机器人资源名称 → SimulatedRobotResource

    • 类型 → EmitToolPose

    • 工具坐标 → icon_visOn 可视

步骤3:连接算子

Robot_RobotOperator_EmitToolPose_Nodes

步骤4:运行

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

运行结果

  1. 当算子运行结束后,可以在 RobotOperator 算子属性面板中看到 tool_pose 的参数值。

    Robot_RobotOperator_EmitToolPose_pannel

  2. 在 3D 视图中显示当前加载的机器人 ,鼠标左键双击 3D 视图中的机器人,弹出机器人面板,将机器人基坐标、机器人 TCP 、工具 TCP 设为 True 。此时机器人当前工具 TCP 值为“ 0.38145 -0.81725 -0.00549 1.57080 0 1.57080 ”。

    Robot_RobotOperator_EmitToolPose_Result1

  3. 在RobotOperator 算子右侧端口输出 tool_pose 数据。

    Robot_RobotOperator_EmitToolPose_Result2

ComputeDK

将 RobotOperator 算子的 类型 属性选择 ComputeDK ,用于计算机器人正运动学。

算子参数

  • 机器人资源名称/robot_resource_name:机器人资源名。选择在Resource Group 中添加的机器人资源。

  • TCP坐标/tcp_pose:设置 tcp_pose 在 3D 视图中的可视化属性。

    • icon_visOn 打开 tcp_pose 可视化。

    • icon_visOff 关闭 tcp_pose 可视化。

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

  • TCP坐标列表/tcp_pose_list:设置 tcp_pose_list 在 3D 视图中的可视化属性。

    • icon_visOn 打开 tcp_pose_list 可视化。

    • icon_visOff 关闭 tcp_pose_list 可视化。

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

数据信号输入输出

输入:

说明:根据需求输入一种输入数据信号即可。

  • joint

    • 数据类型:JointArray

    • 输入内容:机器人关节弧度值数据

  • joint_list

    • 数据类型:JointArrayList

    • 输入内容:机器人关节弧度值数据列表

输出:

  • tcp_pose

    • 数据类型:Pose

    • 输出内容:机器人 tcp 位置 pose

  • tcp_pose_list

    • 数据类型:PoseList

    • 输出内容:机器人 tcp 位置 pose_list

功能演示

使用 RobotOperator 算子中 ComputeDK ,计算机器人正运动学。

步骤1:算子准备

  1. 添加 SimulatedRobotResource 资源算子至 Resource Group 。

  2. 添加 Trigger 、RobotMovement 、RobotOperator 算子至算子图。

步骤2:设置算子参数

  1. 设置 SimulatedRobotResource 算子参数:

    • 机器人模型文件 → icon_more→ 选择 robot 文件名 ( example_data/UR5/UR5.rob )

    • 机器人 → icon_visOn 可视

  2. 设置 RobotMovement 算子参数:

    • 机器人资源名称 → SimulatedRobotResource

    • 类型 → MoveJoint

    • 关节 → 1.5708 0 0 0 0 0

  3. 设置 RobotOperator 算子参数:

    • 机器人资源名称 → SimulatedRobotResource

    • 类型 → ComputeDK

    • TCP坐标 → icon_visOn 可视

步骤3:连接算子

Robot_RobotOperator_ComputeDK_Nodes

步骤4:运行

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

运行结果

如下图所示,在 3D 视图中显示当前加载的机器人,仿真机器人按照 MoveJoint 方式移动关节值“1.5708 0 0 0 0 0” ,鼠标左键双击 3D 视图中的机器人,弹出机器人面板,将机器人基坐标和机器人 TCP 设为 True ,获得当前机器人 tcp_pose ,与当前机器人面板的 TCP 保持一致。

Robot_RobotOperator_ComputeDK_Result

ComputeIK

将 RobotOperator 算子的 类型 属性选择 ComputeIK ,用于计算机器人逆运动学。

算子参数

  • 机器人资源名称/robot_resource_name:机器人资源名。选择在Resource Group 中添加的机器人资源。

  • shoulder_flag:机器人的肩关节。

    • Any:不限定肩关节的位置。

    • ShoulderLeft:优先输出肩关节在机械臂左侧的逆运动学的解。

    • ShoulderRight:优先输出肩关节在机械臂右侧的逆运动学的解。

  • elbow_flag:机器人的肘关节。

    • Any:不限定肘关节的位置。

    • ElbowUp:优先输出肘关节朝上的逆运动学的解。

    • ElbowDown:优先输出肘关节朝下的逆运动学的解。

  • wrist_flag:机器人的腕关节。

    • Any:不限定腕关节的位置。

    • Flip:翻转腕关节,一般情况下腕关节默认朝下。

    • NonFlip:不翻转腕关节。

  • 机器人TCP/tcp:机器人tcp 值。

数据信号输入输出

输入:

  • goal_pose

    • 数据类型:Pose

    • 输入内容:目标 pose 数据

  • ref_joint

    • 数据类型:JointArray

    • 输入内容:机器人参考关节弧度值数据

输出:

  • ik_solution

    • 数据类型:JointArray

    • 输出内容:机器人逆运动学解 joint 数据

功能演示

使用 RobotOperator 算子的中 ComputeIK ,计算机器人逆运动学。

步骤1:算子准备

  1. 添加 SimulatedRobotResource 资源算子至 Resource Group 。

  2. 添加 Trigger 、Emit 、RobotMovement 、RobotOperator 、MoveIK 算子至算子图。

步骤2:设置算子参数

  1. 设置 SimulatedRobotResource 算子参数:

    • 机器人模型文件 → icon_more→ 选择 robot 文件名 ( example_data/UR5/UR5.rob )

    • 机器人 → icon_visOn 可视

  2. 设置 RobotMovement 算子参数:

    • 机器人资源名称 → SimulatedRobotResource

    • 类型 → MoveJoint

    • 关节 → 1.5708 0 0 0 0 0

  3. 设置 RobotOperator 算子参数:

    • 机器人资源名称 → SimulatedRobotResource

    • 类型 → ComputeIK

  4. 设置 Emit 算子参数:

    • 类型 → Pose

    • 坐标 → 0.2 -0.7 0.2 1.5708 0 1.5708

步骤3:连接算子

Robot_RobotOperator_ComputeIK_Nodes

步骤4:运行

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

运行结果

  1. 如下图所示,在 3D 视图中显示当前加载的机器人。仿真机器人按照 MoveJoint 方式移动关节值“1.5708 0 0 0 0 0” ,RobotOperator 算子通过 ComputeIK 计算得到 ik_solution ,机器人再次移动到新的位置。

    Robot_RobotOperator_ComputeIK_Result1

  2. 如下图所示,RobotOperator 算子通过 ComputeIK 计算得到 ik_solution。

    Robot_RobotOperator_ComputeIK_Result2

ComputeJoinPose

将 RobotOperator 算子的 类型 属性选择 ComputeJoinPose ,用于计算各个旋转轴所在的 pose 位姿。

算子参数

  • 机器人资源名称/robot_resource_name:机器人资源名。选择在Resource Group 中添加的机器人资源。

  • 关节坐标列表/joint_pose_list:设置 joint_pose_list 在 3D 视图中的可视化属性。

    • icon_visOn 打开 joint_pose_list 可视化。

    • icon_visOff 关闭 joint_pose_list 可视化。

    • icon_size 设置 joint_pose_list 中 各个 pose 的尺寸。取值范围:[0.001,10]。默认值:0.1。

数据信号输入输出

输入

  • joint

    • 数据类型:JointArray

    • 输入内容:机器人关节弧度值

输出

  • joint_pose_list

    • 数据类型:PoseList

    • 输出内容:各个旋转轴所在的位姿

功能演示

使用 RobotOperator 算子的中 ComputeJoinPose ,计算各个旋转轴所在的 pose 位姿。

步骤1:算子准备

  1. 添加 SimulatedRobotResource 资源算子至 Resource Group 。

  2. 添加 Trigger 、RobotMovement 、RobotOperator 算子至算子图。

步骤2:设置算子参数

  1. 设置 SimulatedRobotResource 算子参数:

    • 机器人模型文件 → icon_more→ 选择 robot 文件名 ( example_data/UR5/UR5.rob )

    • 机器人 → icon_visOn 可视

  2. 设置 RobotMovement 算子参数:

    • 机器人资源名称 → SimulatedRobotResource

    • 类型 → MoveJoint

    • 关节 → 1.5708 0 0 0 0 0

  3. 设置 RobotOperator 算子参数:

    • 机器人资源名称 → SimulatedRobotResource

    • 类型 → ComputeJoinPose

    • 关节坐标列表 → icon_visOn 可视

步骤3:连接算子

Robot_RobotOperator_ComputeJoinPose_nodes

步骤4:运行

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

运行结果

  1. 如下图所示,在 3D 视图中显示当前加载的机器人。仿真机器人按照 MoveJoint 方式移动关节值“1.5708 0 0 0 0 0” ,RobotOperator 算子通过 ComputeJoinPose 计算得到旋转轴所在的 pose 位姿 。

Robot_RobotOperator_ComputeJoinPose_result

AttachObject

将 RobotOperator 算子的 类型 属性选择 AttachObject ,用于给机器人添加工具。

算子参数

  • 机器人资源名称/robot_resource_name:机器人资源名。选择在Resource Group 中添加的机器人资源。

  • 物体模型文件/object_filename:机器人工具名。

数据信号输入输出

输入

  • obj_pose

    • 数据类型:Pose

    • 输入内容:当未输入该值时,工具添加默认位置为机器人 TCP 位置。若输入,则默认位置以 obj_pose 进行平移和旋转。

    注意:当输入该值时,需要先打开 SimulatedRobotResource 算子中 robot_update 属性,再次触发算子。

功能演示

使用 RobotOperator 算子的中 AttachObject ,在机器人 TCP 处添加工具。

步骤1:算子准备

  1. 添加 SimulatedRobotResource 资源算子至 Resource Group 。

  2. 添加 Trigger 、Emit 、RobotOperator 算子至算子图。

步骤2:设置算子参数

  1. 设置 SimulatedRobotResource 算子参数:

    • 机器人模型文件 → icon_more→ 选择 robot 文件名 ( example_data/UR5/UR5.rob )

    • 机器人 → icon_visOn 可视

  2. 设置 RobotOperator 算子参数:

    • 机器人资源名称 → SimulatedRobotResource

    • 类型 → AttachObject

    • 物体模型文件 → icon_more→ 选择 tool 文件名( example_data/Tool/EliteRobotSucker2.obj )

步骤3:连接算子

RobotOerator_AttachObject_nodes

步骤4:运行

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

运行结果

结果如下图所示,在机器人 TCP 处添加了工具。

RobotOerator_AttachObject_result

DetachObject

将 RobotOperator 算子的 类型 属性选择 DetachObject ,用于删除机器人工具。

算子参数

  • 机器人资源名称/robot_resource_name:机器人资源名。选择在Resource Group 中添加的机器人资源。

功能演示

使用 RobotOperator 算子的中 DetachObject ,删除机器人仿真控制资源中加载的机器人工具。

步骤1:算子准备

  1. 添加 SimulatedRobotResource 资源算子至 Resource Group 。

  2. 添加 Trigger 、RobotOperator ( 2个 ) 算子至算子图。

步骤2:设置算子参数

  1. 设置 SimulatedRobotResource 算子参数:

    • 机器人模型文件 → icon_more→ 选择 robot 文件名 ( example_data/UR5/UR5.rob )

    • 机器人 → icon_visOn 可视

  2. 设置 RobotOperator 算子参数:

    • 机器人资源名称 → SimulatedRobotResource

    • 类型 → AttachObject

    • 物体模型文件 → icon_more→ 选择 tool 文件名( example_data/Tool/EliteRobotSucker2.obj )

  3. 设置 RobotOperator_1 算子参数:

    • 机器人资源名称 → SimulatedRobotResource

    • 类型 → DetachObject

步骤3:连接算子

RobotOerator_DetachObject_nodes

步骤4:运行

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

运行结果

结果如下图所示,已删除添加的机器人工具。添加机器人工具结果请查看本文 AttachObject 章节。

RobotOerator_DetachObject_result