一、RTDE的基本概念
RTDE接口提供了一种通过标准TCP/IP将外部应用与UR控制器同步的方法,而不会破坏UR控制器的任何实时属性。它非常适合用于机器人I/O和绘制机器人状态(如机器人轨迹)等任务。默认情况下,RTDE接口在UR控制器运行时可用。
通过 RTDE,外部设备(如计算机)可以实时向 UR 机器人发送各种控制指令,比如运动指令(控制机器人关节运动速度、末端执行器在笛卡尔空间的运动速度等)、设置机器人的工作参数(如设置工具中心点 TCP 的位置和姿态等)。同时,机器人也能实时将自身的各种状态信息(如关节角度、关节速度、末端执行器的位置和姿态、作用在末端执行器上的力等)反馈给外部设备。这种实时的数据交换使得对机器人的控制更加精确,可以实现复杂而精细的操作任务,例如在精密装配任务中,能够准确控制机器人的动作以完成微小零件的组装。
获取传感器数据:
API Reference --- ur_rtde 1.6.0 documentationhttps://sdurobotics.gitlab.io/ur_rtde/api/api.html#_CPPv4N7ur_rtde20RTDEReceiveInterface16getActualTCPPoseEv控制和接收数据类
import rtde_control
import rtde_receive
rtde_c = rtde_control.RTDEControlInterface("192.168.1.162")
rtde_r = rtde_receive.RTDEReceiveInterface("192.168.1.162")
配置环境
验证安装
安装完成后,可以写一个简单的脚本来测试RTDE库是否正常工作。
import rtde.rtde as rtde
import rtde.rtde_config as rtde_config
# 机器人的IP地址
ROBOT_HOST = '192.168.0.1'
# 与RTDE使用的端口号
ROBOT_PORT = 30004
# 创建一个RTDE对象
con = rtde.RTDE(ROBOT_HOST, ROBOT_PORT)
# 连接到机器人
con.connect()
# 检查连接是否成功
if not con.isConnected():
print("无法连接到机器人")
exit()
# 获取并打印一些信息,例如机器人的当前状态
print("机器人当前状态:", con.receive())
# 断开连接
con.disconnect()
rtde_c = rtde_control.RTDEControlInterface("192.168.100.2")
rtde_r = rtde_receive.RTDEReceiveInterface("192.168.100.2")
TCP_Pose = rtde_r.getActualTCPPose()
Actual_Q = rtde_r.getActualQ()
rtde_c.stopScript()