UR机器人通信接口总结
UR机器人通讯接口总结
UR机器人公司的官网教程给出了UR机器人提供的通讯接口,如下图所示:
- Dashboard(29999) 接口是机器人人机界面进程负责维护和执行的一个端口。主要负责接收上位机指令,执行机器人初始化、加载程序、开始和暂停程序运行以及设置用户角色等操作,该接口主要应用在自动启动机器人,无示教器应用等场合。 接口接收上位机发送的Dashboard命令字符串,接收后,返回执行结果字符串。
- Primary& Secondary(30001& 30002) 接口由机器人控制进程维护和执行。开机后,机器人一直从这两个端口以10Hz频率对外发送机器人的状态信息。在接收到上位机发送的脚本指令字符串后会立即中断当前执行程序,然后运行接收到的脚本指令。一些具有返回值的脚本指令,其返回值并不会通过这两个端口返回,因为脚本的执行是在机器人控制进程中,其返回值只传递给该进程中的变量。
- Realtime (30003) 接口始终以125Hz的频率往外发送机器人的详细状态信息(位置,速度,关节电流,力矩等),同时也可以接收上位机发送的脚本指令并立即执行。
- RTDE (30004) 接口需由上位机进行配置,根据配置以125Hz的频率往外发送机器人的详细状态信息,机器人也只会接收配置的输入信息(IO,寄存器等)。与Realtime接口相比,RTDE接口不能接收脚本指令,只能接收配置好的输入信息;但是RTDE接口不会中断当前程序的执行,而且由于输入输出信息都是经过配置,传输的信息没有不需要的数据,可以按需启动和停止,能够大大降低对网络带宽的占用。
关于RTDE官方也给出了一个例程,但是似乎其中的连接实现是Socket实现的。(具体也没细看) - 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)
- XML-RPC通讯是一种通过XML格式传输结构化数据的协议,其优点在于传输的数据是结构化的,无需用户自己进行序列化和解析操作,例如从上位机传输float数据,机器人接收到后就已经是float类型了。目前XML-RPC库已支持多种语言,例如C++和Python。
- Modbus-TCP通讯既可以作为客户端也可以作为服务器。UR机器人作为客户端,只需配置好网络,然后使用相应的脚本即可。UR机器人作为服务器,可以提供机器人当前位置,速度等状态信息,也提供通用寄存器可用于互相通讯(例如相机将数据传输给机器人)。
UR机器人通信接口总结相关推荐
- 如何使用UR机器人模拟软件URsim
如何使用UR机器人模拟软件URsim 机器人软件适用版本:Polyscope v1.3及以上 适用机器人:UR3.UR5.UR10 由于优傲机器人的系统是基于Linux核心开发的,模拟软体URsim也 ...
- UR机器人装箱姿态_关于人机协作机器人UR的介绍
原标题:关于人机协作机器人UR的介绍 在这几年,各大工业机器人制造商,目前都热衷与人机协作,ABB的"玉米",FANUC的"绿手臂",KUKA的"伊娃 ...
- UR机器人双臂开发实例
UR机器人双臂开发实例 前言:UR系列机器人已经运用一段时间了,随着应用过程中发现并解决的问题越来越多,脑袋已经不够记录了,因此撰写系列博文进行记录,本篇博文记录核心内容,基础内容等我有时间再详细描述 ...
- ROS与优傲机器人UR机器人通讯
ROS简介 1.1什么是ROS ROS(Robot Operating System,下文简称"ROS")是一个适用于机器人的开源的元操作系统.它提供了操作系统应有的服务,包括硬件 ...
- UR机器人通信端口和协议
1 概述 UR机器人作为目前使用广泛的协作机器人,其开放了基于TCP/IP的远程控制功能,提供了多个多类型的端口,用于工业总线控制,或者用户自行编程控制,以下记录整理此方面的信息. 2 UR机器人通信 ...
- UR机器人(一):坐标系及位姿表示方法
一.UR机器人坐标系 默认情况下UR机器人的基坐标系和TCP如下图所示: 注意这里的TCP位置和坐标系都是在默认TCP配置的情况下,默认的TCP配置如下图所示: 如果用户想要自己设置TCP的位置和坐标 ...
- UR机器人装箱姿态_UR机器人汽车座椅螺丝拧紧--优傲机器人
工作流程: 1.机器人握持螺栓拧紧***对预拧好的螺栓进行*终拧紧: 2.利用力控模式,IO启动螺丝***,自动完成螺帽找准,拧紧和完成信号确认: 3.对于未正确拧紧的螺栓,进行报错和记录. 技术描述 ...
- UR机器人TCP通讯示例
本文介绍UR机器人通讯示例,采用的是UR5机器人,实现的功能是从电脑端给机器人发送坐标,让机器人运动到目标位置.已经经过实操检验.本文截图是在虚拟机上,与实际界面显示略有不同,仔细看图片和文字. 1. ...
- UR机器人返回信息格式解析
1 概述 UR机器人提供了多种端口,用于控制和读取机器人信息,本人整理了相关信息,见文章<UR机器人通信端口和协议>. 本人使用了30003端口来向机器人发送URScript脚本控制命令, ...
最新文章
- Virtualbox设置虚拟机访问外网以及主机访问虚拟机
- C++ 性能剖析 (四):Inheritance 对性能的影响
- nebula的nGQL语句可以为属性添加类似list的数字类型吗
- mysqldump 和 sql命令导入sql文件
- jQuery动态设置输出窗口的高度
- ios 获取沙盒文件名_获取IOS各种沙盒路径的方法
- java svn 版本号_eclipse中的Java文件自动根据svn版本号生成注释
- springboot+jpa+mysql+redis+swagger整合步骤
- IBM T410 打开AHCI模式
- 如何在Scala中使用条件表达式
- Java常见概念(POJO\javabean\DTO\PO\BO\VO)浅析
- Async.js——Node世界中被依赖最多的库No.3
- 两台计算机小局域网,两台电脑连接局域网方法
- 登录失败,用户名或密码错误
- 微信小程序:小程序开发者注册步骤
- 如何将收藏夹栏显示在edge浏览器上方
- 手游平台搭建技术对接文档
- 自然语言推理入门:ESIM
- 互联网产品经理常用工具有哪些
- 【记录】iOS网络缓存清理
热门文章
- 网易云评论 爬虫 java_网易云音乐资源爬取(登录+评论)
- 用python放烟花咯
- 【老九学堂】【C++】数组与指针
- FPGA的PS还有什么PL是什么意思
- html怎么能调用微信语音,微信录音-微信录音功能新用法!【微信录音】怎么用...
- [BZOJ4372][烁烁的游戏][动态树分治+线段树+LCA]
- 量子计算 3 量子门与测量
- “您希望继续执行吗? [Y/n] y 中止。”
- 安卓巴士总结了近百个Android优秀开源项
- java中paint_Java中paint怎么用