【Unity】ABB CRB 15000 外部引导运动

1fd6ffa328e0c5c10f0a902a78db33f3.png

一、RobotStudio控制器的文件系统和配置参数

  • HOME:控制器文件系统的根目录或起始点。

  • 配置:机器人控制器的配置设置和参数。

  • 外件信息:连接到机器人的外部组件的信息。

  • I/O 系统:输入/输出系统,管理机器人和外部设备之间的信号和数据交换。

    • EPanel & IoPanel:与输入/输出配置和显示相关的特定面板。

    • EtherNetIP:一种特定的工业以太网通信协议。

    • IntBus:机器人架构内部的通信总线系统。

    • ScLocIO:本地输入/输出配置和设置。

  • SC_Feedback_Net & SC_Feedback_Dev:反馈网络和设备配置,可能与机器人设置中的传感器反馈系统有关。

  • RAPID (RobotWare Architecture Platform Independent Design):ABB的机器人编程语言。

    • 各种模块(如TE_EE_CTRL,Module1,BASE等)包含与机器人控制的不同方面(如末端执行器控制,基座控制等)相关的特定RAPID代码文件或函数。

    • 每个模块包含子目录,其中包含特定的RAPID程序或配置文件。

二、什么是外部引导运动(EGM)?

外部引导运动(EGM)是一种机器人控制模式,它允许机器人通过外部传感器或设备接收实时的位置或力的修正。EGM可以实现机器人的柔性运动,适应不确定的环境或任务。EGM可以分为笛卡尔控制和关节控制,分别对应于机器人的笛卡尔坐标系和关节坐标系。EGM需要使用特定的通信协议和编程语言(如RAPID)来设置和运行。EGM是ABB机器人的一种创新功能,可以提高机器人的灵活性和智能性。

三、如何在ABB机器人中使用EGM?

要在ABB机器人中使用EGM,您需要以下几个步骤:

  • 选择合适的EGM模式(笛卡尔控制或关节控制)和参数(如修正框架,传感器框架,收敛条件,滤波器,采样率等)。

  • 在RobotStudio中创建一个EGM控制器,并配置相应的通信设置(如端口号,协议类型,IP地址等)。

  • 在RAPID程序中,使用EGM相关的函数(如EGMGetId,EGMSetupUC,EGMActPose,EGMRunPose等)来注册,设置,激活,运行和重置EGM会话。

  • 在外部设备或传感器上,使用EGM相关的库(如EGM Python Library,EGM C# Library等)来建立与机器人的通信连接,并发送位置或力的修正数据。

  • 在机器人上,观察EGM的运行状态和结果,根据需要调整EGM的参数或停止EGM会话。

您可以参考ABB的官方文档和示例来了解更多关于EGM的细节和用法。

四、如何在ROBOTSTUDIO中创建一个EGM控制器?

要在RobotStudio中创建一个EGM控制器,您可以按照以下步骤操作:

  • 打开RobotStudio软件,选择“新建”或“打开”一个机器人项目。

  • 在“控制器”选项卡下,右键单击“控制器”并选择“添加控制器”。

  • 在弹出的对话框中,选择您想要的控制器类型(如IRC5,IRB 120等)和版本(如6.10,7.0等)。

  • 在“控制器名称”栏中,输入您想要的控制器名称(如EGM_Controller)。

  • 点击“确定”按钮,创建控制器。

  • 在“控制器”选项卡下,右键单击您刚创建的控制器,并选择“配置”。

  • 在弹出的对话框中,选择“通信”选项卡,然后点击“添加”按钮。

  • 在弹出的对话框中,选择“UDPUC”作为通信类型,并输入您想要的端口号(如6510)和协议类型(如EGM)。

  • 点击“确定”按钮,添加通信设置。

  • 在“控制器”选项卡下,右键单击您刚创建的控制器,并选择“加载系统”。

  • 在弹出的对话框中,选择您想要的系统文件(如EGM_RAPID.sys)并点击“打开”按钮。

  • 等待系统文件加载完成,您就成功创建了一个EGM控制器。

您可以参考RobotStudio的官方文档和教程来了解更多关于EGM控制器的细节和用法。

五、您能否提供一些ABB机器人的EGM示例?

我可以为您提供一些ABB机器人的EGM示例,但请注意,这些示例仅供参考,您需要根据您的实际情况和需求进行修改和调整。以下是一些EGM示例的链接:

  • EGM Python Library:这是一个使用Python编写的EGM库,可以让您在外部设备或传感器上与ABB机器人进行EGM通信。它包含了一些EGM的示例代码和文档,如EGM关节控制,EGM笛卡尔控制,EGM力控制等。

  • EGM C# Library:这是一个使用C#编写的EGM库,可以让您在外部设备或传感器上与ABB机器人进行EGM通信。它包含了一些EGM的示例代码和文档,如EGM关节控制,EGM笛卡尔控制,EGM力控制等。

  • EGM RAPID Code Examples:这是一些使用RAPID编写的EGM代码示例,可以让您在ABB机器人上设置和运行EGM会话。它包含了一些EGM的示例代码和文档,如EGM关节控制,EGM笛卡尔控制,EGM力控制等。

您可以下载这些示例代码,并在RobotStudio中进行模拟或在实际机器人上进行测试。

六、详细解释 EGM的指令如何使用

EGM的指令是一些用于设置和运行EGM会话的RAPID函数,它们可以让您在ABB机器人上实现外部引导运动(EGM)的控制模式。以下是一些常用的EGM指令的详细解释:

  • EGMGetId egm_id;:这个指令用于注册一个EGM id,它是一个egmident类型的变量,用于标识EGM会话。您需要在使用其他EGM指令之前先调用这个指令。

  • EGMSetupUC rob, egm_id, egm_port, egm_name, egm_mode;:这个指令用于设置EGM通信的参数,包括以下几个选项:

    • rob:机器人的名称,如ROB_1。

    • egm_id:EGM id,由EGMGetId指令返回。

    • egm_port:EGM通信的端口号,如"6510"。

    • egm_name:EGM通信的名称,如"ROB_1"。

    • egm_mode:EGM通信的模式,可以是\Pose(笛卡尔控制),\Joint(关节控制),\Hybrid(混合控制),或\Force(力控制)。

  • EGMActPose egm_id, \Tool:=tool, \WObj:=wobj, corr_frame, corr_frame_type, sens_frame, sens_frame_type, \X:=x, \Y:=y, \Z:=z, \Rx:=rx, \Ry:=ry, \Rz:=rz, \LpFilter:=lp, \SampleRate:=sr, \MaxPosDeviation:=mpd, \MaxSpeedDeviation:=msd;:这个指令用于激活EGM笛卡尔控制的会话,它有以下几个选项:

    • egm_id:EGM id,由EGMGetId指令返回。

    • \Tool:=tool:工具坐标系,如tool0。

    • \WObj:=wobj:工作对象坐标系,如wobj0。

    • corr_frame:修正框架,是一个pose类型的变量,用于定义EGM传感器和机器人之间的位置和方向的偏移量。

    • corr_frame_type:修正框架的类型,可以是EGM_FRAME_BASE(基座框架),EGM_FRAME_WOBJ(工作对象框架),EGM_FRAME_TOOL(工具框架),或EGM_FRAME_ROB(机器人框架)。

    • sens_frame:传感器框架,是一个pose类型的变量,用于定义EGM传感器的位置和方向。

    • sens_frame_type:传感器框架的类型,可以是EGM_FRAME_BASE(基座框架),EGM_FRAME_WOBJ(工作对象框架),EGM_FRAME_TOOL(工具框架),或EGM_FRAME_ROB(机器人框架)。

    • \X:=x:X轴的收敛条件,是一个egm_minmax类型的变量,用于定义EGM传感器和机器人之间的X轴位置差的最小和最大值,单位是毫米。

    • \Y:=y:Y轴的收敛条件,是一个egm_minmax类型的变量,用于定义EGM传感器和机器人之间的Y轴位置差的最小和最大值,单位是毫米。

    • \Z:=z:Z轴的收敛条件,是一个egm_minmax类型的变量,用于定义EGM传感器和机器人之间的Z轴位置差的最小和最大值,单位是毫米。

    • \Rx:=rx:Rx轴的收敛条件,是一个egm_minmax类型的变量,用于定义EGM传感器和机器人之间的Rx轴方向差的最小和最大值,单位是度。

    • \Ry:=ry:Ry轴的收敛条件,是一个egm_minmax类型的变量,用于定义EGM传感器和机器人之间的Ry轴方向差的最小和最大值,单位是度。

    • \Rz:=rz:Rz轴的收敛条件,是一个egm_minmax类型的变量,用于定义EGM传感器和机器人之间的Rz轴方向差的最小和最大值,单位是度。

    • \LpFilter:=lp:低通滤波器的参数,是一个整数,用于平滑EGM传感器的数据,范围是0-1000,值越大,滤波效果越强。

    • \SampleRate:=sr:采样率的参数,是一个整数,用于设置EGM传感器的数据发送频率,范围是4-250,单位是Hz,值越大,数据更新速度越快。

    • \MaxPosDeviation:=mpd:最大位置偏差的参数,是一个整数,用于设置EGM传感器和机器人之间的位置差的上限,单位是毫米,值越大,容忍的误差越大。

    • \MaxSpeedDeviation:=msd:最大速度偏差的参数,是一个整数,用于设置EGM传感器和机器人之间的速度差的上限,单位是毫米/秒,值越大,容忍的误差越大。

  • EGMRunPose egm_id, egm_state, \X \Y \Z \Rx \Ry \Rz \CondTime:=ct \RampInTime:=rit \RampOutTime:=rot \PosCorrGain:=pcg;:这个指令用于运行EGM笛卡尔控制的会话,它有以下几个选项:

    • egm_id:EGM id,由EGMGetId指令返回。

    • egm_state:EGM状态,可以是EGM_STOP_HOLD(停止并保持当前位置),EGM_STOP_REPLACE(停止并回到原始位置),EGM_STOP_ABORT(停止并中断EGM会话),或EGM_RUN(运行EGM会话)。

    • \X \Y \Z \Rx \Ry \Rz:这些是用于指定EGM传感器和机器人之间的位置和方向差的变量,它们必须与EGMActPose指令中的相同,否则会出错。

    • \CondTime:=ct:收敛时间的参数,是一个实数,用于设置EGM传感器和机器人之间的位置和方向差达到收敛条件的最长时间,单位是秒,值越大,等待的时间越长。

    • \RampInTime:=rit:渐入时间的参数,是一个实数,用于设置EGM传感器和机器人之间的位置和方向差从0到最大值的变化时间,单位是秒,值越大,变化的速度越慢。

    • \RampOutTime:=rot:渐出时间的参数,是一个实数,用于设置EGM传感器和机器人之间的位置和方向差从最大值到0的变化时间,单位是秒,值越大,变化的速度越慢。

    • \PosCorrGain:=pcg:位置修正增益的参数,是一个实数,用于设置EGM传感器和机器人之间的位置差的修正比例,范围是0-1,值越大,修正的效果越强。

  • EGMReset egm_id;:这个指令用于重置EGM会话,它需要一个EGM id作为参数,由EGMGetId指令返回。您需要在结束EGM会话后调用这个指令,以释放EGM id和资源,恢复机器人的正常状态。

  • EGMActJoint egm_id, \Tool:=tool, \WObj:=wobj, \J1:=j1, \J2:=j2, \J3:=j3, \J4:=j4, \J5:=j5, \J6:=j6, \LpFilter:=lp, \SampleRate:=sr, \MaxPosDeviation:=mpd, \MaxSpeedDeviation:=msd;:这个指令用于激活EGM关节控制的会话,它有以下几个选项:

    • egm_id:EGM id,由EGMGetId指令返回。

    • \Tool:=tool:工具坐标系,如tool0。

    • \WObj:=wobj:工作对象坐标系,如wobj0。

    • \J1:=j1:J1轴的收敛条件,是一个egm_minmax类型的变量,用于定义EGM传感器和机器人之间的J1轴位置差的最小和最大值,单位是度。

    • \J2:=j2:J2轴的收敛条件,是一个egm_minmax类型的变量,用于定义EGM传感器和机器人之间的J2轴位置差的最小和最大值,单位是度。

    • \J3:=j3:J3轴的收敛条件,是一个egm_minmax类型的变量,用于定义EGM传感器和机器人之间的J3轴位置差的最小和最大值,单位是度。

    • \J4:=j4:J4轴的收敛条件,是一个egm_minmax类型的变量,用于定义EGM传感器和机器人之间的J4轴位置差的最小和最大值,单位是度。

    • \J5:=j5:J5轴的收敛条件,是一个egm_minmax类型的变量,用于定义EGM传感器和机器人之间的J5轴位置差的最小和最大值,单位是度。

    • \J6:=j6:J6轴的收敛条件,是一个egm_minmax类型的变量,用于定义EGM传感器和机器人之间的J6轴位置差的最小和最大值,单位是度。

    • \LpFilter:=lp:低通滤波器的参数,是一个整数,用于平滑EGM传感器的数据,范围是0-1000,值越大,滤波效果越强。

    • \SampleRate:=sr:采样率的参数,是一个整数,用于设置EGM传感器的数据发送频率,范围是4-250,单位是Hz,值越大,数据更新速度越快。

    • \MaxPosDeviation:=mpd:最大位置偏差的参数,是一个整数,用于设置EGM传感器和机器人之间的位置差的上限,单位是度,值越大,容忍的误差越大。

    • \MaxSpeedDeviation:=msd:最大速度偏差的参数,是一个整数,用于设置EGM传感器和机器人之间的速度差的上限,单位是度/秒,值越大,容忍的误差越大。

  • EGMRunJoint egm_id, egm_state, \J1 \J2 \J3 \J4 \J5 \J6 \CondTime:=ct \RampInTime:=rit \RampOutTime:=rot \PosCorrGain:=pcg;:这个指令用于运行EGM关节控制的会话,它有以下几个选项:

    • egm_id:EGM id,由EGMGetId指令返回。

    • egm_state:EGM状态,可以是EGM_STOP_HOLD(停止并保持当前位置),EGM_STOP_REPLACE(停止并回到原始位置),EGM_STOP_ABORT(停止并中断EGM会话),或EGM_RUN(运行EGM会话)。

    • \J1 \J2 \J3 \J4 \J5 \J6:这些是用于指定EGM传感器和机器人之间的位置差的变量,它们必须与EGMActJoint指令中的相同,否则会出错。

    • \CondTime:=ct:收敛时间的参数,是一个实数,用于设置EGM传感器和机器人之间的位置差达到收敛条件的最长时间,单位是秒,值越大,等待的时间越长。

    • \RampInTime:=rit:渐入时间的参数,是一个实数,用于设置EGM传感器和机器人之间的位置差从0到最大值的变化时间,单位是秒,值越大,变化的速度越慢。

    • \RampOutTime:=rot:渐出时间的参数,是一个实数,用于设置EGM传感器和机器人之间的位置差从最大值到0的变化时间,单位是秒,值越大,变化的速度越慢。

    • \PosCorrGain:=pcg:位置修正增益的参数,是一个实数,用于设置EGM传感器和机器人之间的位置差的修正比例,范围是0-1,值越大,修正的效果越强。

这就是我对EGM指令的详细解释,希望对您有所帮助

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

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

相关文章

JavaScript 入门手册(一)

目录 一、JavaScript 是什么? 1.1 JavaScript 介绍 1.2 JavaScript 与 ECMAScript 的关系 1.3 JavaScript 是脚本语言 1.4 JavaScript 的特点 1.5 运行 JavaScript 1.6 保留关键字 二、Node.js 是什么? 2.1 运行时是什么? 2.2 Node.js 的组成…

用WSGI发布flask到centos7.9

起因 想把自己的Flask或者Django网站,发布到服务器上,让大家都可以访问。网上搜的结果,要么是用NginxuWSGI,要么是用NginxGunicorn。大名鼎鼎的Nginx我早有耳闻,那么两位俩玩意是啥呢。 WSGI是什么 uwsgi是Nginx和w…

存内计算生态环境搭建以及软件开发

在当今数据驱动的商业世界中,能够快速处理和分析大量数据的能力变得越来越重要。而存内计算开发环境在此领域发挥其关键作用。存内计算环境利用内存(RAM)而非传统的磁盘存储来加速数据处理,提供了一个高效和灵活的平台。这种环境的…

借着ChatGPT的人机交互聊聊长连接

ChatGPT这两年可谓风靡全球,尤其是最近Sora视频模型的横空出世以及claude 3模型所具备的浅意识,更是像打开了新世界的大门。本文就从ChatGPT的网页聊天开始聊起(有蹭热度之嫌,哈哈),聊聊长连接的发展历程和…

React-Redux中actions

一、同步actions 1.概念 说明:在reducers的同步修改方法中添加action对象参数,在调用actionCreater的时候传递参数,数会被传递到action对象payload属性上。 2.reducers对象 说明:声明函数同时接受参数 const counterStorecre…

指针进阶(4)看一下这些与指针有关的题你都会做吗?

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话: 知不足而奋进,望远山而前行&am…

【E3S独立出版】2024年第二届绿色建筑国际会议(ICoGB 2024)

会议简介 Brief Introduction 2024年第二届绿色建筑国际会议(ICoGB 2024) 会议时间:2024年5月22日-24日 召开地点:意大利米兰 大会官网:www.icogb.org ICoGB 2024由意大利米兰理工大学主办,西安交通大学,葡萄牙米尼奥大…

什么是Java内存模型

当问到 Java 内存模型的时候,一定要注意,Java 内存模型(Java Memory Model,JMM)它和 JVM 内存布局(JVM 运行时数据区域)是不一样的,它们是两个完全不同的概念。 1.为什么要有 Java …

【校园安全】支小蜜防校园霸凌语音识别系统的好处

在校园安全领域,防校园霸凌语音识别系统的出现,为预防和应对校园霸凌行为提供了新的技术手段。本文将探讨防校园霸凌语音识别系统的好处,并分析其在校园安全建设中的重要作用。 通过安装在校园各个角落的语音识别设备,系统能够捕…

蓝桥杯倒计时 36天-DFS练习2

文章目录 黄金二叉树混沌之力2 黄金二叉树 思路一&#xff1a;递推做法 #include<bits/stdc.h> using namespace std;const int N 1e510;int A[N]; int B[N]; int n,sum;int main( ){cin>>n;for(int i1;i<n;i)cin>>A[i];int left,right;for(int i1;i<…

用Python爬取古诗文网的各类古诗

fetch-gushiwen 用途 可以拿去用于个人知识库、知识图谱的创建等其他学习用途。 使用 输入古诗文网的链接&#xff0c;即可爬取该页面所有诗歌的诗名&#xff0c;作者&#xff0c;朝代&#xff0c;内容&#xff0c;译文&#xff0c;注释&#xff0c;赏析&#xff0c;创作背…

[MRCTF2020]Transform1

a[33]"9,10,15,23,7,24,12,6,1,16,3,17,32,29,11,30,27,22,4,13,19,20,21,2,25,5,31,8,18,26,28,14" b[33]"103,121,123,127,117,43,60,82,83,121,87,94,93,66,123,45,42,102,66,126,76,87,121,65,107,126,101,60,92,69,111,98,77" python代码 a3 [103…

前端实现一个绕圆心转动的功能

得知了转换关系&#xff0c;我们就可以定义一个变量 angle 来表示我们这个 div 做圆周运动时绕圆心转过的角度&#xff0c;则弧度&#xff08;radian&#xff09; 为 radian &#xff08;angle*π&#xff09;/180 我们先在草稿纸上演练一遍我们的逻辑是否可行。让我们先准备一…

2024蓝桥杯每日一题(差分)

一、第一题&#xff1a;空调 解题思路&#xff1a;差分 希望P减掉T后就相当于从0到New_P&#xff0c;想到得到New_P只需要对全0数组进行若干次区间加操作&#xff0c;所以只需要对New_P数组进行差分&#xff0c;累加正数和负数&#xff0c;哪个绝对值大答案就是那个。 …

数据库安全的重要性

数据库作为信息系统的核心&#xff0c;不仅承载着海量的关键数据&#xff0c;还负责向各类用户提供高效、可靠的信息服务。在网络技术高度发展的今天&#xff0c;数据库的安全性显得尤为关键。为了防范不法分子的攻击&#xff0c;维护数据完整性和可靠性&#xff0c;数据库安全…

【Windows】VMware虚拟机应用(二):安装ubuntu-14.04.4

一、下载安装包 ubuntu-14.04.4-server-amd64.iso 注&#xff1a;因为我是用已有的安装包&#xff0c;所以&#xff0c;这里就不写下载步骤了。 二、安装引导 以管理员身份运行 VMware Workstation Pro 注&#xff1a;如果不是管理员身份运行&#xff0c;在安装系统时会出现…

二叉搜索树:查找+插入+删除+性能分析

文章目录 一、搜索树1.二叉搜索树的查找2.二叉搜索树的插入3.二叉搜索树的删除4.性能分析 一、搜索树 二叉搜素树 &#xff08; 二叉排序树 ) 1.要么是空树 2.如果左子树不为空&#xff0c;则左子树上所有节点的值都小于根节点的值 3.如果右子树不为空&#xff0c;则右子树上所…

7款前端实战型项目特效分享(附在线预览)

分享7款实用性的前端动画特效 其中有canvas特效、css动画、svg动画等等 下方效果图可能不是特别的生动 那么你可以点击在线预览进行查看相应的动画特效 同时也是可以下载该资源的 CSS春节灯笼特效 基于CSS实现的灯笼特效 灯笼会朝左右两个方向来回的摆动着 以下效果图只能体现…

关于Vue3的一些操作

1. 设置浏览器自动打开 在package.json 中设置 dev: vite --open 2.给src文件夹配置别名 在vite.config.ts配置文件中添加以下内容 3. 如果2中有红色波浪线的问题 ***安装一个文件包***npm install types/node3. 在tsconfig.json配置文件中&#xff0c;找到配置项compi…

Windows下Node.js安装保姆级教程

一、Node.js 下载 访问Node.js官网&#xff0c;点击下载Node.js 下载完成后即可在下载文件中查看安装包 二、安装 一&#xff09;点击安装包开始安装&#xff0c;进入Weclcome界面点击Next 二&#xff09;勾选同意协议&#xff0c;点击Next 三&#xff09;根据需要选择安装路…