RobotOperator 机器人操作工具

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

type 功能
输出关节 生成机器人的关节值joint。
输出当前关节 获得当前机器人的关节值joint。
输出当前TCP 获得当前机器人的TCP。
输出Tool坐标 获得当前机器人工具的pose。
计算正运动 计算机器人正运动学。
计算逆运动 计算机器人逆运动学。
计算关节坐标 计算各个旋转轴所在的位置。
显示关节姿态 /
链接目标 用于给机器人添加工具。
解除链接 用于删除机器人工具。
更换末端工具 用于更换机器人末端工具。

输出关节

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

算子参数

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

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

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

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

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

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

    • icon_visOn 打开机器人可视化。

    • icon_visOff 关闭机器人可视化。

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

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

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

数据信号输入输出

输入:

  • 关节

    • 数据类型:JointArray

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

输出:

  • 机器人

    • 数据类型:Robot

    • 输出内容:机器人数据

  • 关节

    • 数据类型:JointArray

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

功能演示

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

步骤1:算子准备

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

步骤2:设置算子参数

设置 RobotOperator 算子参数:

  • 类型 → 输出关节

  • 机器人名称 → UniversalRobot

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

  • 关节 → 1.5708 0 0 0 0 0

  • 机器人 → icon_visOn 可视

步骤3:连接算子

image-20241101171241123

步骤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

输出当前关节

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

算子参数

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

数据信号输出

输出:

  • 关节

    • 数据类型: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

    • 类型 → 移动关节

    • 关节 → 1.5708 0 0 0 0 0

  3. 设置 RobotOperator 算子参数:

    • 机器人资源名称 → SimulatedRobotResource

    • 类型 → 输出当前关节

步骤3:连接算子

image-20241104154700603

步骤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 ” 。

image-20241104155740268

输出当前TCP

将 RobotOperator 算子的 类型 属性选择输出当前TCP ,用于获得当前机器人的 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

输出Tool坐标

将 RobotOperator 算子的 类型 属性选择输出Tool坐标 ,用于获得当前机器人工具的 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 可视化。

数据信号输出

输出:

  • 工具坐标补偿

    • 数据类型:Pose

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

  • 工具坐标

    • 数据类型:Pose

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

功能演示

将 RobotOperator 算子的 type 属性选择输出Tool坐标,获得当前机器人工具的 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

    • 类型 → 移动关节

    • 关节 → 1.5708 0 0 0 0 0

  3. 设置 RobotOperator 算子参数:

    • 机器人资源名称 → SimulatedRobotResource

    • 类型 → 输出Tool坐标

    • 工具坐标 → icon_visOn 可视

步骤3:连接算子

image-20241104162625775

步骤4:运行

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

运行结果

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

    image-20241104163543727

  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 数据。

    image-20241104164156746

计算正运动

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

算子参数

  • 机器人资源名称/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。

数据信号输入输出

输入:

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

  • 关节

    • 数据类型:JointArray

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

  • 关节列表

    • 数据类型:JointArrayList

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

输出:

  • TCP坐标

    • 数据类型:Pose

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

  • TCP坐标列表

    • 数据类型:PoseList

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

功能演示

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

步骤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

    • 类型 → 移动关节

    • 关节 → 1.5708 0 0 0 0 0

  3. 设置 RobotOperator 算子参数:

    • 机器人资源名称 → SimulatedRobotResource

    • 类型 → 计算正运动

    • TCP坐标 → icon_visOn 可视

步骤3:连接算子

image-20241104164938900

步骤4:运行

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

运行结果

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

Robot_RobotOperator_ComputeDK_Result

计算逆运动

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

算子参数

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

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

数据信号输入输出

输入:

  • goal_pose

    • 数据类型:Pose

    • 输入内容:目标 pose 数据

  • 参照关节

    • 数据类型:JointArray

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

输出:

  • ik_solution

    • 数据类型:JointArray

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

功能演示

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

步骤1:算子准备

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

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

步骤2:设置算子参数

  1. 设置 SimulatedRobotResource 算子参数:

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

    • 机器人 → icon_visOn 可视

  2. 设置 RobotMovement 算子参数:

    • 机器人资源名称 → SimulatedRobotResource

    • 类型 → 移动关节

    • 关节 → 1.5708 0 0 0 0 0

  3. 设置 RobotOperator 算子参数:

    • 机器人资源名称 → SimulatedRobotResource

    • 类型 → 计算逆运动

  4. 设置 Emit 算子参数:

    • 类型 → Pose

    • 坐标 → 0.2 -0.7 0.2 1.5708 0 1.5708

  5. 设置 RobotMovement_0 算子参数:

    • 机器人资源名称 → SimulatedRobotResource

    • 类型 → 移动关节

步骤3:连接算子

image-20241104171025990

步骤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

计算关节坐标

将 RobotOperator 算子的 类型 属性选择计算关节坐标,用于计算各个旋转轴所在的 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 算子的中 计算关节坐标 ,计算各个旋转轴所在的 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

    • 类型 → 移动关节

    • 关节 → 1.5708 0 0 0 0 0

  3. 设置 RobotOperator 算子参数:

    • 机器人资源名称 → SimulatedRobotResource

    • 类型 → 计算关节坐标

    • 关节坐标列表 → icon_visOn 可视

步骤3:连接算子

image-20241105100411902

步骤4:运行

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

运行结果

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

Robot_RobotOperator_ComputeJoinPose_result

链接目标

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

算子参数

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

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

数据信号输入输出

输入

  • 目标位姿

    • 数据类型:Pose

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

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

功能演示

使用 RobotOperator 算子的中链接目标 ,在机器人 TCP 处添加工具。

步骤1:算子准备

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

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

步骤2:设置算子参数

  1. 设置 SimulatedRobotResource 算子参数:

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

    • 机器人 → icon_visOn 可视

  2. 设置 RobotOperator 算子参数:

    • 机器人资源名称 → SimulatedRobotResource

    • 类型 → 链接目标

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

步骤3:连接算子

image-20241104151251379

步骤4:运行

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

运行结果

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

RobotOerator_AttachObject_result

解除链接

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

算子参数

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

功能演示

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

步骤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

    • 类型 → 链接目标

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

  3. 设置 RobotOperator_0 算子参数:

    • 机器人资源名称 → SimulatedRobotResource

    • 类型 → 解除链接

步骤3:连接算子

image-20241104102828152

步骤4:运行

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

运行结果

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

RobotOerator_DetachObject_result

更换末端工具

将 RobotOperator 算子的 类型 属性选择更换末端工具 ,用于更换机器人末端工具。

算子参数

  • 索引/index:工具索引。0:机器人法兰。

    工具模型文件夹内容放置如下:

    image-20241104094806570

    tool.xml 内容如下:

    image-20241104094649161

数据信号输入输出

输入

  • 索引

    • 数据类型:string

    • 输入内容:索引数值

输出

功能演示

使用 RobotOperator 算子的中更换末端工具 ,更换机器人末端工具。

步骤1:算子准备

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

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

步骤2:设置算子参数

  1. 设置 SimulatedRobotResource 算子参数:

    • 自动启动 → 是

    • 机器人模型文件 → icon_more→ 选择 robot 文件名 (example_data/robot_data/Aubo/AUBO-i5/AUBO-i5.rob)

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

    • 机器人 → icon_visOn 可视

  2. 设置 RobotOperator 算子参数:

    • 机器人资源名称 → SimulatedRobotResource

    • 类型 → 更换末端工具

    • tool_index → 1

步骤3:连接算子

image-20241101180050793

步骤4:运行

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

运行结果

  1. 结果如下图所示,显示机器人工具。可切换索引更换不同的工具。

    image-20241104094102555

  2. 当输入为0时,显示机器人法兰。

    image-20241104094155675