dnf机械机器人补丁_干货 | 详解工业机器人控制系统架构

机械臂和移动机器人两种工业机器人的特点你知道吗?下面我们对比一下二者的控制系统方案。

e17199457b19c8ab7252c166e83956d8.png

以上分类是根据应用对象,此外,市面上更多的是通用型运动控制器,即控制非标设备的。

1 控制器底层方案

1.1 机械臂类

机械臂类的控制器发展较早,相对成熟,先来看看现有的控制系统底层方案。

c6fd6ff2fb8c5e54f67ca5e4b8b3a8f8.png

1.2 移动机器人类

移动机器人的控制器属于较新的方向,工业移动机器人有AGV、无人驾驶工程机械等形式,控制系统底层方案如下:

3df9362d1d4a5690d7f1010e3b9dd704.png

1.3 对比

机械臂对精度和运动稳定性的要求较高,因此计算量大、周期短,比移动机器人一般要高1到2个量级。移动机器人一般对同步精度要求不高,其配置相对较低。

机械臂一般工作于固定的区域,其控制器通常放置于机箱内,因此防护等级不高,一般是IP20。

移动机器人由于需要经常运动,尤其是室外工程机械,要考虑防水防尘,其防护等级较高,一般是IP67。

05fe1aab5c11a50e395348a7a84c24ca.png

2 CoDeSys介绍

2.1 CoDeSys的组成

你会发现,很多的机器人控制软件都是借助CoDeSys实现的,那么什么是CoDeSys呢?

CoDeSys是一款付费的软PLC开发软件,简单来说,它包括两部分:Development System和Runtime System。Development System就是用来编程的软件界面(就像Visual Studio、Eclipse等软件,也可以称为IDE),设计、调试、编译PLC程序都在IDE中进行,这部分是用户经常打交道的;

PLC程序写好了以后,就要把它转移到硬件设备中运行。可是这时生成的PLC程序自己是无法运行的,它还要在一定的软件环境中才能工作,这个环境就是Runtime System,这部分是用户看不到的。

二者安装的位置通常不同,IDE一般安装在开发电脑上,Runtime System则位于起控制作用的硬件设备上,二者一般使用网线连接,程序通过网线下载到Runtime中运行。

51cbbf23ccf534c96411de7c934b014c.png

CoDeSys在国内知名度不高,但是在欧洲久负盛名,尤其在工业控制领域。我们上面提到的很多机器人公司都使用了它的产品,例如KEBA、倍福、固高,还有几乎所有的移动机器人控制器厂家。

设计CoDeSys的3S公司只卖软件,不卖硬件。硬件电路需要由用户自己设计,3S公司负责将Runtime System移植到客户的硬件上。Runtime System可以裸跑在硬件上,但一般是运行在操作系统上,配置操作系统也是客户的工作。

如果客户要求,CoDeSys的IDE可以定制,换成客户的logo和外观,这就是为什么你会发现不同厂家的开发平台长得不一样,但风格又比较相似。

当然,用户也可以使用其它IDE,例如倍福就使用了微软的Visual Studio,而背后的编译器等内核以及函数库仍然采用CoDeSys的方案。

CoDeSys的Runtime具有强大的适应性,支持绝大多数的操作系统和硬件芯片架构。

2.2 CoDeSys Runtime原理

CoDeSys的IDE部分是免费的,你可以从其官网下载体验体验。真正收费的是运行系统Runtime System。

7d8a07be967b3694857ddc0c6891e8be.png

CoDeSys在设计之初就将功能划分为若干组件模块,例如总线协议栈、可视化界面、运动控制、安全控制等等,用户可以像搭积木一样选购必需的模块搭建自己的系统,最后形成一个定制化的控制软件平台。

一些初次接触软PLC的用户可能对这部分感到陌生,但其实这种设计方式非常普遍。举几个例子,MATLAB Simulink的实时工具箱(Real-Time)就是这样的工作方式,用户在Simulink的图形界面里通过拖拽设计控制程序,然后下载到真实的硬件中跑,可以在这里了解。

还有像倍福也是这样的使用方式,用户在TwinCAT IDE里进行编程,然后下载到倍福的控制器中,控制器里面其实已经预装了一个Runtime。西门子的STEP7也是一款IDE,它的PLC中也存在一个配套的Runtime。

用户编写的PLC程序就像我们电脑里的应用程序,它运行在Runtime System上,而Runtime System又运行在操作系统之上。

Runtime System位于应用程序和操作系统之间。所以可以被称为中间件(Middleware)。在机器人软件里面,处于同样地位的还有ROS、OROCOS(Real-Time Toolkit)等等。

机器人的控制,像数控机床一样,对实时性有要求,因此我们选择的操作系统最好是实时操作系统(RTOS)。遗憾的是,我们经常用的操作系统都不是实时的,例如Windows和Linux。但幸运的是,有人对它们进行了改造,也就是加入实时补丁。

常用的实时操作系统有:VxWorks、QNX、Windows RTX、Xenomai、RT Linux、Linux RTAI、WinCE、μC/OS、SylixOs等等。考虑到Windows和Linux这两款操作系统的用户较多,CoDeSys推出了相应的实时补丁(RTE),为用户免去了改造的烦恼。

2.3 CoDeSys的缺点

CoDeSys给我们开发控制器带来了便利,省去了从零开始的麻烦,但是依靠CoDeSys这类商业软件开发自己的控制器产品也存在不少的缺点:

1) 底层算法不公开

CoDeSys集成的运动控制组件、总线协议栈都是封装好的,用户无法了解其内部细节,也无法针对自己的具体需求进行定制优化,只能简单地调用。用户只能依附于CoDeSys平台,难以形成自己的核心技术。

2)功能有限,难以扩展

现在以机器视觉、人工智能、自动驾驶等为代表的新技术突飞猛进,而工业控制上的很多技术仍然停留在20年前。以移动机器人中的导航场景为例,基于视觉或者激光的导航方法需要采集大量的数据并对其进行处理,其中涉及相当多的矩阵计算。

而现在PLC只能进行落后的一维数字计算,难以实现复杂的算法。与人工智能圈子喜欢开源的风格正好相反,工业控制圈子相互封闭,谁都不肯开放自家的函数库,开源函数库极少(OSCAT),就连最基本的滤波算法、矩阵计算都要自己从头开始写。而且,国际标准提供的基本函数太过有限,完全无法适应新的场景,急需扩展。

3) 难以更新

由于完全依赖CoDeSys,客户自己产品硬件的升级换代需要重新定制移植,导致成本增加。

3 开源方案

目前存在一些开源的控制系统方案,例如Beremiz、Orocos、OpenPLC、OpenRTM、ORCA。

开发机器人控制器是个繁重的工作,要明确一系列性能要求,首先是实时性。

实时性对于工业机器人来说一般是必须的,对于服务或娱乐机器人则未必。一般人很容易错把“实时性”理解为处理或者响应速度快,但是其实“实时性”表示时间上的“确定性”,例如实时操作系统(RTOS)中的中断响应或者进程切换的延迟时间一定是在一个时间范围内。

我们常用的操作系统(Windows、Linux)都不是实时操作系统,因为它们设计的初衷是吞吐量,不能保证每个事件都在一定范围内得到处理。再比如,标准以太网的传输速度比实时工业以太网快多了,但是它也却不是实时的,因为它同样不能保证数据在给定的时间内完成传输。

理解实时性不太难,可是机器人哪些的任务需要实时运行呢?如何根据机器人的性能要求确定程序运行的时间间隔呢(是1ms还是10ms)?实时性取决于硬件还是软件呢?

如何根据实时性选择具体的软硬件呢(该选择ARM还是X86、Linux RTAI还是VxWorks)?网上缺少这方面的深入讨论,各大机器人厂家也不会公开自己的测试和试验结果,似乎这方面主要依靠经验和试错。

这里也只能提供几个指标,目前工业机械臂的控制周期是1ms左右,性能较高的伺服驱动器位置环的控制周期可以达到125[Math Processing Error] mu sμs。

PLCopen定义了伺服和运动控制的一些标准,包括编程语言、运动控制基础函数块(Function Block)、输入输出接口的参数等[Math Processing Error] ^{[3]}

[3]具体的实现代码细节,这个是由各个厂家提供的。

免责声明:以上内容来自网络,仅供交流学习之用。如有任何疑问或异议,请留言与我们联系。

来源: 网络整理 中国机器人网

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

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

相关文章

项目的ar指什么_AR眼镜显示测评标准解读——概述

AR眼镜检测哪些AR眼镜作为近眼显示设备的一种,运用其显示系统实现了虚拟信息与真实世界相叠加的效果;AR眼镜显示性能指标影响着AR产品实际的体验效果。因此,如何客观评价AR眼镜显示技术指标尤为重要。AR眼镜的性能特征和技术参数主要包括光学…

我的JAVA

一、了解Java Java是一门重编译语言,它本身就包含了许多类库、特性,再加上它所衍生出来的相关产品,是一个很庞大的语言体系,拥有无数分支,核心是JDK和JRE。 JDK,英文全称是Java Development Kit&#xff0c…

11下滑半个屏幕_努比亚发布手表手机:柔性屏幕,体积感人

2月26日凌晨,努比亚在MWC2019展会上召开新品发布会,全新的柔性屏“腕机”努比亚α正式与我们见面。努比亚α采用一块960*192分辨率的4英寸柔性屏,视野比手表类产品更广阔。同时为了让弯折的过程中不易出现起皱等问题,努比亚还使用…

Java-02

JAVA工作方式 源程序(myProgram.java) – > 编译(javac myProgram.java) -> JAVA字节码(myProgram.class) ->运行(java myProgram) 指令: 编译时:javac(compiler) 文件名运行时:java 文件名 JAVA的程序结构 源文件>类>方法&…

开机一直转圈_电脑开机后网络一直转圈,程序也打不开?

问题描述:最近,笔记本电脑开机之后,网络图标一直转圈,任何应用程序也打不开,开机关机还是可以的,之前是偶尔发生这种情况,然后重启一下或许就行了,但最近每次开机都是这个情况&#…

19生成材料清单_SOLIDWORKS 钣金装配体材料明细表扩展应用

【问题描述】:我们都知道,SOLIDWORKS装配体可以直接生成材料明细表,我们可以通过材料明细表查看详细的零件属性。例如零件名称、数量和材质等等。对于只包含钣金零件的装配体,我们是否可以在装配体材料明细表中表示钣金零件的展开…

http请求502_从知乎页面的502说一说测试人员应该知道的HTTP协议状态码!

从3.22开始,知乎网站的运行就出问题,总是弹出502页面。到3.23,竟然更大面积的出现502,甚至连手机APP的界面也是如此。那么当这种情况出现的时候,站在用户的立场上?他们怎么能够知道这是怎么回事儿&#xff…

docker 封装sql_docker封装mysql镜像

docker封装mysql镜像发布时间:2020-03-13 12:18:07编辑:admin阅读(967)一、概述直接使用官方的镜像docker pull mysql:5.7但是mysqld.cnf并没有优化,还是默认的。二、封装镜像创建目录# dockerfile目录mkdir -p /opt/dockerfile/mysql# 持久化…

怎么看vray渲染进度_3dmax渲染怎么看渲染时间

回答:如果你用VRAY渲染器的话, 按下F10在渲染选项卷展栏里--渲染器--VRAY系统---帧标记勾选,后面的文字是very的版本信息时间等,你可以对这些文字进行修改,那个rune time,是渲染时间。【3DMAX 2009最终渲染输出设置参数…

mysql binlog 订阅_数据库binlog订阅和消费组件canal快速入门

一、什么是canal1.定位Canal是阿里巴巴开源的一款基于mysql数据库binlog增量日志分析提供数据订阅和消费功能的组件2.原理Canal模拟MySQL Slave协议,将自己伪装成MySQL Slave,将Master发送dump协议Master将binlog同步到Slave(这里是Canal)Canal解析binlo…

工具系列:TensorFlow决策森林_(8)组合决策森林和神经网络模型

文章目录 介绍安装 TensorFlow Decision Forests导入库数据集模型结构模型训练评估决策森林下一步是什么? 介绍 欢迎来到TensorFlow Decision Forests(TF-DF)的模型组合教程。本教程将向您展示如何使用通用的预处理层和Keras函数式API将多个…

python 调用不存在的方法 统一处理_提取不重复数据在Excel、SQL与Python中的处理方法...

村长今天跟大家简单分享一下如何在Excel、SQL和Python中用不同的方法提取不重复值(数据去重)。一、Excel1.1、函数法(数组公式)函数公式:IFERROR(INDEX(A:A,SMALL(IF(MATCH($A$2:$A$16,$A$2:$A$16,0)ROW($1:$15),ROW($2:$16),9^9),ROW(A1))),"")1.2、技巧…

yum安装mysql5.7 简书_阿里云服务器(centos7.3)上安装jdk、tomcat、mysql、redis

前言:平时我们敲的项目,只能在本地浏览,不论项目写得怎么样只有自己看得到,只有发布到了云服务器,别人才能访问得到。学习之路就是这样,当别人能访问自己的项目时,会更有成就感,所以接下来就一起…

python绘制四边螺旋线代_解决python彩色螺旋线绘制引发的问题

彩色螺旋线的绘制代码如下:import turtleimport timeturtle.pensize(2)turtle.bgcolor(black)colors [red, yellow, purple, blue]turtle.tracer(False)for x in range(400):turtle.forward(2*x)turtle.color(colors[x % 4])turtle.left(91)turtle.tracer(True)tim…

idea创建java项目目录结构_用IDEA创建一个简单的Maven的JavaWeb项目

1.项目环境IDEA:2016.2JDK:1.8.0_76Maven:3.2.52.File-->New-->Project-->Maven3.选择Project SDK:1.8,然后勾选下方的Create from archetype,选择maven archetype webapp,点击Next4.填…

jmeter java性能_jmeter java性能测试

本篇文章主要讲解jmeter如何测试java请求,以项目中某个接口为例,请求数据为post,返回也为post1:新建maven工程,pom文件为1 2 xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd…

ckeditor java 上传_java使用CKEditor实现图片上传功能

java如何使用ckeditor实现图片上传功能,具体内容如下1.根据实际需要下载指定的ckeditor2.删除文件ckeditor/plugins/image/dialogs/image.js预览框中文本内容,并修改hidden属性值为显示上传选项卡删除image.js中包含在双引号中的上述文本将image.js中的h…

java 程序流程控制知识点_JAVA基础知识点梳理三:流程控制语句

条件语句之 if语法:执行过程:例:int score 65;if (score > 60) {System.out.println("该学生及格");}//注:如果 if 条件成立时的执行语句只有一条,大括弧可以省略,但如果执行语句有多条&…

寂静岭3java攻略_《寂静岭3HD》通关心得:感人之佳作

作者:jet1942(原帖点击进入)寂静岭是什么?它是人的内心世界,它是人赎罪的地方。读了这句话后,是不是感觉意境非常深邃,还带有些恐怖感?是的,这就是寂静岭的魅力所在,作为一款AVG类游戏,他与生化危机不同&…

form表单图片预览 layui_layui 实现图片上传和预览

[学习笔记]图片不自动上传并在表单提交时再上传,看代码。附上表单页面前台实现autocomplete"off" class"layui-input" disabled>autocomplete"off" class"layui-input">上传图片确定layui.use([form, layer, upload]…