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
时,显示机器人法兰。