UR机器人通讯接口总结

UR机器人公司的官网教程给出了UR机器人提供的通讯接口,如下图所示:

  1. Dashboard(29999) 接口是机器人人机界面进程负责维护和执行的一个端口。主要负责接收上位机指令,执行机器人初始化、加载程序、开始和暂停程序运行以及设置用户角色等操作,该接口主要应用在自动启动机器人,无示教器应用等场合。 接口接收上位机发送的Dashboard命令字符串,接收后,返回执行结果字符串。
  2. Primary& Secondary(30001& 30002) 接口由机器人控制进程维护和执行。开机后,机器人一直从这两个端口以10Hz频率对外发送机器人的状态信息。在接收到上位机发送的脚本指令字符串后会立即中断当前执行程序,然后运行接收到的脚本指令。一些具有返回值的脚本指令,其返回值并不会通过这两个端口返回,因为脚本的执行是在机器人控制进程中,其返回值只传递给该进程中的变量。
  3. Realtime (30003) 接口始终以125Hz的频率往外发送机器人的详细状态信息(位置,速度,关节电流,力矩等),同时也可以接收上位机发送的脚本指令并立即执行。
  4. RTDE (30004) 接口需由上位机进行配置,根据配置以125Hz的频率往外发送机器人的详细状态信息,机器人也只会接收配置的输入信息(IO,寄存器等)。与Realtime接口相比,RTDE接口不能接收脚本指令,只能接收配置好的输入信息;但是RTDE接口不会中断当前程序的执行,而且由于输入输出信息都是经过配置,传输的信息没有不需要的数据,可以按需启动和停止,能够大大降低对网络带宽的占用。
    关于RTDE官方也给出了一个例程,但是似乎其中的连接实现是Socket实现的。(具体也没细看)
  5. Socket 通讯是指机器人通过Socket相关脚本指令与上位机进行通讯的方式。
    Socket接收的数据解析点击这篇博客

    参考上述博客,本文提供了显示接收内容的Python代码:(需要其中特定内容可从字典中直接取出)
import socket
import struct# import util
# import rtde
# import math
# import time
# import numpy as np
HOST = "xxx.xxx.xxx.xxx"
PORT = 30003dic = {'MessageSize': 'i','Time': 'd','q target': '6d','qd target': '6d','qdd target': '6d','I target': '6d','M target': '6d','q actual': '6d','qd actual': '6d','I actual': '6d','I control': '6d','Tool vector actual': '6d','TCP speed actual': '6d','TCP force': '6d','Tool vector target': '6d','TCP speed target': '6d','Digital input bits': 'd','Motor temperatures': '6d','Controller Timer': 'd','Test value': 'd','Robot Mode': 'd','Joint Modes': '6d','Safety Mode': 'd','empty1': '6d','Tool Accelerometer values': '3d','empty2': '6d','Speed scaling': 'd','Linear momentum norm': 'd','SoftwareOnly': 'd','SoftwareOnly2': 'd','V main': 'd','V robot': 'd','I robot': 'd','V actual': '6d','Digital outputs': 'd','Program state': 'd','Elbow position': '3d', 'Elbow velocity': '3d'}
tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp_socket.connect((HOST, PORT))
data = tcp_socket.recv(1108)names = []
ii = range(len(dic))
for key, i in zip(dic, ii):fmtsize = struct.calcsize(dic[key])data1, data = data[0:fmtsize], data[fmtsize:]fmt = "!"+dic[key]names.append(struct.unpack(fmt, data1))dic[key] = dic[key], struct.unpack(fmt, data1)
print(dic)
  1. XML-RPC通讯是一种通过XML格式传输结构化数据的协议,其优点在于传输的数据是结构化的,无需用户自己进行序列化和解析操作,例如从上位机传输float数据,机器人接收到后就已经是float类型了。目前XML-RPC库已支持多种语言,例如C++和Python。
  2. Modbus-TCP通讯既可以作为客户端也可以作为服务器。UR机器人作为客户端,只需配置好网络,然后使用相应的脚本即可。UR机器人作为服务器,可以提供机器人当前位置,速度等状态信息,也提供通用寄存器可用于互相通讯(例如相机将数据传输给机器人)。

UR机器人通信接口总结相关推荐

  1. 如何使用UR机器人模拟软件URsim

    如何使用UR机器人模拟软件URsim 机器人软件适用版本:Polyscope v1.3及以上 适用机器人:UR3.UR5.UR10 由于优傲机器人的系统是基于Linux核心开发的,模拟软体URsim也 ...

  2. UR机器人装箱姿态_关于人机协作机器人UR的介绍

    原标题:关于人机协作机器人UR的介绍 在这几年,各大工业机器人制造商,目前都热衷与人机协作,ABB的"玉米",FANUC的"绿手臂",KUKA的"伊娃 ...

  3. UR机器人双臂开发实例

    UR机器人双臂开发实例 前言:UR系列机器人已经运用一段时间了,随着应用过程中发现并解决的问题越来越多,脑袋已经不够记录了,因此撰写系列博文进行记录,本篇博文记录核心内容,基础内容等我有时间再详细描述 ...

  4. ROS与优傲机器人UR机器人通讯

    ROS简介 1.1什么是ROS ROS(Robot Operating System,下文简称"ROS")是一个适用于机器人的开源的元操作系统.它提供了操作系统应有的服务,包括硬件 ...

  5. UR机器人通信端口和协议

    1 概述 UR机器人作为目前使用广泛的协作机器人,其开放了基于TCP/IP的远程控制功能,提供了多个多类型的端口,用于工业总线控制,或者用户自行编程控制,以下记录整理此方面的信息. 2 UR机器人通信 ...

  6. UR机器人(一):坐标系及位姿表示方法

    一.UR机器人坐标系 默认情况下UR机器人的基坐标系和TCP如下图所示: 注意这里的TCP位置和坐标系都是在默认TCP配置的情况下,默认的TCP配置如下图所示: 如果用户想要自己设置TCP的位置和坐标 ...

  7. UR机器人装箱姿态_UR机器人汽车座椅螺丝拧紧--优傲机器人

    工作流程: 1.机器人握持螺栓拧紧***对预拧好的螺栓进行*终拧紧: 2.利用力控模式,IO启动螺丝***,自动完成螺帽找准,拧紧和完成信号确认: 3.对于未正确拧紧的螺栓,进行报错和记录. 技术描述 ...

  8. UR机器人TCP通讯示例

    本文介绍UR机器人通讯示例,采用的是UR5机器人,实现的功能是从电脑端给机器人发送坐标,让机器人运动到目标位置.已经经过实操检验.本文截图是在虚拟机上,与实际界面显示略有不同,仔细看图片和文字. 1. ...

  9. UR机器人返回信息格式解析

    1 概述 UR机器人提供了多种端口,用于控制和读取机器人信息,本人整理了相关信息,见文章<UR机器人通信端口和协议>. 本人使用了30003端口来向机器人发送URScript脚本控制命令, ...

最新文章

  1. Virtualbox设置虚拟机访问外网以及主机访问虚拟机
  2. C++ 性能剖析 (四):Inheritance 对性能的影响
  3. nebula的nGQL语句可以为属性添加类似list的数字类型吗
  4. mysqldump 和 sql命令导入sql文件
  5. jQuery动态设置输出窗口的高度
  6. ios 获取沙盒文件名_获取IOS各种沙盒路径的方法
  7. java svn 版本号_eclipse中的Java文件自动根据svn版本号生成注释
  8. springboot+jpa+mysql+redis+swagger整合步骤
  9. IBM T410 打开AHCI模式
  10. 如何在Scala中使用条件表达式
  11. Java常见概念(POJO\javabean\DTO\PO\BO\VO)浅析
  12. Async.js——Node世界中被依赖最多的库No.3
  13. 两台计算机小局域网,两台电脑连接局域网方法
  14. 登录失败,用户名或密码错误
  15. 微信小程序:小程序开发者注册步骤
  16. 如何将收藏夹栏显示在edge浏览器上方
  17. 手游平台搭建技术对接文档
  18. 自然语言推理入门:ESIM
  19. 互联网产品经理常用工具有哪些
  20. 【记录】iOS网络缓存清理

热门文章

  1. 网易云评论 爬虫 java_网易云音乐资源爬取(登录+评论)
  2. 用python放烟花咯
  3. 【老九学堂】【C++】数组与指针
  4. FPGA的PS还有什么PL是什么意思
  5. html怎么能调用微信语音,微信录音-微信录音功能新用法!【微信录音】怎么用...
  6. [BZOJ4372][烁烁的游戏][动态树分治+线段树+LCA]
  7. 量子计算 3 量子门与测量
  8. “您希望继续执行吗? [Y/n] y 中止。”
  9. 安卓巴士总结了近百个Android优秀开源项
  10. java中paint_Java中paint怎么用