UR20机械臂学习笔记


UR20机械臂学习笔记

  • UR20机械臂学习笔记
  • 一.使用UR系列机器人第三方库
  • 二.UR机器人的初始化
    • 1.连接UR机器人
    • 2.设置机器人末端法兰(tcp)
    • 3.设置机器人末端负载
  • 三.机器人运动程序
    • 1.机器人移动
      • (1) MoveJ
      • (2) MoveL
      • (3) MoveP
      • (4) MoveC
      • (5) Translate
      • (6) Stop
    • 2.获取机器人状态
      • (1) Getj
      • (2) Getl
      • (3) is_running
      • (4) is_program_running
      • (5) get_force
      • (6) get_tcp_force
    • 3.控制IO口输入输出
      • (1) 模拟IO口输入
      • (2) 模拟IO口输出
      • (3) 数字IO口输入
      • (4) 数字IO口输出

一.使用UR系列机器人第三方库

安装第三方库

pip install urx

导入第三方库

import urx

二.UR机器人的初始化

1.连接UR机器人

调用Robot方法,该函数有两个参数,host为UR20机器人的ip地址,use_rt为是否对机器人继续实时监控。当设置为True时,可以时刻读取机械臂的运行状态,当设置为False时,无法返回机械臂的运行状态,返回值为None。

ur20 = urx.Robot(host="192.168.0.215", use_rt=True)

ip地址获取方法:

1.已知机械臂ip地址的情况:

将ip地址直接赋值给host。

2.未知机械臂ip地址的情况:

可使用UR系列机械臂配套的示教器,在设置中查看该机械臂的ip地址。

2.设置机器人末端法兰(tcp)

设置机器人法兰到刀尖的转换,其中tcp输入参数为坐标值,在UR20机器人中,坐标值为p[x,y,z,rx,ry,rz],其中包括坐标以及角度。

ur20.set_tcp(tcp=(0, 0, 0.1, 0, 0, 0))

3.设置机器人末端负载

weight参数为以千克为单位设置有效载荷,cog参数为cog 是一个 x、y、z 矢量,如果未指定 cog,则使用刀具中心点

ur20.set_payload(weight=2, cog=(0, 0, 0.1))

三.机器人运动程序

1.机器人移动

(1) MoveJ

joints参数为机器人的坐标,依然是p[x,y,z,rx,ry,rz]格式的数据,acc参数为加速度,vel参数为速度。

ur20.movej(joints=(1, 2, 3, 4, 5, 6), acc=a, vel=v)

涉及 MoveJ 的交融 MoveJ 交融会在关节空间生成一条平滑的曲线。这适用于从 MoveJ 到 MoveJ、MoveJ 到 MoveL 和 MoveL到 MoveJ 的交融。与没有交融的移动相比,交融会产生更加平滑和更快的轨迹( (see Figure 15.6)) 。如果使用速度和加速度来指定速度曲线,则在交融过程中,交融保持在交融半径内。如果使用时间而非速度和加速度来指定两个运动的速度曲线,则交融轨迹将遵循原始 MoveJ 的轨迹。如果两个运动的时间受限,则使用交融不会节约时间。

(2) MoveL

tpose参数为机器人的坐标,依然是p[x,y,z,rx,ry,rz]格式的数据,acc参数为加速度,vel参数为速度。

ur20.movel(tpose=(1, 2, 3, 4, 5, 6), acc=a, vel=v)

MoveL中的交融在MoveL中交融时,交融的位置以恒定速度遵循圆弧路径。方向与两条轨迹之间的平滑插值交融。机器人可以在遵循圆弧路径之前在轨迹上减速以避免非常高的加速度( 例如,如果两个轨迹之间的角度接近 180 度) 。

(3) MoveP

tpose参数为机器人的坐标,依然是p[x,y,z,rx,ry,rz]格式的数据,acc参数为加速度,vel参数为速度。

ur20.movep(tpose=(1, 2, 3, 4, 5, 6), acc=a, vel=v)

MoveP 中的交融 在 MoveP 中交融时,交融的位置以恒定速度遵循圆弧路径。方向与两条轨迹之间的平滑插值交融。您可以交融 MoveJ 或 MoveL 到 MoveP 内。在这种情况下,机器人使用MoveP 的圆弧交融,并插入两个运动的速度。您不可以交融MoveP 到 MoveJ 或 MoveL 内。相反,MoveP 的最后一个路点被视为没有交融的停止点。如果两条轨迹处于接近 180 度( 反向)的角度,则无法执行交融,因为它会创建一个半径非常小的圆弧,机器人无法以恒定速度遵循。这会导致程序中的运行时异常,这种情况可通过调整路点来纠正,以形成一个不太尖锐的角。

(4) MoveC

pose_via和pose_to参数为机器人的坐标,依然是p[x,y,z,rx,ry,rz]格式的数据,代表机器人的起始未知和终止未知,机器人内部自动计算运动半径。acc参数为加速度,vel参数为速度。

ur20.movec(pose_via=(1,2,3,4,5,6), pose_to=(2,3,4,5,6,7), acc=a, vel=v)

MoveCircle 命令可以通过创建一个半圆来创建圆周移动。您只能通过 MoveP 命令添加 CircleMove。

(5) Translate

在基坐标中移动工具,保持方向,vect为向量坐标x,y,z。输入后会与机器人当前坐标相加,得到新的坐标,从而控制机器人运动。acc参数为加速度,vel参数为速度。

ur20.translate(vect=(0.1, 0, 0), acc=a, vel=v)

(6) Stop

添加一个 stopj() 或一个 stopl(),以缓慢使机器人手臂减速。运动方式与上述movej和movel的运动方式相同,acc参数为加速度。

ur20.stopj(acc=a)

2.获取机器人状态

(1) Getj

获取关节位置

currt_pose = ur20.getj()

(2) Getl

返回当前从 tcp 到当前 csys 的转换

translate = ur20.getl()

(3) is_running

如果机器人正在运行,则返回 True(不一定要运行程序,也可能是空闲状态)

UR_State = ur20.is_running()

(4) is_program_running

检查程序是否正在运行。 警告!!!: 发送程序后,机器人可能需要 10 分之几秒才能进入运行状态。
秒后,机器人才会进入运行状态

UR_State = ur20.is_program_running()

(5) get_force

get_tcp_force 返回的力向量长度,如果 wait==True 则等待下一个数据包后返回

force = ur20.get_force()

(6) get_tcp_force

返回在 TCP 中测量的力

force = ur20.get_force()

3.控制IO口输入输出

(1) 模拟IO口输入

nb参数为引脚口。

ur20.get_analog_in(nb)

(2) 模拟IO口输出

output参数为引脚口,val为输出值,为模拟信号。

ur20.set_analog_out(output, val)

(3) 数字IO口输入

nb参数为引脚口。

ur20.get_digital_in(nb)

(4) 数字IO口输出

output参数为引脚口,val为输出值,高电平或低电平信号。

ur20.set_digital_out(output, val)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/649187.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最大流解决二分图匹配问题

文章目录 零、前言一、二分图匹配转化为网络流模型1.1建模步骤1.2整数值最大流和二分图匹配的关系1.3代码实现 二、OJ练习P2756 飞行员配对方案问题P3254 圆桌问题 零、前言 阅读本文前,需具备以下知识: 二分图及染色法判定-CSDN博客 二分图最大匹配—…

PHP报错信息

PHP 推荐链接Thinkphp报错:SplFileInfo::getSize(): stat failed for 推荐链接 链接目录 Thinkphp报错:SplFileInfo::getSize(): stat failed for 先执行 move() 移动文件后,导致文件移除之后又执行了:$size $file->getSize…

【JavaSE】P114~P147 ArrayList集合,Scanner类,Random,字符串及相关常用方法,静态static

目录 1 ArrayList 集合装箱,拆箱及包装类 2 API 概述和使用Scanner类匿名对象Random生成随机数 3 字符串字符串的31种构造方法字符串的常量池equals和 字符串的获取相关方法字符串的截取方法字符串的转换相关方法字符串的分割方法 4 静态static关键字静态static的内…

对话泛能网程路:能源产业互联网,行至中程

泛能网的能源产业互联网的标杆价值还不仅于此。其在产业互联之外,也更大的特殊性在于其也更在成为整个碳市场的“辅助运营商”,包括电力、碳等一系列被泛能网帮助企业改造和沉淀的要素资产,都在构成着碳交易市场的未来底层。 这恰是产业互联…

PCL-IO输入输入模块

IO输入输入模块 一、概述二、点云数据格式1. PCD 格式2. PLY 格式3. OBJ 格式4. STL 格式5. OFF 格式 三、读取3D文件1. API 总览2. 示例 四、保存3D文件1. API 总览2. 示例 一、概述 PCL 库提供了一个模块用来对3D数据进行读写操作,这个库提供了一个模块&#xff…

2007-2022年全国货币供应量M2、失业率、CPI、第三方互联网支付、出口、人口等宏观经济指标数据(年度、季度)

2007-2022年全国货币供应量M2、失业率、CPI、第三方互联网支付、出口、人口等宏观经济指标数据(年度、季度) 1、时间:2007-2022年(季度、年度) 2、指标: 季度指标:时间、GDP不变价累计值(亿元…

python ffmpeg将mp4文件实时转码为ts,并指定pid等信息,输出到udp

要将MP4文件实时转码为TS格式,并将PID等信息指定为UDP输出,可以使用subprocess模块和ffmpeg命令行工具来实现。以下是一个示例代码,用于实时转码并将输出发送到UDP服务器: import subprocess import timeinput_file "input.…

性能优化-高通的Hexagon DSP和NPU

原文来自【 Qualcomm’s Hexagon DSP, and now, NPU 】 本文主要介绍Qualcomm Hexagon DSP和NPU,这些为处理简单大量运算而设计的硬件。 🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:高性能&#xf…

多臂老虎机理论系列

[多臂老虎机理论](Lower bounds for non-adaptive exploration) 多臂老虎机之Lower bounds 定理 2.12: 定理的意义在于,对于任何不调整探索策略的算法,存在至少一个问题实例,使得随着时间的推移,该算法的预期遗憾将…

Linux常见的管理命令

1. whoami 作用: 显示出当前有效的用户名称,Linux是多用户多任务 语法:whoami(选项) 选项: --help:在线帮助 --version:显示版本信息和退出 场景使用: 1. 当用户想要查看当前登录系统的用户…

14.case条件测试语句(5)

case语句是在多个范围内匹 配数据,若匹配成功则执行相关命令并结束整个条件测试;如果数据不在所列出的范围内, 则会去执行星号(*)中所定义的默认命令(C语言中的default语句) 提示用户输入一个字…

爬取樱花动漫名侦探柯南最新剧场版ts格式

import os import requests import zipfile from tqdm import tqdm import tkinter as tkfilename 名侦探柯南\\ if not os.path.exists(filename):os.mkdir(filename) # https://vip.ffzy-online6.com/20231129/22304_740e70d0/2000k/hls/cedd2dc1ecb000001.ts # https://vip…

硬件基础:存储器

之前对存储器做过简单的汇总,参考这篇文章: 计算机/微机存储技术_路溪非溪的博客-CSDN博客 这次,我们从数字集成电路的角度再次补充学习一下存储器的知识。 定义和分类 从这里面我们能知道一些关键词。 存储介质主要是半导体器件和磁性材料。…

Java技术栈高级攻略之专栏简介

Java是一种广泛应用于企业级应用开发的编程语言,具备强大的生态系统和丰富的工具支持。想要在Java技术栈中取得更高的成就,你需要不断深入学习和实践。本专栏为你提供很多高级攻略,帮助你更好地掌握Java技术栈。 一、多线程编程 多线程编程是…

亿发中小型企业erp软件智能化赋能,专业助力广东制造行业生产流程管理

在当前经济全球化的环境下,广东省的中小型制造业企业正面临多方面的严峻挑战。包括产品质量的维护、分销渠道的稳定、生产成本降低以及减轻生产过程中的资源消耗等难题。目前,随着信息技术的迅速发展,一些先进的IT工具,比如企业资…

【owt】webrtc的随机数生成

SSRC 是32位的随机值 在 WebRTC 中,确保 RTP(Real-time Transport Protocol)的 SSRC(Synchronization Source Identifier)不冲突是非常重要的。SSRC 是一个 32 位的标识符,用于标识 RTP 流中的同步源。理论上,由于 SSRC 是随机生成的,存在一定的冲突概率。但是,由于 3…

地址解析协议

地址解析协议ARP(Address Resolution Protocol)是用来将IP地址解析为MAC地址的协议 ARP数据包格式(直接封装在ethernet_II上面) 1.Hardware Type:表示硬件地址类型,一般为以太网; 2.Protocol Type:表示三层协议地址类型,一般为IP; 3.Hardware Length和Protocol Leng…

STM32实现软件IIC协议操作OLED显示屏(1)

时间记录:2024/1/25 一、IIC协议介绍 (1)协议介绍 IIC(又称I2C,Inter-Integrated Circuit),即集成电路总线,是一种两线式串行总线,由PHILIPS公司开发,用…

OSS上传下载乱码问题

配置headers: "Content-Disposition": attachment; filename*UTF-8${encodeURIComponent(file.file.name)},

chatGPT辅助写硕士毕业论文

一、写作顺序 1.标题、研究问题、研究方法 2.文献综述(占比1/5-1/6) 3.论证章节 4.结论、不足、启示 5.处理图表、参考文献的格式 6.绪论或引言 7.摘要、关键词 8.查重、装订 http://【硕士毕业论文写不下去,多亏听了张博士的论文写…