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 视图中的可视化属性。
打开机器人可视化。
关闭机器人可视化。
机器人更新/robot_updata:设置机器人更新。是/True:机器人更新操作。
否/False:机器人未更新操作。
数据信号输入输出
输入:
关节:数据类型:JointArray
输入内容:机器人关节弧度值数据
输出:
机器人:数据类型:Robot
输出内容:机器人数据
关节:数据类型:JointArray
输出内容:机器人关节弧度值数据
功能演示
使用 RobotOperator 算子中 EmitJoint ,生成机器人的关节弧度值 joint。
步骤1:算子准备
添加 Trigger 、RobotOperator 算子至算子图。
步骤2:设置算子参数
设置 RobotOperator 算子参数:
类型 → 输出关节
机器人名称 → UniversalRobot
机器人模型文件夹 →
→ 选择 robot 文件名 ( example_data/UR5/UR5.rob )关节 → 1.5708 0 0 0 0 0
机器人 →
可视
步骤3:连接算子

步骤4:运行
点击 RVS 运行按钮,触发 Trigger 算子。
运行结果
如下图所示,在 3D 视图中显示当前加载的机器人,鼠标左键双击 3D 视图中的机器人,弹出机器人面板,将机器人基坐标和机器人 TCP 设为 True 。机器人当前关节值为“ 90° 0° 0° 0° 0° 0° ”,与 RobotOperator 算子 joint 参数 “ 1.5708 0 0 0 0 0 ” 一致。

输出当前关节
将 RobotOperator 算子的 类型 属性选择输出当前关节,用于输出当前机器人的关节弧度值。
算子参数
机器人资源名称/robot_resource_name:机器人资源名。选择在Resource Group 中添加的机器人资源。
数据信号输出
输出:
关节:数据类型:JointArray
输出内容:机器人关节弧度值数据
功能演示
使用 RobotOperator 算子中 EmitActualJoint ,获得当前机器人的关节弧度值。
步骤1:算子准备
添加 SimulatedRobotResource 资源算子至 Resource Group 。
添加 Trigger 、RobotMovement 、RobotOperator 算子至算子图。
步骤2:设置算子参数
设置 SimulatedRobotResource 算子参数:
机器人模型文件 →
→ 选择 robot 文件名 ( example_data/UR5/UR5.rob )机器人 →
可视
设置 RobotMovement 算子参数:
机器人资源名称 → SimulatedRobotResource
类型 → 移动关节
关节 → 1.5708 0 0 0 0 0
设置 RobotOperator 算子参数:
机器人资源名称 → SimulatedRobotResource
类型 → 输出当前关节
步骤3:连接算子

步骤4:运行
点击 RVS 运行按钮,触发 Trigger 算子。
运行结果
如下图所示,在 3D 视图中显示当前加载的机器人 ,鼠标左键双击 3D 视图中的机器人,弹出机器人面板,将机器人基坐标和机器人 TCP 设为 True 。仿真机器人按照 MoveJoint 方式移动关节值 “ 1.5708 0 0 0 0 0 ” 。RobotOperator算子可以获得当前机器人的关节值为 “ 1.5708 0 0 0 0 0 ” 。

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

输出当前TCP
将 RobotOperator 算子的 类型 属性选择输出当前TCP ,用于获得当前机器人的 TCP 值。
算子参数
机器人资源名称/robot_resource_name:机器人资源名。选择在Resource Group 中添加的机器人资源。机器人TCP/tcp:设置机器人 TCP 可视化属性。
打开 TCP 可视化。
关闭 TCP 可视化。
设置 TCP 的尺寸。取值范围:[0.001,10]。默认值:0.1。
数据信号输出
输出:
机器人tcp:数据类型:TCP
输出内容:机器人 tcp 值数据
功能演示
本节将使用 RobotOperator 算子中 EmitActualTCP ,获得当前机器人的 TCP 值。这与 RobotOperator 算子中 EmitActualJoint 属性获得当前机器人的关节弧度值的方法相同,请参照该章节的功能演示。
打开 TCP 可视化结果,最终在 3D 视图中显示如下。

输出Tool坐标
将 RobotOperator 算子的 类型 属性选择输出Tool坐标 ,用于获得当前机器人工具的 pose 。
算子参数
机器人资源名称/robot_resource_name:机器人资源名。选择在Resource Group 中添加的机器人资源。工具坐标补偿/tool_offset:当前机器人工具在机器人法兰坐标系下的 pose 。工具坐标/tool_pose:当前机器人工具的 pose 。工具坐标补偿/tool_offset:设置 tool_offset 在 3D 视图中的可视化属性。
打开 tool_offset 可视化。
关闭 tool_offset 可视化。
工具坐标/tool_pose:设置 tool_pose 在 3D 视图中的可视化属性。
打开 tool_pose 可视化。
关闭 tool_pose 可视化。
数据信号输出
输出:
工具坐标补偿:数据类型:Pose
输出内容:机器人工具在机器人法兰坐标系下的 pose
工具坐标:数据类型:Pose
输出内容:机器人工具的 pose
功能演示
将 RobotOperator 算子的 type 属性选择输出Tool坐标,获得当前机器人工具的 pose 和 机器人工具在机器人法兰坐标系下的 pose 。
步骤1:算子准备
添加 SimulatedRobotResource 资源算子至 Resource Group 。
添加 Trigger 、RobotMovement 、RobotOperator 算子至算子图。
步骤2:设置算子参数
设置 SimulatedRobotResource 算子参数:
机器人模型文件 →
→ 选择 robot 文件名 ( example_data/UR5/UR5.rob )工具模型文件 →
→ 选择 tool 文件名 ( example_data/Tool/EliteRobotSucker1.tool.xml )机器人 →
可视
设置 RobotMovement 算子参数:
机器人资源名称 → SimulatedRobotResource
类型 → 移动关节
关节 → 1.5708 0 0 0 0 0
设置 RobotOperator 算子参数:
机器人资源名称 → SimulatedRobotResource
类型 → 输出Tool坐标
工具坐标 →
可视
步骤3:连接算子

步骤4:运行
点击 RVS 运行按钮,触发 Trigger 算子。
运行结果
当算子运行结束后,可以在 RobotOperator 算子属性面板中看到 tool_pose 的参数值。

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

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

计算正运动
将 RobotOperator 算子的 类型 属性选择计算正运动 ,用于计算机器人正运动学。
算子参数
机器人资源名称/robot_resource_name:机器人资源名。选择在Resource Group 中添加的机器人资源。TCP坐标/tcp_pose:设置 tcp_pose 在 3D 视图中的可视化属性。
打开 tcp_pose 可视化。
关闭 tcp_pose 可视化。
设置 tcp_pose 的尺寸。取值范围:[0.001,10]。默认值:0.1。
TCP坐标列表/tcp_pose_list:设置 tcp_pose_list 在 3D 视图中的可视化属性。
打开 tcp_pose_list 可视化。
关闭 tcp_pose_list 可视化。
设置 tcp_pose_list 的尺寸。取值范围:[0.001,10]。默认值:0.1。
数据信号输入输出
输入:
说明
根据需求输入一种输入数据信号即可。
关节:数据类型:JointArray
输入内容:机器人关节弧度值数据
关节列表:数据类型:JointArrayList
输入内容:机器人关节弧度值数据列表
输出:
TCP坐标:数据类型:Pose
输出内容:机器人 tcp 位置 pose
TCP坐标列表:数据类型:PoseList
输出内容:机器人 tcp 位置 pose_list
功能演示
使用 RobotOperator 算子中计算正运动 ,计算机器人正运动学。
步骤1:算子准备
添加 SimulatedRobotResource 资源算子至 Resource Group 。
添加 Trigger 、RobotMovement 、RobotOperator 算子至算子图。
步骤2:设置算子参数
设置 SimulatedRobotResource 算子参数:
机器人模型文件 →
→ 选择 robot 文件名 ( example_data/UR5/UR5.rob )机器人 →
可视
设置 RobotMovement 算子参数:
机器人资源名称 → SimulatedRobotResource
类型 → 移动关节
关节 → 1.5708 0 0 0 0 0
设置 RobotOperator 算子参数:
机器人资源名称 → SimulatedRobotResource
类型 → 计算正运动
TCP坐标 →
可视
步骤3:连接算子

步骤4:运行
点击 RVS 运行按钮,触发 Trigger 算子。
运行结果
如下图所示,在 3D 视图中显示当前加载的机器人,仿真机器人按照 MoveJoint 方式移动关节值“1.5708 0 0 0 0 0” ,鼠标左键双击 3D 视图中的机器人,弹出机器人面板,将机器人基坐标和机器人 TCP 设为 True ,获得当前机器人 tcp_pose ,与当前机器人面板的 TCP 保持一致。

计算逆运动
将 RobotOperator 算子的 类型 属性选择计算逆运动,用于计算机器人逆运动学。
算子参数
机器人资源名称/robot_resource_name:机器人资源名。选择在Resource Group 中添加的机器人资源。机器人TCP/tcp:机器人tcp 值。
数据信号输入输出
输入:
goal_pose:数据类型:Pose
输入内容:目标 pose 数据
参照关节:数据类型:JointArray
输入内容:机器人参考关节弧度值数据
输出:
ik_solution:数据类型:JointArray
输出内容:机器人逆运动学解 joint 数据
功能演示
使用 RobotOperator 算子的中计算逆运动,计算机器人逆运动学。
步骤1:算子准备
添加 SimulatedRobotResource 资源算子至 Resource Group 。
添加 Trigger 、Emit 、RobotMovement(2个) 、RobotOperator 算子至算子图。
步骤2:设置算子参数
设置 SimulatedRobotResource 算子参数:
机器人模型文件 →
→ 选择 robot 文件名 ( example_data/UR5/UR5.rob )机器人 →
可视
设置 RobotMovement 算子参数:
机器人资源名称 → SimulatedRobotResource
类型 → 移动关节
关节 → 1.5708 0 0 0 0 0
设置 RobotOperator 算子参数:
机器人资源名称 → SimulatedRobotResource
类型 → 计算逆运动
设置 Emit 算子参数:
类型 → Pose
坐标 → 0.2 -0.7 0.2 1.5708 0 1.5708
设置 RobotMovement_0 算子参数:
机器人资源名称 → SimulatedRobotResource
类型 → 移动关节
步骤3:连接算子

步骤4:运行
点击 RVS 运行按钮,触发 Trigger 算子。
运行结果
如下图所示,在 3D 视图中显示当前加载的机器人。仿真机器人按照 MoveJoint 方式移动关节值“1.5708 0 0 0 0 0” ,RobotOperator 算子通过 ComputeIK 计算得到 ik_solution ,机器人再次移动到新的位置。

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

计算关节坐标
将 RobotOperator 算子的 类型 属性选择计算关节坐标,用于计算各个旋转轴所在的 pose 位姿。
算子参数
机器人资源名称/robot_resource_name:机器人资源名。选择在Resource Group 中添加的机器人资源。关节坐标列表/joint_pose_list:设置 joint_pose_list 在 3D 视图中的可视化属性。
打开 joint_pose_list 可视化。
关闭 joint_pose_list 可视化。
设置 joint_pose_list 中 各个 pose 的尺寸。取值范围:[0.001,10]。默认值:0.1。
数据信号输入输出
输入
joint:数据类型:JointArray
输入内容:机器人关节弧度值
输出
joint_pose_list:数据类型:PoseList
输出内容:各个旋转轴所在的位姿
功能演示
使用 RobotOperator 算子的中 计算关节坐标 ,计算各个旋转轴所在的 pose 位姿。
步骤1:算子准备
添加 SimulatedRobotResource 资源算子至 Resource Group 。
添加 Trigger 、RobotMovement 、RobotOperator 算子至算子图。
步骤2:设置算子参数
设置 SimulatedRobotResource 算子参数:
机器人模型文件 →
→ 选择 robot 文件名 ( example_data/UR5/UR5.rob )机器人 →
可视
设置 RobotMovement 算子参数:
机器人资源名称 → SimulatedRobotResource
类型 → 移动关节
关节 → 1.5708 0 0 0 0 0
设置 RobotOperator 算子参数:
机器人资源名称 → SimulatedRobotResource
类型 → 计算关节坐标
关节坐标列表 →
可视
步骤3:连接算子

步骤4:运行
点击 RVS 运行按钮,触发 Trigger 算子。
运行结果
如下图所示,在 3D 视图中显示当前加载的机器人。仿真机器人按照 MoveJoint 方式移动关节值“1.5708 0 0 0 0 0” ,RobotOperator 算子通过 ComputeJoinPose 计算得到旋转轴所在的 pose 位姿 。

链接目标
将 RobotOperator 算子的 类型 属性选择链接目标 ,用于给机器人添加工具。
算子参数
机器人资源名称/robot_resource_name:机器人资源名。选择在Resource Group 中添加的机器人资源。物体模型文件/object_filename:机器人工具名。
数据信号输入输出
输入
目标位姿:数据类型:Pose
输入内容:当未输入该值时,工具添加默认位置为机器人 TCP 位置。若输入,则默认位置以 obj_pose 进行平移和旋转。
注解
当输入该值时,需要先打开 SimulatedRobotResource 算子中 robot_update 属性,再次触发算子。
功能演示
使用 RobotOperator 算子的中链接目标 ,在机器人 TCP 处添加工具。
步骤1:算子准备
添加 SimulatedRobotResource 资源算子至 Resource Group 。
添加 Trigger 、Emit 、RobotOperator、RobotMovement 算子至算子图。
步骤2:设置算子参数
设置 SimulatedRobotResource 算子参数:
机器人模型文件 →
→ 选择 robot 文件名 ( example_data/UR5/UR5.rob )机器人 →
可视
设置 RobotOperator 算子参数:
机器人资源名称 → SimulatedRobotResource
类型 → 链接目标
物体模型文件 →
→ 选择 tool 文件名( example_data/Tool/EliteRobotSucker2.obj )
步骤3:连接算子

步骤4:运行
点击 RVS 运行按钮,触发 Trigger 算子。
运行结果
结果如下图所示,在机器人 TCP 处添加了工具。

解除链接
将 RobotOperator 算子的 类型 属性选择解除链接 ,用于删除机器人工具。
算子参数
机器人资源名称/robot_resource_name:机器人资源名。选择在Resource Group 中添加的机器人资源。
功能演示
使用 RobotOperator 算子的中解除链接,删除机器人仿真控制资源中加载的机器人工具。
步骤1:算子准备
添加 SimulatedRobotResource 资源算子至 Resource Group 。
添加 Trigger 、RobotOperator ( 2个 ) 算子至算子图。
步骤2:设置算子参数
设置 SimulatedRobotResource 算子参数:
机器人模型文件 →
→ 选择 robot 文件名 ( example_data/UR5/UR5.rob )机器人 →
可视
设置 RobotOperator 算子参数:
机器人资源名称 → SimulatedRobotResource
类型 → 链接目标
物体模型文件 →
→ 选择 tool 文件名( example_data/Tool/EliteRobotSucker2.obj )
设置 RobotOperator_0 算子参数:
机器人资源名称 → SimulatedRobotResource
类型 → 解除链接
步骤3:连接算子

步骤4:运行
点击 RVS 运行按钮,触发 Trigger 算子。
运行结果
结果如下图所示,已删除添加的机器人工具。添加机器人工具结果请查看本文 AttachObject 章节。

更换末端工具
将 RobotOperator 算子的 类型 属性选择更换末端工具 ,用于更换机器人末端工具。
算子参数
索引/index:工具索引。0:机器人法兰。工具模型文件夹内容放置如下:

tool.xml 内容如下:

数据信号输入输出
输入
索引:数据类型:string
输入内容:索引数值
输出
功能演示
使用 RobotOperator 算子的中更换末端工具 ,更换机器人末端工具。
步骤1:算子准备
添加 SimulatedRobotResource 资源算子至 Resource Group 。
添加 Trigger 、RobotOperator 算子至算子图。
步骤2:设置算子参数
设置 SimulatedRobotResource 算子参数:
自动启动 → 是
机器人模型文件 →
→ 选择 robot 文件名 (example_data/robot_data/Aubo/AUBO-i5/AUBO-i5.rob)工具模型文件 →
→ 选择 工具 文件名(example_data/robot_data/Tool/sucker_pipe.tool.xml)机器人 →
可视
设置 RobotOperator 算子参数:
机器人资源名称 → SimulatedRobotResource
类型 → 更换末端工具
tool_index → 1
步骤3:连接算子

步骤4:运行
点击 RVS 运行按钮,触发 Trigger 算子。
运行结果
结果如下图所示,显示机器人工具。可切换索引更换不同的工具。

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