睿尔曼超轻量仿人机械臂之六轴机器人运动认知与实操

news2024/9/23 17:14:09

        机械臂运动分为关节空间运动和笛卡尔空间运动2种方式,2种运动方式分别对应机械臂运动学算法的正解和逆解,在不同的应用场景下可以使用不同的运动方式。

两种运动方式之间的不同可总结为以下几点:

①表示方式不同。关节空间运动发给机械臂的是机械臂各个关节的角度,从而控制机械臂运动到某个位置;笛卡尔空间运动发给机械臂的是在笛卡尔空间种机械臂末端的位置和姿态(简称为位姿),目前大多数机械臂用来表达位姿使用(x,y,z,rx,ry,rz),其中姿态表达为欧拉角;

②控制方式不同。在关节空间中,通过控制各个关节的角度实现控制机械臂运动;在笛卡尔空间中,通过控制机械臂末端的位置和姿态实现控制机械臂运动;

③运动规划不同。关节空间运动规划是对每个关节进行规划,计算每个关节的插补点;笛卡尔空间运动规划是在笛卡尔空间规划末端轨迹,然后每个插补点再去逆解,计算对应的每个关节的角度。

⑤控制自由度不同。使用笛卡尔空间运动时,机械臂可以由N个自由度组成,只需确保机械臂的末端到达所发位姿即可;关节空间运动时,需要根据机械臂的实际自由度发送相对应数量的关节角度;

 睿尔曼六轴机械臂关节运动可使用机械臂示教器、JSON协议、API等多种方式进行控制。

1.1示教器关节空间运动控制

        登录示教器进入首页,可在WEB示教器示教界面通过长按各个关节的正负按钮,可实现对单个关节进行控制;

①在位姿编辑界面可通过拖动仿真机械臂可找到红色虚体机械臂通过长按红色虚体机械臂可将虚体机械臂摆放为随机姿态。

②将红色虚体机械臂拖动到位之后,在位姿编辑界面处,长按下方“应用”按钮可控制真实机械臂运动至红色虚拟机械臂位置处。单击“还原按钮”可使红色虚拟机械臂复位至实体仿真机械臂,此处“应用”按钮运行方法为关节空间运动,即MOVEJ;

1.2. JSON协议关节空间运动控制

功能描述

MoveJ:关节运动

参数说明

movej关节运动

joint目标关节角度,精度0.001°

v速度百分比例系数,0~100

r交融半径,精度0.001m,暂不支持交融,默认0

命令格式

六自由度:{s:s,s:[i,i,i,i,i,i],s:i,s:i} ,七自由度:{s:s,s:[i,i,i,i,i,i,i],s:i,s:i}

示例

六自由度:

{"command":"movej","joint":[10100,200,20300,30400,500,20600],"v":50,"r":0}

七自由度:

{"command":"movej","joint":[10100,200,20300,30400,500,20600,20600],"v":50,"r":0}

说明:关节运动,六自由度关节角度[10.1°,0.2°,20.3°,30.4°,0.5°,20.6°],七自由度关节角度[10.1°,0.2°,20.3°,30.4°,0.5°,20.6°,20.6°],速度系数50%,交融半径:0

返回值

格式:{s:s,s:b,s:i},true-到达目标位置,false-规划失败;0:机械臂运动轨迹到位

{"state":"current_trajectory_state","trajectory_state":true,"device":0}

上面是机械臂JSON协议文档手册中关于MOVEJ运动的指令,如仅需发送一条JSON指令,那么就需要使用“TCP测试工具”(此工具可自行下载或联系厂家工作工作人员索取)进行使用,下面是使用“TCP测试工具”发送指令的详细步骤(进行此操作前提为上位机通过网线连接至机械臂并可通信):

①打开“TCP测试工具”(以下内容使用“工具”简称),进行连接机械臂TCP服务端操作。打开软件,点击软件左上方创建连接。此时会弹出设置参数窗口,分别对连接类型、目标IP、目标端口、本机端口进行设置,具体设置参考下图。

②创建连接成功之后会进入操作界面,此时需首先点击连接按钮,连接成功之后即可进行指令的发送。

③通过上一步骤连接至机械臂的服务器之后,即可进行指令的发送。此时我们可以发送本小节开头的MOVEJ运动指令,在发送指令之前需确保机械臂附近没有可妨碍机械臂运动的障碍物,指令如下所示:

{"command":"movej","joint":[0,0,0,0,0,0],"v":20,"r":0}

上述指令含义为机械臂各关节运行至零位,运行速度为百分之20,交融半径为0。

④将指令复制粘贴至软件发送区,并点击“发送”按钮。此时机械臂开始运动,运动结束后接收区将收到以下返回值。

{"device":0,"state":"current_trajectory_state","trajectory_state":true}

2.2 六轴机械臂笛卡尔运动规划

笛卡尔空间运动在机械臂中的运动指令有三种,分别是MOVEL、MOVEC、MOVEJ_P;

  • MOVEL指令:在保证最终路点位置的同时,保证两点之间轨迹为直线运动。
  • MOVEC指令:用来执行圆弧或圆形轨迹,只能添加两个路点(中间点和终点)。
  • MOVEJ_P指令:只保证最终路点位置,不对中间轨迹进行约束,但发送给机械臂的是机械臂末端在坐标系中的位姿(发送的值不同于MOVEJ,MOVEJ发的是各关节角度)。

MOVEJ_P的运动轨迹

MOVEL的运动轨迹

MOVEC的运动轨迹

睿尔曼六轴机械臂笛卡尔运动可使用机械臂示教器、JSON协议、API等多种方式进行控制,此处需要注意机械臂的笛卡尔空间运动中,有奇异区域的概念,如果将奇异区域中的点位发送给机械臂,那么机械臂将不会运动,切会返回“不可达”的信息;

进行笛卡尔运动之前需先给机械臂发送MOVEJ指令使机械臂先从零位姿态运动至非奇异区域,如下图所示姿态

{"command":"movej","joint":[0,0,90000,0,90000,0],"v":20,"r":0}

2.2.1示教器笛卡尔空间运动控制

在示教器的首页通过示教界面,长按“位置控制”和“姿态控制”两个区域内的按钮,此时机械臂的运行速度不宜过快,建议设置百分之20。

2.2.2 JSON协议笛卡尔空间运动控制

MOVEL:直线运动

功能描述

MoveL:直线运动

参数说明

movel:直线运动

pose目标位姿,位置精度:0.001mm,姿态精度:0.001rad

v速度百分比例系数,0~100

r交融半径,精度0.001m,暂不支持交融,默认0

命令格式

{s:s,s:[i,i,i,i,i,i],s:i,s:i}

示例

{"command":"movel","pose":[100000,200000,30000,400,500,600],"v":50,"r":0}

说明:直线运动,

目标位置:x0.1my:0.2mz0.03m

目标姿态:rx:0.4radry:0.5radrz:0.6rad

速度系数50%

不交融

返回值

格式:{s:s,s:b,s:i},true-到达目标位置,false-规划失败;0:机械臂运动轨迹到位

{"state":"current_trajectory_state","trajectory_state":true,"device":0}

备注:

MOVL指令也适用于目标位置不变,姿态变化

MoveJ_P:关节空间规划到目标位姿

功能描述

MoveJ_P:关节空间规划到目标位姿

参数说明

movej_p关节空间规划到目标位姿

pose:目标位姿,位置精度:0.001mm,姿态精度:0.001rad

v:速度百分比例系数,0~100

r:交融半径,精度0.001m,暂不支持交融,默认0

命令格式

{s:s,s:[i,i,i,i,i,i],s:i,s:i}

示例

{"command":"movej_p","pose":[100000,200000,30000,400,500,600],"v":50,"r":0}

说明:直线运动,

目标位置:x0.1my:0.2mz0.03m

目标姿态:rx:0.4radry:0.5radrz:0.6rad

速度系数50%

不交融

返回值

格式:{s:s,s:b,s:i},true-到达目标位置,false-规划失败;0:机械臂运动轨迹到位

{"state":"current_trajectory_state","trajectory_state":true,"device":0}

备注:

目标位姿必须是机械臂当前工具坐标系相对于当前工作坐标系的位姿,用户在使用该指令前务必确保,否则目标位姿会出错!

MOVEC:圆弧运动

功能描述

MoveC:圆弧运动

参数说明

movec:圆弧运动

pose位姿

pose_via中间点位姿,位置精度0.001mm,姿态精度0.001rad

pose_to目标位姿,位置精度0.001mm,姿态精度0.001rad

v速度百分比例系数,0~100

r交融半径,暂不支持轨迹交融,默认0

loop循环圈数,默认0

命令格式

{s:s,s:{s:[i,i,i,i,i,i],s:[i,i,i,i,i,i]},s:i,s:i,s:i}

示例

{"command":"movec","pose":{"pose_via":[100000,200000,30000,400,500,600],"pose_to":[200000,300000,30000,400,500,600]},"v":50,"r":0,"loop":0}

说明:圆弧运动,

中间点位置:x0.1my:0.2mz0.03m

中间点姿态:rx:0.4radry:0.5radrz:0.6rad

终点位置:x0.2my:0.3mz0.03m

终点姿态:rx:0.4radry:0.5radrz:0.6rad

速度系数50%

不交融

不循环

返回值

格式:{s:s,s:b,s:i},true-到达目标位置,false-规划失败;0:机械臂运动轨迹到位

{"state":"current_trajectory_state","trajectory_state":true,"device":0

MOVEL的使用

上面是机械臂JSON协议文档手册中关于MOVEL运动的指令,如仅需发送一条JSON指令,那么就需要使用“TCP测试工具”(此工具可自行下载或联系厂家工作工作人员索取)进行使用,下面是使用“TCP测试工具”发送指令的详细步骤(进行此操作前提为上位机通过网线连接至机械臂并可通信):

①打开“TCP测试工具”(以下内容使用“工具”简称),进行连接机械臂TCP服务端操作。打开软件,点击软件左上方创建连接。此时会弹出设置参数窗口,分别对连接类型、目标IP、目标端口、本机端口进行设置,具体设置参考下图。

②创建连接成功之后会进入操作界面,此时需首先点击连接按钮,连接成功之后即可进行指令的发送。

③通过上一步骤连接至机械臂的服务器之后,即可进行指令的发送。此时我们可以发送MOVEL运动指令,在发送指令之前需确保机械臂附近没有可妨碍机械臂运动的障碍物,指令如下所示:

{"command":"movel","pose":[-209962,0,104844,3141,0,0],"v":50,"r":0}

上述指令含义为机械臂运动至笛卡尔空间的一个点,且运行轨迹为直线,运行速度为百分之50,交融半径为0。

④将指令复制粘贴至软件发送区,并点击“发送”按钮。此时机械臂开始运动,运动结束后接收区将收到以下返回值。

{"device":0,"state":"current_trajectory_state","trajectory_state":true}

MOVEJ_P的使用

①使用工具软件连接至机械臂的服务器之后,即可进行指令的发送。此时我们可以发送MOVEJ_P运动指令,在发送指令之前需确保机械臂附近没有可妨碍机械臂运动的障碍物,指令如下所示(发送以下指令之前需要先发送movej指令,即机械臂运行至准备姿态:

{"command":"movej","joint":[0,0,90000,0,90000,0],"v":20,"r":0})

{"command":"movej_p","pose":[-209962,0,104844,3141,0,0],"v":50,"r":0}

上述指令含义为机械臂运动至笛卡尔空间的一个点,运行轨迹不可控,运行速度为百分之50,交融半径为0。

②将指令复制粘贴至软件发送区,并点击“发送”按钮。此时机械臂开始运动,运动结束后接收区将收到以下返回值。

MOVEC的使用

①使用工具软件连接至机械臂的服务器之后,即可进行指令的发送。此时我们可以发送MOVEC运动指令,在发送指令之前需确保机械臂附近没有可妨碍机械臂运动的障碍物,指令如下所示(发送以下指令之前需要先发送上movej指令,即机械臂运行至准备姿态:

{"command":"movej","joint":[0,0,90000,0,90000,0],"v":20,"r":0})
{"command":"movec","pose":{"pose_via":[-245825,-27684,352523,3141,0,0],"pose_to":[-182843,-115699,352475,3141,0,0]},"v":50,"r":0,"loop":1}

上述指令含义为机械臂运动按照圆弧运动,且运行1个循环。

②将指令复制粘贴至软件发送区,并点击“发送”按钮。此时机械臂开始运动,运动结束后接收区将收到以下返回值。

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

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

相关文章

代码学习记录16

随想录日记part16 t i m e : time: time: 2024.03.11 主要内容:今天的主要内容是二叉树的第五部分,主要涉及最大二叉树;合并二叉树;二叉搜索树的搜索;验证二叉搜索树。 654.最大二叉…

《Python深度学习》阅读笔记

以下是《Python深度学习》一书中学习过程中记录的一些重要的专属名词和概念: 一、概念 深度学习(Deep Learning):指使用多层神经网络进行机器学习的技术。神经网络(Neural Network):一种模仿生…

常用SQL语句大全

目录 目录 一.SQL概念 二.数据库操作 2.0.连接数据库 2.1创建数据库 2.2使用数据库 2.3切换数据库 2.4删除数据库(慎用!!) 2.5查询数据库 三.表操作 3.0了解数据类型和数据约束 3.1创建表 3.2查询表 3.3修改表 3.4删除表 四.数据操作 4…

【PTA】L1-032 L1-033(c)第六天

L1-032 Left-pad 分数 20 作者 陈越 单位 浙江大学 根据新浪微博上的消息,有一位开发者不满NPM(Node Package Manager)的做法,收回了自己的开源代码,其中包括一个叫left-pad的模块,就是这个模块把javas…

【开源-土拨鼠充电系统】鸿蒙 HarmonyOS 4.0+微信小程序+云平台

本人自己开发的开源项目:土拨鼠充电系统 ✍GitHub开源项目地址👉:https://github.com/cheinlu/groundhog-charging-system ✍Gitee开源项目地址👉:https://gitee.com/cheinlu/groundhog-charging-system ✨踩坑不易&am…

集合系列(一) -集合框架简介

一、集合类简介 Java集合就像一种容器,可以把多个对象(实际上是对象的引用,但习惯上都称对象)“丢进”该容器中。从Java 5 增加了泛型以后,Java集合可以记住容器中对象的数据类型,使得编码更加简洁、健壮。…

使用点链云管家创建瑜伽约课小程序

点链云管家 点链云管家是由上海点链科技开发的门店管理系统,为线下门店商家提供一站式门店运营服务平台解决方案,适用于瑜伽健身、美业、新零售会员制电商、母婴店、宠物店、按摩养生、服装、美容、美甲、汽车服务、商超零售、餐饮、KTV娱乐、干洗等18个…

如何在Linux使用docker部署Swagger Editor并实现无公网IP远程协同编辑API文档

目录 前言 Swagger Editor本地接口文档公网远程访问 1. 部署Swagger Editor 2. Linux安装Cpolar 3. 配置Swagger Editor公网地址 4. 远程访问Swagger Editor 5. 固定Swagger Editor公网地址 结语 前言 作者简介: 懒大王敲代码,计算机专业应届生 …

Linux的一些常用指令

一、文件中 r w x - 的含义 r(read)是只读权限, w(write)是写的权限, x(execute)是可执行权限, -是没有任何权限。 二、一些指令 # 解压压缩包 tar [-zxvf] 压缩包名…

springboot+ssm基于vue.js的客户关系Crm管理系统

系统包含两种角色:管理员、用户,主要功能如下。 ide工具:IDEA 或者eclipse 编程语言: java 数据库: mysql5.7 框架:ssmspringboot都有 前端:vue.jsElementUI 详细技术:springbootSSMvueMYSQLMAVEN 数据库…

揭秘动态住宅代理:如何合法获取全球数据洞察

文章目录 写在前面代理网络的崛起什么是代理网络?动态住宅代理的革命为什么选择亮数据动态代理 如何利用采集工具获取全球亮数据写在最后 写在前面 随着互联网技术的发展,数据已经成为企业生存和发展的不可或缺的资源。尤其在商业世界里,如何…

使用 ChatGPT 写高考作文

写作文,很简单,但写一篇好的作文,是非常有难度的。 想要写一篇高分作文,需要对作文题目有正确的理解,需要展现独到的观点和深入的思考,需要具备清晰的逻辑结构,需要准确而得体的语言表达。 正…

租个阿里云的服务器多少钱?30元、61元、99元、165元、199元

2024年租个阿里云的服务器多少钱?很便宜,云服务器2核2G3M固定带宽99元一年、2核4G服务器30元3个月、199元一年,轻量应用服务器2核2G3M配置61元一年、2核4G4M带宽165元一年,可以在阿里云CLUB中心查看 aliyun.club 当前最新的优惠券…

Elastic Agent 的安装及使用

概述 Elastic Agent是Elastic Stack中的一个全新组件,旨在简化和统一监控和集成管理流程。它是一个轻量级的代理,可以部署到各种不同类型的主机和容器中,用于收集系统指标、日志和事件数据,并将其发送到Elasticsearch进行存储和分…

【Qt】QListView 显示富文本,设置文本内容颜色

【Qt】QListView 显示富文本,设置文本内容颜色 文章目录 I - 控件使用II - 显示富文本III - 注意事项 I - 控件使用 Qt 的 MVC 架构为 MV ,Controller 部分继承到了 View 里,View(视图) 设置 Model(模型),Model 设置数据 这里使用…

新鲜出炉!界面控件DevExpress WinForms 2024产品路线图预览(三)

DevExpress WinForm拥有180组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForm能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任…

专业140+总400+重庆邮电大学801信号与系统考研经验重邮电子信息与通信工程,真题,大纲,参考书。

今年报考重庆邮电大学研究生,初试专业课801信号与系统140总分400,总结一下自己去年的复习经验,希望对大家复习有帮助。 专业课: 重邮专业801信号与系统难度中等,今年140算是正常发挥,没有达到Jenny老师要求…

【经验分享】Windows10无法通过SSHFS连接服务器

【经验分享】Windows10如何通过SSHFS连接服务器 前言问题分析解决方法 前言 现在很多公司出于成本考虑,不会为每一台电脑都提供高配置,所以需要通过访问云服务器来进行编译等操作。程序员如果配备的是一台windows电脑,那么需要访问linux服务…

Java复习04 注解和反射

Java复习04 注解和反射 初学 注解和反射的时候 我的问题是 什么是注解? 什么是反射?单例模式 Stream ForkJoin有什么区别? 注解的分类有哪些?怎么区分?反射的分类有哪些?怎么区分? 反射里面Con…

视频水印如何去除?看看这三款工具!

在处理视频内容时,经常会遇到带有水印的视频素材。这些水印有时会遮挡重要的视觉信息,或者影响视频的美观性。为了保持视频内容的完整性和专业性,一个高效的视频去水印工具就显得尤为重要。下面我为大家推荐三款能够轻松去除视频水印的工具。…