本月累计签到次数:

今天获取 积分

机器人开发软件

机器人开发软件

628 浏览

科普 机器人常用十大编程语言

IT软件类 天黑请闭眼 2016-06-10 19:43 发表了文章 来自相关话题

在本文中,我们将会审视在机器人学中最流行的10种编程语言,深入探讨它们各自的优缺点以及使用和弃用它们的原因。

这实际上是个很有道理的问题——毕竟,如果你从不付诸实践,那为什么要花大量的时间和精力去学习一种新的编程语言呢?如果作为一名机器人学新人,你当然会想学习一种确实对你的职业生涯很有用的编程语言。






不幸的是,如果你去问一屋子的机器人学专家,“什么是机器人学中最好编程语言?”,你永远不会得到一个直接的答案。

电气工程师会从工业机器人技术这个角度给出不同的答案。计算机视觉程序员给出的答案会跟认知机器人专家给出的不一样。而且,每个人都会对什么是最好的编程语言有自己的看法。对于一个新入行正在试图决定要先学哪种语言的机器人学者来说,这是一个相当无用的答案。即使这是最现实的回答——因为它的确取决于你想要开发的应用程序和你在使用的系统。

对于机器人专家来说,最重要的事情是开拓你的”编程思维”,而不是精通一种特定的编程语言。从很多方面来说,从哪种编程语言开始学习真的无关紧要。你学习的每种语言提升了你的编程思维,拥有了这种思维,去学习一种新编程语言的时候会容易不少。

机器人学中最流行的10种编程语言

世界上有1500多种编程语言,都要学的话是太多了。目前,在机器人学中有这10种最流行的编程语言——如果你喜欢的不在这里,请在留言区告诉大家。对于机器人学,每种编程语言有不同的优点。我只是部分地按照重要程度从低到高对它们进行了排序。

10.BASIC/Pascal

BASIC和Pascal是我最早学过的两种编程语言。不过这并不是我把它们列在这里的原因。对于几种工业机器人语言,它们是基础,下面说明一下。BASIC是为初学者设计的(BASIC是缩写,BeginnersAll-PurposeSymbolicInstructionCode),它让初学者可以从一种非常简单的编程语言开始学习。Pascal旨在鼓励好的编程习惯,还引入了结构,例如指针,这让Pascal成为从BASIC到更复杂语言的一块“敲门砖”。如今,这两种语言如果要说是好的“日常使用”程序语言,那是有点过时了。不过如果你准备做很多底层编码或是想要熟悉一下其它工业机器人编程语言,学习一下还是有用的。

9.工业机器人编程语言

几乎每一个机器人制造商都开发了他们自己专有的机器人编程语言,这成了工业机器人行业中的一个问题。通过学习Pascal,你会熟悉它们中的一部分。但是每次开始使用新的机器人时,你还得学习一种新的编程语言。

最近几年,ROS行业已经开始提供更标准化的替代语言给程序员。但是如果是一个技术人员,你仍然更可能不得不使用制造商的编程语言。

8.LISP

LISP是世界上第二古老的编程语言(FORTRAN更古老,但只早了一年)。相比今天提到很多其它编程语言,它的应用并不广泛。不过在人工智能编程领域它还是相当重要的。ROS的一部分是用LISP写的,虽然你不需要掌握这个来使用ROS。

7.硬件描述语言(HDLs)

硬件描述语言一般是用来描述电气的编程方式。这些语言对于一些机器人专家来说是相当熟悉的,因为他们习惯FPGAs(FieldProgrammableGateArrays)编程。FPGAs能让你开发电子硬件而无需实际生产出一块硅芯片,对于一些开发来说,这是更快更简易的选择。如果你没有开发电子原型产品,你也许永远不会用HDLs。即便如此,还是有必要了解一下这种编程语言,因为它们和其它编程语言差别很大。一个重点:HDLs所有的操作是并发的,而不是基于处理器的编程语言的顺序操作。

6.Assembly

Assembly让你能在0和1数位上进行编程。基本上这是最底层的编程语言。就在最近,最底层的电子需要Assembly进行编程。随着Arduino和其它如微控制器的崛起,现在你可以使用C/C++在底层方便地编程了。这意味着Assembly对于大多数机器人专家来说也许会变得更不必要了。

5.MATLAB

MATLAB以及和它相关的开源资源,比如Octave,一些机器人工程师特别喜欢,它被用来分析数据和开发控制系统。还有一个非常流行的机器人工具箱——MATLAB。我知道一些仅仅使用MATLAB就能开发出整个机器人系统的专家。如果你想要分析数据,产生高级图像或是实施控制系统,你也许会想学习MATLAB。

4.C#/.NET

C#是微软提供的专用编程语言。我把C#/.NET放在这里,主要是因为微软机器人开发员工作包(MicrosoftRoboticsDeveloperStudio),这个包的主要开发语言是C#。如果你准备用这个系统,那么你很可能必须要用C#。 

3.Java

作为一位电子工程师,我总是对一些计算机科学学位课程将Java作为第一种编程语言让学生们学习感到惊讶。Java对程序员隐藏了底层存储功能,这让它比起一些语言(如C语言)来说,编写要容易些,但这也意味着你会更少地理解底层代码的运行逻辑。如果你有计算机科学背景并转到机器人学(很多人是这样的,特别是在研究领域),你也许已经学过Java。像C#和MATLAB,Java是一种解释性语言,这意味着它不会被编译成机器代码。相反,Java虚拟机在运行时解释指令。使用Java,理论上让你可以在不同的机器上运行相同的代码,这得感谢Java虚拟机。在实践中,这不总是可行的,有时会导致代码运行缓慢。但是Java在一部分机器人学中非常流行,因此你也许需要它。

2.Python

近年来,学习Python的人有一个巨大的回潮,特别是在机器人领域。其中一个原因可能是Python(和C++)是ROS中两种主要的编程语言。与Java不同,Python的重点是易用性,Python不需要很多时间来做常规的事情,如定义和强制转换变量类型。这些在编程里面本是很平常的事。另外,Python还有大量的免费库,这意味着当你需要实现一些基本的功能时不必“重新发明轮子”。而且因为Python允许与C/C++代码进行简单的绑定。这就意味着代码繁重部分的性能可以植入这些语言,从而避免性能损失。随着越来越多的电子产品开始支持“开箱即用”Python(与RaspberryPi一道),我们可能会在机器人中看到更多Python。

1.C/C++

最后我们到了排名第1的机器人编程语言!许多人认为C和C++对新入行的机器人学家是一个很好的起点。为什么?因为很多硬件库都使用这两种语言。这两种语言允许与低级别的硬件进行交互,允许实时性能,是非常成熟的编程语言。现如今,你可能会使用C++比C多,因为前者具有更多的功能。C++基本上是C的一种延伸。首先学一点C会很有用,特别是当你发现一个硬件库是用C编写的。C/C++并不是像Python或MATLAB那样简单易用。同样用C来实现相同的功能会需要大量时间,也将需要更多行代码。但是,由于机器人非常依赖实时性能,C和C++是最接近我们机器人专家“标准语言”的编程语言。
 
来源:网络 查看全部
在本文中,我们将会审视在机器人学中最流行的10种编程语言,深入探讨它们各自的优缺点以及使用和弃用它们的原因。

这实际上是个很有道理的问题——毕竟,如果你从不付诸实践,那为什么要花大量的时间和精力去学习一种新的编程语言呢?如果作为一名机器人学新人,你当然会想学习一种确实对你的职业生涯很有用的编程语言。

640111.webp_.jpg


不幸的是,如果你去问一屋子的机器人学专家,“什么是机器人学中最好编程语言?”,你永远不会得到一个直接的答案。

电气工程师会从工业机器人技术这个角度给出不同的答案。计算机视觉程序员给出的答案会跟认知机器人专家给出的不一样。而且,每个人都会对什么是最好的编程语言有自己的看法。对于一个新入行正在试图决定要先学哪种语言的机器人学者来说,这是一个相当无用的答案。即使这是最现实的回答——因为它的确取决于你想要开发的应用程序和你在使用的系统。

对于机器人专家来说,最重要的事情是开拓你的”编程思维”,而不是精通一种特定的编程语言。从很多方面来说,从哪种编程语言开始学习真的无关紧要。你学习的每种语言提升了你的编程思维,拥有了这种思维,去学习一种新编程语言的时候会容易不少。

机器人学中最流行的10种编程语言

世界上有1500多种编程语言,都要学的话是太多了。目前,在机器人学中有这10种最流行的编程语言——如果你喜欢的不在这里,请在留言区告诉大家。对于机器人学,每种编程语言有不同的优点。我只是部分地按照重要程度从低到高对它们进行了排序。

10.BASIC/Pascal

BASIC和Pascal是我最早学过的两种编程语言。不过这并不是我把它们列在这里的原因。对于几种工业机器人语言,它们是基础,下面说明一下。BASIC是为初学者设计的(BASIC是缩写,BeginnersAll-PurposeSymbolicInstructionCode),它让初学者可以从一种非常简单的编程语言开始学习。Pascal旨在鼓励好的编程习惯,还引入了结构,例如指针,这让Pascal成为从BASIC到更复杂语言的一块“敲门砖”。如今,这两种语言如果要说是好的“日常使用”程序语言,那是有点过时了。不过如果你准备做很多底层编码或是想要熟悉一下其它工业机器人编程语言,学习一下还是有用的。

9.工业机器人编程语言

几乎每一个机器人制造商都开发了他们自己专有的机器人编程语言,这成了工业机器人行业中的一个问题。通过学习Pascal,你会熟悉它们中的一部分。但是每次开始使用新的机器人时,你还得学习一种新的编程语言。

最近几年,ROS行业已经开始提供更标准化的替代语言给程序员。但是如果是一个技术人员,你仍然更可能不得不使用制造商的编程语言。

8.LISP

LISP是世界上第二古老的编程语言(FORTRAN更古老,但只早了一年)。相比今天提到很多其它编程语言,它的应用并不广泛。不过在人工智能编程领域它还是相当重要的。ROS的一部分是用LISP写的,虽然你不需要掌握这个来使用ROS。

7.硬件描述语言(HDLs)

硬件描述语言一般是用来描述电气的编程方式。这些语言对于一些机器人专家来说是相当熟悉的,因为他们习惯FPGAs(FieldProgrammableGateArrays)编程。FPGAs能让你开发电子硬件而无需实际生产出一块硅芯片,对于一些开发来说,这是更快更简易的选择。如果你没有开发电子原型产品,你也许永远不会用HDLs。即便如此,还是有必要了解一下这种编程语言,因为它们和其它编程语言差别很大。一个重点:HDLs所有的操作是并发的,而不是基于处理器的编程语言的顺序操作。

6.Assembly

Assembly让你能在0和1数位上进行编程。基本上这是最底层的编程语言。就在最近,最底层的电子需要Assembly进行编程。随着Arduino和其它如微控制器的崛起,现在你可以使用C/C++在底层方便地编程了。这意味着Assembly对于大多数机器人专家来说也许会变得更不必要了。

5.MATLAB

MATLAB以及和它相关的开源资源,比如Octave,一些机器人工程师特别喜欢,它被用来分析数据和开发控制系统。还有一个非常流行的机器人工具箱——MATLAB。我知道一些仅仅使用MATLAB就能开发出整个机器人系统的专家。如果你想要分析数据,产生高级图像或是实施控制系统,你也许会想学习MATLAB。

4.C#/.NET

C#是微软提供的专用编程语言。我把C#/.NET放在这里,主要是因为微软机器人开发员工作包(MicrosoftRoboticsDeveloperStudio),这个包的主要开发语言是C#。如果你准备用这个系统,那么你很可能必须要用C#。 

3.Java

作为一位电子工程师,我总是对一些计算机科学学位课程将Java作为第一种编程语言让学生们学习感到惊讶。Java对程序员隐藏了底层存储功能,这让它比起一些语言(如C语言)来说,编写要容易些,但这也意味着你会更少地理解底层代码的运行逻辑。如果你有计算机科学背景并转到机器人学(很多人是这样的,特别是在研究领域),你也许已经学过Java。像C#和MATLAB,Java是一种解释性语言,这意味着它不会被编译成机器代码。相反,Java虚拟机在运行时解释指令。使用Java,理论上让你可以在不同的机器上运行相同的代码,这得感谢Java虚拟机。在实践中,这不总是可行的,有时会导致代码运行缓慢。但是Java在一部分机器人学中非常流行,因此你也许需要它。

2.Python

近年来,学习Python的人有一个巨大的回潮,特别是在机器人领域。其中一个原因可能是Python(和C++)是ROS中两种主要的编程语言。与Java不同,Python的重点是易用性,Python不需要很多时间来做常规的事情,如定义和强制转换变量类型。这些在编程里面本是很平常的事。另外,Python还有大量的免费库,这意味着当你需要实现一些基本的功能时不必“重新发明轮子”。而且因为Python允许与C/C++代码进行简单的绑定。这就意味着代码繁重部分的性能可以植入这些语言,从而避免性能损失。随着越来越多的电子产品开始支持“开箱即用”Python(与RaspberryPi一道),我们可能会在机器人中看到更多Python。

1.C/C++

最后我们到了排名第1的机器人编程语言!许多人认为C和C++对新入行的机器人学家是一个很好的起点。为什么?因为很多硬件库都使用这两种语言。这两种语言允许与低级别的硬件进行交互,允许实时性能,是非常成熟的编程语言。现如今,你可能会使用C++比C多,因为前者具有更多的功能。C++基本上是C的一种延伸。首先学一点C会很有用,特别是当你发现一个硬件库是用C编写的。C/C++并不是像Python或MATLAB那样简单易用。同样用C来实现相同的功能会需要大量时间,也将需要更多行代码。但是,由于机器人非常依赖实时性能,C和C++是最接近我们机器人专家“标准语言”的编程语言。
 
来源:网络
845 浏览

智道分享-工业机器人的智能化 将何去何从?

设备硬件类 不见不散 2016-05-24 13:28 发表了文章 来自相关话题

   工业4.0,在中国这个世界级工厂的大地上正如火如荼的进行着。与此同时,国家和地方政府也不遗余力,大力扶持地方企业进行“机器换人”的无人化改造。我们都相信,这是一种不可阻挡的科技趋势,也是一场不可逆的有关更大更完全解放生产力的革命潮流。






    说到工业机器人,其实分类很多。但就我个人而言,接触最多的还是串联六轴机械臂,即俗称的六轴机器人。因为它自由度多,灵活性好,且通用性比较高,所以广受工业制造的青睐。现在的工业应用领域中,越来越多的6轴机器臂出现在不同的工作岗位上,用以代替人类从事各种各样繁重,危险,高负荷的工作。这些工作曾经因为会给工作人员带来难以预估的身体和精神伤害,而广受诟病,并且随着中国老龄化的浪潮的到来,也使企业主难以招到满意的员工。而现在,灵活稳定的机械臂的出现,刚好解决了这个问题。
在某些行业领域,6轴机械臂有广泛的应用,如家电行业,铸造行业;在某些行业领域,6轴机械臂有更广泛的应用,如汽车行业,电子行业。在这些拥有高附加值和标准化生产线的行业中,价格不菲的机器人的优势才能更好的发挥出来。
   1959年美国英格伯格和德沃尔(Devol)制造出世界上第一台工业机器人,机器人的历史真正开始。现如今,半个世纪过去了,工业机器人可谓走过了一段漫长的发展之路。从当初的实验室,到现在工业应用的各个行业,我们可以看到,机器人的应用已经越来越成熟。但是这种成熟,似乎也非常集中在某些行业,如电子生产,汽车制造等。
    为什么这么说呢?我们来看看智能手机的发展过程,从04年出现,到现在的非常普及乃至普通,其中有一个非常重要的事件,就是生产工艺的标准化。比如充电器接口,所有安卓智能手机的充电器接口都一样。这种设备的标准化,有一个很明显的好处,就是给用户带来了很多方便。出差,忘记带手机充电线了,不怕,我们可以很容易在周边借到一根充电线。标准化的优势,更多的体现在产品的普及过程,和无限的可能性发展。它能让更多的人参与进来,使用,设计,优化。这对一种产品的成熟至关重要。
工业机器人的发展如何呢?发展了半个多世纪,我们看到,它的成熟度和发展了几年的手机相比,实际上差距还是很大。工业机器人有自己的小圈子,本体厂家之间都是明显的竞争关系,他们的保护壁垒也更加厚实。他们对自己的机器人都十分自信,觉得它们能完成更多,更精细的工作。所以与他人合作的意愿就没有那么强烈,甚至是不愿意和他人交流。
   但是,我们看到工业机器人的行业应用还是有限的。机器人在使用的时候,也没有本体厂家们想象的那么好用。实际上,它还需要更多的设计来完善功能,增加使用的便利性和灵活性。
   进过60年的发展,到目前为止机器人的拥有量不到300万台,而中国一年的汽车产量2500万台。机器人作为一种产业或者产品,它几乎可以忽略不计。而原因在于,由于众多技术的限制使机器人只是局限在制造业很窄的一部分里。尽管如此,机器人在全球范围的热度却仍在持续升温。
   实际上,当前就制造业向“智造业”的转型发展已成为共识,广东近几年出现的“机器换人”的大潮更是一个典型代表。在产品生命周期缩短、消费者个性化需求提高的当代,传统的大规模流水线工业已经跟不上节奏——智能手机的更新换代的周期更是已经缩短到11个月,连汽车等高档消费品的更新周期也减少到了4年,灵活、快速及可以随时变化升级的生产线为工业机器人提出了新的要求,也提供了新的机遇。





   个人感觉,工业机器人的发展和应用,如果想更上一层楼,需要在以下方面做出改变:
1.本体厂商对设备精度和性能的提升,对传感设备的深层研发,并构架出闭环控制系统。
工业机器人普遍能达到低于0.1毫米的运动精度(指重复运动到点精度),抓取重达一吨的物体,伸展也可达三四米。这样的性能虽不一定能轻易完成苹果手机上一些“疯狂”的加工要求,但对绝大部分的工业应用来说,是足以圆满完成任务。
随着机器人的性能逐渐提升,以前一些不可能的任务也变得可行起来(如激光焊接或切割,曾需要专门的高精度设备来指导激光的走向,但随着机器人精度的提升,现在也变得可依赖机器人本身的准确运动来代替了)。
但相比传统高端设备,如高精度数控机床,激光校准设备,或特殊环境(高温或特低温)设备等,工业机器人尚力不能及。
    工业机器人是工业智能化的一个标志,它不仅体现在机械控制系统的智能编程上,还需要外部传感设备支持。为了检测作业对象及环境或机器人与它们的关系,在机器人上安装了触觉传感器、视觉传感器、力觉传感器、接近觉传感器、超声波传感器和听觉传感器,大大改善了机器人工作状况,使其能够更充分地完成复杂的工作。由于外部传感器为集多种学科于一身的产品,有些方面还在探索之中,随着外部传感器的进一步完善,机器人的功能越来越强大,将在许多领域为人类做出更大贡献。
2.本体厂商对数据底层接口的开放,本体厂商之间标准化接口和编程语言。
传统机器人的工作本质就是不断地走一个个的路径点,同时接收或设置外围的I/O信号(老和其他设置如夹具,输送线等合作)。而指导机器人这么做得过程,就是机器人编程。几乎每一家领先公司都有自家的编程语言和环境,从而需要机器人操作者参加学习培训。当机器人适用范围增广后,这个成本开始显现了。
这些厂商是有理由维护自家的编程环境的,一来工业机器人四十年前就开始规模化做了,那时还没有什么面向对象等现在广为熟知普遍认同的主流先进编程理念,二来萌芽阶段自家技术难免会和竞争对手不同,维护一个编程方式也无可厚非,三来因为他们的大客户往往也是传统的工业大客户,如大汽车厂商,这些客户求稳,自然不希望你机器人过几年就赶个热潮变换编程方式,搞得他们还得扔掉几十年的经验,重新花大钱培训学习。
标准化底层数据接口还有另外一个好处,就是直接给上层的应用级开发带来很多方便的地方。现在,大多数离线编程公司因为没办法拿到机器人底层数据接口,无法直接和机器人通信,所以程序调试起来很麻烦。同时,因为没有底层数据接口,离线编程应用等开发出来的功能也十分有限。这给编程人员和整个机器人应用的广泛普及都带来了很大的苦恼。
3.软件服务公司对机器人通用功能的完善,对工艺数据的处理。
机器人离线编程系统的研制和开发涉及的问题很多.包括多个领域的多个学科。目前工业领域的机器人离线编程软件种类也很繁多,软件的性能和功能也参差不齐,各有千秋。举例来说,国外离线编程软件发展较早,工业应用也比较成熟。像Robotmaster,RobotStudio,RobotWork等都是首屈一指的离线软件大佬,他们在国内外的行业应用中,都经过大量的实践检验。国内的工业机器人离线编程软件虽然起步较晚,但是因研发投入较大,重视程度较高,所以进步很大,典型的案例就是北京华航唯实机器人公司的RobotArt离线编程软件。其公司技术背景一是北航机器人研究所与CAD中心数十年的航空航天项目经验,二是数几十人的优秀研发团队,再加上背后财团的大力支持,商业化后短短两年就发展成国内离线编程软件的领导者,一骑绝尘,可谓成绩不俗。。






离线编程技术是未来工业机器人发展的重点之一,但是,就目前的工业应用来说,软件需要改进的地方还有很多。为推动这项技术的进一步发展,也需要多个方面的研究工作,下面就以大家比较熟悉的国产离线编程软件RobotArt为例,来具体谈谈软件需要改进的地方:
a)多媒体技术在机器人离线编程中的研究和应用。友好的人机界面、直观的图形显示及生动的语言信息都是离线编程系统所需要的。在这些地方,RobotArt相比较外国软件,做的已经很好了。当然,这个和它是国产软件,有一群了解中国人软件使用习惯的程序猿有很大关系。良好的人机交互体验能减少软件使用者的上手和学习难度,同时也能增加用户的使用欲望,帮助设计人员更好的工作。
b)多传感器的融合技术的建模与仿真。随着机器人智能化的提高,传感器技术在机器人系统中的应用越来越重要。因而需要在离线编程系统中对多传感器进行建模,实现多传感器的通讯,执行基于多传感器的操作。对于传感器的支持,据我所知,RobotArt这方面的研究还比较少,国外同行做的也不尽如人意。机器人要想更智能化,传感器是一个非常关键的设备,其相关技术还需要大家共同努力,尽早突破。
c)各种规划算法的进一步研究。其包括路径规划、抓取规划和细微运动规划等。规划一方面要考虑到环境的复杂性、运动性和不确定性,另一方面又要充分注意计算的复杂性。我们知道,离线编程仿真软件,一个非常重要的功能就是,产线轨迹,轨迹规划和轨迹生成。为了减少不必要的成本,提高工作效率,我们使用软件更多的是出于设计方面的考虑。RobotArt软件可以支持多机器人的产线规划,支持单机器人的轨迹规划和生成,这大大满足了我们工程师在设计方面的要求。
d)错误检测和修复技术。系统执行过程中发生错误是难免的.应对系统的运行状态进行检测以监视错误的发生,并采用相应的修复技术。此外,最好能达到错误预报,以避免不可恢复动作错误的发生。RobotArt在程序仿真的时候,打开干涉检查功能,会对轨迹中的错误做初步检测。生成后置程序的时候,会对后置的机器人数据做最后的检测过滤,如果发现有不符合程序正常运行的数据,会拒绝生成后置代码。这样做的目的是最大程度减少,来自程序设计本身的失误。这一点需要给RobotArt的设计人员点个赞,做的真的很好。
在解决上述软件通用功能以后,对工艺数据的整理组织也是一项十分重要的工作。专家库的建立,能够把软件编程和机器人操作的门槛降低,让更多的非专业工作人员进入到智能化产线当中。机器人换人的目的不是让人失业,而是解放劳动力,让设计人员把精力和时间投入到更有价值,更有意义的工作中去。随着全球老龄化的到来,随着员工的更新换代,操作经验和技术工艺也面临传承不济和逐渐流失的风险。如果离线编程软件能做好工艺数据的沉淀和应用,也算是功德一件。对于企业的自身发展,也很有帮助。目前,各个离线编程厂家或多或少都有自己的工艺数据包,像RobotStudio等这样有本体机器人做依托的离线厂家,工艺数据自然丰富强大一些,没有本体依托的软件厂家,也在做相关方面的研究。RobotArt在东莞也建立起了自己的科学试验站,和多家国内本体厂商合作,专门从事打磨,焊接,去毛刺等工艺研究,现已积累大量可用于工业生产的工艺数据。
   总结:只有当上述三个问题得以突破,工业机器人才能摆脱目前只是作为一种机械设备在行业领域应用的现状,从而进入广泛的市场。不止是作为人类的替代或人类能力的延伸,而是成为一个真正能够独当一面的机器人。我们相信这一天的到来,将会是人类科技发展史上非常重要,辉煌的一个篇章。
文章来源:智造家特约专家提供
更多分享文章链接:http://bbs.imefuture.com/article/ 查看全部
   工业4.0,在中国这个世界级工厂的大地上正如火如荼的进行着。与此同时,国家和地方政府也不遗余力,大力扶持地方企业进行“机器换人”的无人化改造。我们都相信,这是一种不可阻挡的科技趋势,也是一场不可逆的有关更大更完全解放生产力的革命潮流。

kuka1.jpg


    说到工业机器人,其实分类很多。但就我个人而言,接触最多的还是串联六轴机械臂,即俗称的六轴机器人。因为它自由度多,灵活性好,且通用性比较高,所以广受工业制造的青睐。现在的工业应用领域中,越来越多的6轴机器臂出现在不同的工作岗位上,用以代替人类从事各种各样繁重,危险,高负荷的工作。这些工作曾经因为会给工作人员带来难以预估的身体和精神伤害,而广受诟病,并且随着中国老龄化的浪潮的到来,也使企业主难以招到满意的员工。而现在,灵活稳定的机械臂的出现,刚好解决了这个问题。
在某些行业领域,6轴机械臂有广泛的应用,如家电行业,铸造行业;在某些行业领域,6轴机械臂有更广泛的应用,如汽车行业,电子行业。在这些拥有高附加值和标准化生产线的行业中,价格不菲的机器人的优势才能更好的发挥出来。
   1959年美国英格伯格和德沃尔(Devol)制造出世界上第一台工业机器人,机器人的历史真正开始。现如今,半个世纪过去了,工业机器人可谓走过了一段漫长的发展之路。从当初的实验室,到现在工业应用的各个行业,我们可以看到,机器人的应用已经越来越成熟。但是这种成熟,似乎也非常集中在某些行业,如电子生产,汽车制造等。
    为什么这么说呢?我们来看看智能手机的发展过程,从04年出现,到现在的非常普及乃至普通,其中有一个非常重要的事件,就是生产工艺的标准化。比如充电器接口,所有安卓智能手机的充电器接口都一样。这种设备的标准化,有一个很明显的好处,就是给用户带来了很多方便。出差,忘记带手机充电线了,不怕,我们可以很容易在周边借到一根充电线。标准化的优势,更多的体现在产品的普及过程,和无限的可能性发展。它能让更多的人参与进来,使用,设计,优化。这对一种产品的成熟至关重要。
工业机器人的发展如何呢?发展了半个多世纪,我们看到,它的成熟度和发展了几年的手机相比,实际上差距还是很大。工业机器人有自己的小圈子,本体厂家之间都是明显的竞争关系,他们的保护壁垒也更加厚实。他们对自己的机器人都十分自信,觉得它们能完成更多,更精细的工作。所以与他人合作的意愿就没有那么强烈,甚至是不愿意和他人交流。
   但是,我们看到工业机器人的行业应用还是有限的。机器人在使用的时候,也没有本体厂家们想象的那么好用。实际上,它还需要更多的设计来完善功能,增加使用的便利性和灵活性。
   进过60年的发展,到目前为止机器人的拥有量不到300万台,而中国一年的汽车产量2500万台。机器人作为一种产业或者产品,它几乎可以忽略不计。而原因在于,由于众多技术的限制使机器人只是局限在制造业很窄的一部分里。尽管如此,机器人在全球范围的热度却仍在持续升温。
   实际上,当前就制造业向“智造业”的转型发展已成为共识,广东近几年出现的“机器换人”的大潮更是一个典型代表。在产品生命周期缩短、消费者个性化需求提高的当代,传统的大规模流水线工业已经跟不上节奏——智能手机的更新换代的周期更是已经缩短到11个月,连汽车等高档消费品的更新周期也减少到了4年,灵活、快速及可以随时变化升级的生产线为工业机器人提出了新的要求,也提供了新的机遇。
kuka2.jpg


   个人感觉,工业机器人的发展和应用,如果想更上一层楼,需要在以下方面做出改变:
1.本体厂商对设备精度和性能的提升,对传感设备的深层研发,并构架出闭环控制系统。
工业机器人普遍能达到低于0.1毫米的运动精度(指重复运动到点精度),抓取重达一吨的物体,伸展也可达三四米。这样的性能虽不一定能轻易完成苹果手机上一些“疯狂”的加工要求,但对绝大部分的工业应用来说,是足以圆满完成任务。
随着机器人的性能逐渐提升,以前一些不可能的任务也变得可行起来(如激光焊接或切割,曾需要专门的高精度设备来指导激光的走向,但随着机器人精度的提升,现在也变得可依赖机器人本身的准确运动来代替了)。
但相比传统高端设备,如高精度数控机床,激光校准设备,或特殊环境(高温或特低温)设备等,工业机器人尚力不能及。
    工业机器人是工业智能化的一个标志,它不仅体现在机械控制系统的智能编程上,还需要外部传感设备支持。为了检测作业对象及环境或机器人与它们的关系,在机器人上安装了触觉传感器、视觉传感器、力觉传感器、接近觉传感器、超声波传感器和听觉传感器,大大改善了机器人工作状况,使其能够更充分地完成复杂的工作。由于外部传感器为集多种学科于一身的产品,有些方面还在探索之中,随着外部传感器的进一步完善,机器人的功能越来越强大,将在许多领域为人类做出更大贡献。
2.本体厂商对数据底层接口的开放,本体厂商之间标准化接口和编程语言。
传统机器人的工作本质就是不断地走一个个的路径点,同时接收或设置外围的I/O信号(老和其他设置如夹具,输送线等合作)。而指导机器人这么做得过程,就是机器人编程。几乎每一家领先公司都有自家的编程语言和环境,从而需要机器人操作者参加学习培训。当机器人适用范围增广后,这个成本开始显现了。
这些厂商是有理由维护自家的编程环境的,一来工业机器人四十年前就开始规模化做了,那时还没有什么面向对象等现在广为熟知普遍认同的主流先进编程理念,二来萌芽阶段自家技术难免会和竞争对手不同,维护一个编程方式也无可厚非,三来因为他们的大客户往往也是传统的工业大客户,如大汽车厂商,这些客户求稳,自然不希望你机器人过几年就赶个热潮变换编程方式,搞得他们还得扔掉几十年的经验,重新花大钱培训学习。
标准化底层数据接口还有另外一个好处,就是直接给上层的应用级开发带来很多方便的地方。现在,大多数离线编程公司因为没办法拿到机器人底层数据接口,无法直接和机器人通信,所以程序调试起来很麻烦。同时,因为没有底层数据接口,离线编程应用等开发出来的功能也十分有限。这给编程人员和整个机器人应用的广泛普及都带来了很大的苦恼。
3.软件服务公司对机器人通用功能的完善,对工艺数据的处理。
机器人离线编程系统的研制和开发涉及的问题很多.包括多个领域的多个学科。目前工业领域的机器人离线编程软件种类也很繁多,软件的性能和功能也参差不齐,各有千秋。举例来说,国外离线编程软件发展较早,工业应用也比较成熟。像Robotmaster,RobotStudio,RobotWork等都是首屈一指的离线软件大佬,他们在国内外的行业应用中,都经过大量的实践检验。国内的工业机器人离线编程软件虽然起步较晚,但是因研发投入较大,重视程度较高,所以进步很大,典型的案例就是北京华航唯实机器人公司的RobotArt离线编程软件。其公司技术背景一是北航机器人研究所与CAD中心数十年的航空航天项目经验,二是数几十人的优秀研发团队,再加上背后财团的大力支持,商业化后短短两年就发展成国内离线编程软件的领导者,一骑绝尘,可谓成绩不俗。。

kuka3.jpg


离线编程技术是未来工业机器人发展的重点之一,但是,就目前的工业应用来说,软件需要改进的地方还有很多。为推动这项技术的进一步发展,也需要多个方面的研究工作,下面就以大家比较熟悉的国产离线编程软件RobotArt为例,来具体谈谈软件需要改进的地方:
a)多媒体技术在机器人离线编程中的研究和应用。友好的人机界面、直观的图形显示及生动的语言信息都是离线编程系统所需要的。在这些地方,RobotArt相比较外国软件,做的已经很好了。当然,这个和它是国产软件,有一群了解中国人软件使用习惯的程序猿有很大关系。良好的人机交互体验能减少软件使用者的上手和学习难度,同时也能增加用户的使用欲望,帮助设计人员更好的工作。
b)多传感器的融合技术的建模与仿真。随着机器人智能化的提高,传感器技术在机器人系统中的应用越来越重要。因而需要在离线编程系统中对多传感器进行建模,实现多传感器的通讯,执行基于多传感器的操作。对于传感器的支持,据我所知,RobotArt这方面的研究还比较少,国外同行做的也不尽如人意。机器人要想更智能化,传感器是一个非常关键的设备,其相关技术还需要大家共同努力,尽早突破。
c)各种规划算法的进一步研究。其包括路径规划、抓取规划和细微运动规划等。规划一方面要考虑到环境的复杂性、运动性和不确定性,另一方面又要充分注意计算的复杂性。我们知道,离线编程仿真软件,一个非常重要的功能就是,产线轨迹,轨迹规划和轨迹生成。为了减少不必要的成本,提高工作效率,我们使用软件更多的是出于设计方面的考虑。RobotArt软件可以支持多机器人的产线规划,支持单机器人的轨迹规划和生成,这大大满足了我们工程师在设计方面的要求。
d)错误检测和修复技术。系统执行过程中发生错误是难免的.应对系统的运行状态进行检测以监视错误的发生,并采用相应的修复技术。此外,最好能达到错误预报,以避免不可恢复动作错误的发生。RobotArt在程序仿真的时候,打开干涉检查功能,会对轨迹中的错误做初步检测。生成后置程序的时候,会对后置的机器人数据做最后的检测过滤,如果发现有不符合程序正常运行的数据,会拒绝生成后置代码。这样做的目的是最大程度减少,来自程序设计本身的失误。这一点需要给RobotArt的设计人员点个赞,做的真的很好。
在解决上述软件通用功能以后,对工艺数据的整理组织也是一项十分重要的工作。专家库的建立,能够把软件编程和机器人操作的门槛降低,让更多的非专业工作人员进入到智能化产线当中。机器人换人的目的不是让人失业,而是解放劳动力,让设计人员把精力和时间投入到更有价值,更有意义的工作中去。随着全球老龄化的到来,随着员工的更新换代,操作经验和技术工艺也面临传承不济和逐渐流失的风险。如果离线编程软件能做好工艺数据的沉淀和应用,也算是功德一件。对于企业的自身发展,也很有帮助。目前,各个离线编程厂家或多或少都有自己的工艺数据包,像RobotStudio等这样有本体机器人做依托的离线厂家,工艺数据自然丰富强大一些,没有本体依托的软件厂家,也在做相关方面的研究。RobotArt在东莞也建立起了自己的科学试验站,和多家国内本体厂商合作,专门从事打磨,焊接,去毛刺等工艺研究,现已积累大量可用于工业生产的工艺数据。
   总结:只有当上述三个问题得以突破,工业机器人才能摆脱目前只是作为一种机械设备在行业领域应用的现状,从而进入广泛的市场。不止是作为人类的替代或人类能力的延伸,而是成为一个真正能够独当一面的机器人。我们相信这一天的到来,将会是人类科技发展史上非常重要,辉煌的一个篇章。
文章来源:智造家特约专家提供
更多分享文章链接:http://bbs.imefuture.com/article/
628 浏览

科普 机器人常用十大编程语言

IT软件类 天黑请闭眼 2016-06-10 19:43 发表了文章 来自相关话题

在本文中,我们将会审视在机器人学中最流行的10种编程语言,深入探讨它们各自的优缺点以及使用和弃用它们的原因。

这实际上是个很有道理的问题——毕竟,如果你从不付诸实践,那为什么要花大量的时间和精力去学习一种新的编程语言呢?如果作为一名机器人学新人,你当然会想学习一种确实对你的职业生涯很有用的编程语言。






不幸的是,如果你去问一屋子的机器人学专家,“什么是机器人学中最好编程语言?”,你永远不会得到一个直接的答案。

电气工程师会从工业机器人技术这个角度给出不同的答案。计算机视觉程序员给出的答案会跟认知机器人专家给出的不一样。而且,每个人都会对什么是最好的编程语言有自己的看法。对于一个新入行正在试图决定要先学哪种语言的机器人学者来说,这是一个相当无用的答案。即使这是最现实的回答——因为它的确取决于你想要开发的应用程序和你在使用的系统。

对于机器人专家来说,最重要的事情是开拓你的”编程思维”,而不是精通一种特定的编程语言。从很多方面来说,从哪种编程语言开始学习真的无关紧要。你学习的每种语言提升了你的编程思维,拥有了这种思维,去学习一种新编程语言的时候会容易不少。

机器人学中最流行的10种编程语言

世界上有1500多种编程语言,都要学的话是太多了。目前,在机器人学中有这10种最流行的编程语言——如果你喜欢的不在这里,请在留言区告诉大家。对于机器人学,每种编程语言有不同的优点。我只是部分地按照重要程度从低到高对它们进行了排序。

10.BASIC/Pascal

BASIC和Pascal是我最早学过的两种编程语言。不过这并不是我把它们列在这里的原因。对于几种工业机器人语言,它们是基础,下面说明一下。BASIC是为初学者设计的(BASIC是缩写,BeginnersAll-PurposeSymbolicInstructionCode),它让初学者可以从一种非常简单的编程语言开始学习。Pascal旨在鼓励好的编程习惯,还引入了结构,例如指针,这让Pascal成为从BASIC到更复杂语言的一块“敲门砖”。如今,这两种语言如果要说是好的“日常使用”程序语言,那是有点过时了。不过如果你准备做很多底层编码或是想要熟悉一下其它工业机器人编程语言,学习一下还是有用的。

9.工业机器人编程语言

几乎每一个机器人制造商都开发了他们自己专有的机器人编程语言,这成了工业机器人行业中的一个问题。通过学习Pascal,你会熟悉它们中的一部分。但是每次开始使用新的机器人时,你还得学习一种新的编程语言。

最近几年,ROS行业已经开始提供更标准化的替代语言给程序员。但是如果是一个技术人员,你仍然更可能不得不使用制造商的编程语言。

8.LISP

LISP是世界上第二古老的编程语言(FORTRAN更古老,但只早了一年)。相比今天提到很多其它编程语言,它的应用并不广泛。不过在人工智能编程领域它还是相当重要的。ROS的一部分是用LISP写的,虽然你不需要掌握这个来使用ROS。

7.硬件描述语言(HDLs)

硬件描述语言一般是用来描述电气的编程方式。这些语言对于一些机器人专家来说是相当熟悉的,因为他们习惯FPGAs(FieldProgrammableGateArrays)编程。FPGAs能让你开发电子硬件而无需实际生产出一块硅芯片,对于一些开发来说,这是更快更简易的选择。如果你没有开发电子原型产品,你也许永远不会用HDLs。即便如此,还是有必要了解一下这种编程语言,因为它们和其它编程语言差别很大。一个重点:HDLs所有的操作是并发的,而不是基于处理器的编程语言的顺序操作。

6.Assembly

Assembly让你能在0和1数位上进行编程。基本上这是最底层的编程语言。就在最近,最底层的电子需要Assembly进行编程。随着Arduino和其它如微控制器的崛起,现在你可以使用C/C++在底层方便地编程了。这意味着Assembly对于大多数机器人专家来说也许会变得更不必要了。

5.MATLAB

MATLAB以及和它相关的开源资源,比如Octave,一些机器人工程师特别喜欢,它被用来分析数据和开发控制系统。还有一个非常流行的机器人工具箱——MATLAB。我知道一些仅仅使用MATLAB就能开发出整个机器人系统的专家。如果你想要分析数据,产生高级图像或是实施控制系统,你也许会想学习MATLAB。

4.C#/.NET

C#是微软提供的专用编程语言。我把C#/.NET放在这里,主要是因为微软机器人开发员工作包(MicrosoftRoboticsDeveloperStudio),这个包的主要开发语言是C#。如果你准备用这个系统,那么你很可能必须要用C#。 

3.Java

作为一位电子工程师,我总是对一些计算机科学学位课程将Java作为第一种编程语言让学生们学习感到惊讶。Java对程序员隐藏了底层存储功能,这让它比起一些语言(如C语言)来说,编写要容易些,但这也意味着你会更少地理解底层代码的运行逻辑。如果你有计算机科学背景并转到机器人学(很多人是这样的,特别是在研究领域),你也许已经学过Java。像C#和MATLAB,Java是一种解释性语言,这意味着它不会被编译成机器代码。相反,Java虚拟机在运行时解释指令。使用Java,理论上让你可以在不同的机器上运行相同的代码,这得感谢Java虚拟机。在实践中,这不总是可行的,有时会导致代码运行缓慢。但是Java在一部分机器人学中非常流行,因此你也许需要它。

2.Python

近年来,学习Python的人有一个巨大的回潮,特别是在机器人领域。其中一个原因可能是Python(和C++)是ROS中两种主要的编程语言。与Java不同,Python的重点是易用性,Python不需要很多时间来做常规的事情,如定义和强制转换变量类型。这些在编程里面本是很平常的事。另外,Python还有大量的免费库,这意味着当你需要实现一些基本的功能时不必“重新发明轮子”。而且因为Python允许与C/C++代码进行简单的绑定。这就意味着代码繁重部分的性能可以植入这些语言,从而避免性能损失。随着越来越多的电子产品开始支持“开箱即用”Python(与RaspberryPi一道),我们可能会在机器人中看到更多Python。

1.C/C++

最后我们到了排名第1的机器人编程语言!许多人认为C和C++对新入行的机器人学家是一个很好的起点。为什么?因为很多硬件库都使用这两种语言。这两种语言允许与低级别的硬件进行交互,允许实时性能,是非常成熟的编程语言。现如今,你可能会使用C++比C多,因为前者具有更多的功能。C++基本上是C的一种延伸。首先学一点C会很有用,特别是当你发现一个硬件库是用C编写的。C/C++并不是像Python或MATLAB那样简单易用。同样用C来实现相同的功能会需要大量时间,也将需要更多行代码。但是,由于机器人非常依赖实时性能,C和C++是最接近我们机器人专家“标准语言”的编程语言。
 
来源:网络 查看全部
在本文中,我们将会审视在机器人学中最流行的10种编程语言,深入探讨它们各自的优缺点以及使用和弃用它们的原因。

这实际上是个很有道理的问题——毕竟,如果你从不付诸实践,那为什么要花大量的时间和精力去学习一种新的编程语言呢?如果作为一名机器人学新人,你当然会想学习一种确实对你的职业生涯很有用的编程语言。

640111.webp_.jpg


不幸的是,如果你去问一屋子的机器人学专家,“什么是机器人学中最好编程语言?”,你永远不会得到一个直接的答案。

电气工程师会从工业机器人技术这个角度给出不同的答案。计算机视觉程序员给出的答案会跟认知机器人专家给出的不一样。而且,每个人都会对什么是最好的编程语言有自己的看法。对于一个新入行正在试图决定要先学哪种语言的机器人学者来说,这是一个相当无用的答案。即使这是最现实的回答——因为它的确取决于你想要开发的应用程序和你在使用的系统。

对于机器人专家来说,最重要的事情是开拓你的”编程思维”,而不是精通一种特定的编程语言。从很多方面来说,从哪种编程语言开始学习真的无关紧要。你学习的每种语言提升了你的编程思维,拥有了这种思维,去学习一种新编程语言的时候会容易不少。

机器人学中最流行的10种编程语言

世界上有1500多种编程语言,都要学的话是太多了。目前,在机器人学中有这10种最流行的编程语言——如果你喜欢的不在这里,请在留言区告诉大家。对于机器人学,每种编程语言有不同的优点。我只是部分地按照重要程度从低到高对它们进行了排序。

10.BASIC/Pascal

BASIC和Pascal是我最早学过的两种编程语言。不过这并不是我把它们列在这里的原因。对于几种工业机器人语言,它们是基础,下面说明一下。BASIC是为初学者设计的(BASIC是缩写,BeginnersAll-PurposeSymbolicInstructionCode),它让初学者可以从一种非常简单的编程语言开始学习。Pascal旨在鼓励好的编程习惯,还引入了结构,例如指针,这让Pascal成为从BASIC到更复杂语言的一块“敲门砖”。如今,这两种语言如果要说是好的“日常使用”程序语言,那是有点过时了。不过如果你准备做很多底层编码或是想要熟悉一下其它工业机器人编程语言,学习一下还是有用的。

9.工业机器人编程语言

几乎每一个机器人制造商都开发了他们自己专有的机器人编程语言,这成了工业机器人行业中的一个问题。通过学习Pascal,你会熟悉它们中的一部分。但是每次开始使用新的机器人时,你还得学习一种新的编程语言。

最近几年,ROS行业已经开始提供更标准化的替代语言给程序员。但是如果是一个技术人员,你仍然更可能不得不使用制造商的编程语言。

8.LISP

LISP是世界上第二古老的编程语言(FORTRAN更古老,但只早了一年)。相比今天提到很多其它编程语言,它的应用并不广泛。不过在人工智能编程领域它还是相当重要的。ROS的一部分是用LISP写的,虽然你不需要掌握这个来使用ROS。

7.硬件描述语言(HDLs)

硬件描述语言一般是用来描述电气的编程方式。这些语言对于一些机器人专家来说是相当熟悉的,因为他们习惯FPGAs(FieldProgrammableGateArrays)编程。FPGAs能让你开发电子硬件而无需实际生产出一块硅芯片,对于一些开发来说,这是更快更简易的选择。如果你没有开发电子原型产品,你也许永远不会用HDLs。即便如此,还是有必要了解一下这种编程语言,因为它们和其它编程语言差别很大。一个重点:HDLs所有的操作是并发的,而不是基于处理器的编程语言的顺序操作。

6.Assembly

Assembly让你能在0和1数位上进行编程。基本上这是最底层的编程语言。就在最近,最底层的电子需要Assembly进行编程。随着Arduino和其它如微控制器的崛起,现在你可以使用C/C++在底层方便地编程了。这意味着Assembly对于大多数机器人专家来说也许会变得更不必要了。

5.MATLAB

MATLAB以及和它相关的开源资源,比如Octave,一些机器人工程师特别喜欢,它被用来分析数据和开发控制系统。还有一个非常流行的机器人工具箱——MATLAB。我知道一些仅仅使用MATLAB就能开发出整个机器人系统的专家。如果你想要分析数据,产生高级图像或是实施控制系统,你也许会想学习MATLAB。

4.C#/.NET

C#是微软提供的专用编程语言。我把C#/.NET放在这里,主要是因为微软机器人开发员工作包(MicrosoftRoboticsDeveloperStudio),这个包的主要开发语言是C#。如果你准备用这个系统,那么你很可能必须要用C#。 

3.Java

作为一位电子工程师,我总是对一些计算机科学学位课程将Java作为第一种编程语言让学生们学习感到惊讶。Java对程序员隐藏了底层存储功能,这让它比起一些语言(如C语言)来说,编写要容易些,但这也意味着你会更少地理解底层代码的运行逻辑。如果你有计算机科学背景并转到机器人学(很多人是这样的,特别是在研究领域),你也许已经学过Java。像C#和MATLAB,Java是一种解释性语言,这意味着它不会被编译成机器代码。相反,Java虚拟机在运行时解释指令。使用Java,理论上让你可以在不同的机器上运行相同的代码,这得感谢Java虚拟机。在实践中,这不总是可行的,有时会导致代码运行缓慢。但是Java在一部分机器人学中非常流行,因此你也许需要它。

2.Python

近年来,学习Python的人有一个巨大的回潮,特别是在机器人领域。其中一个原因可能是Python(和C++)是ROS中两种主要的编程语言。与Java不同,Python的重点是易用性,Python不需要很多时间来做常规的事情,如定义和强制转换变量类型。这些在编程里面本是很平常的事。另外,Python还有大量的免费库,这意味着当你需要实现一些基本的功能时不必“重新发明轮子”。而且因为Python允许与C/C++代码进行简单的绑定。这就意味着代码繁重部分的性能可以植入这些语言,从而避免性能损失。随着越来越多的电子产品开始支持“开箱即用”Python(与RaspberryPi一道),我们可能会在机器人中看到更多Python。

1.C/C++

最后我们到了排名第1的机器人编程语言!许多人认为C和C++对新入行的机器人学家是一个很好的起点。为什么?因为很多硬件库都使用这两种语言。这两种语言允许与低级别的硬件进行交互,允许实时性能,是非常成熟的编程语言。现如今,你可能会使用C++比C多,因为前者具有更多的功能。C++基本上是C的一种延伸。首先学一点C会很有用,特别是当你发现一个硬件库是用C编写的。C/C++并不是像Python或MATLAB那样简单易用。同样用C来实现相同的功能会需要大量时间,也将需要更多行代码。但是,由于机器人非常依赖实时性能,C和C++是最接近我们机器人专家“标准语言”的编程语言。
 
来源:网络
845 浏览

智道分享-工业机器人的智能化 将何去何从?

设备硬件类 不见不散 2016-05-24 13:28 发表了文章 来自相关话题

   工业4.0,在中国这个世界级工厂的大地上正如火如荼的进行着。与此同时,国家和地方政府也不遗余力,大力扶持地方企业进行“机器换人”的无人化改造。我们都相信,这是一种不可阻挡的科技趋势,也是一场不可逆的有关更大更完全解放生产力的革命潮流。






    说到工业机器人,其实分类很多。但就我个人而言,接触最多的还是串联六轴机械臂,即俗称的六轴机器人。因为它自由度多,灵活性好,且通用性比较高,所以广受工业制造的青睐。现在的工业应用领域中,越来越多的6轴机器臂出现在不同的工作岗位上,用以代替人类从事各种各样繁重,危险,高负荷的工作。这些工作曾经因为会给工作人员带来难以预估的身体和精神伤害,而广受诟病,并且随着中国老龄化的浪潮的到来,也使企业主难以招到满意的员工。而现在,灵活稳定的机械臂的出现,刚好解决了这个问题。
在某些行业领域,6轴机械臂有广泛的应用,如家电行业,铸造行业;在某些行业领域,6轴机械臂有更广泛的应用,如汽车行业,电子行业。在这些拥有高附加值和标准化生产线的行业中,价格不菲的机器人的优势才能更好的发挥出来。
   1959年美国英格伯格和德沃尔(Devol)制造出世界上第一台工业机器人,机器人的历史真正开始。现如今,半个世纪过去了,工业机器人可谓走过了一段漫长的发展之路。从当初的实验室,到现在工业应用的各个行业,我们可以看到,机器人的应用已经越来越成熟。但是这种成熟,似乎也非常集中在某些行业,如电子生产,汽车制造等。
    为什么这么说呢?我们来看看智能手机的发展过程,从04年出现,到现在的非常普及乃至普通,其中有一个非常重要的事件,就是生产工艺的标准化。比如充电器接口,所有安卓智能手机的充电器接口都一样。这种设备的标准化,有一个很明显的好处,就是给用户带来了很多方便。出差,忘记带手机充电线了,不怕,我们可以很容易在周边借到一根充电线。标准化的优势,更多的体现在产品的普及过程,和无限的可能性发展。它能让更多的人参与进来,使用,设计,优化。这对一种产品的成熟至关重要。
工业机器人的发展如何呢?发展了半个多世纪,我们看到,它的成熟度和发展了几年的手机相比,实际上差距还是很大。工业机器人有自己的小圈子,本体厂家之间都是明显的竞争关系,他们的保护壁垒也更加厚实。他们对自己的机器人都十分自信,觉得它们能完成更多,更精细的工作。所以与他人合作的意愿就没有那么强烈,甚至是不愿意和他人交流。
   但是,我们看到工业机器人的行业应用还是有限的。机器人在使用的时候,也没有本体厂家们想象的那么好用。实际上,它还需要更多的设计来完善功能,增加使用的便利性和灵活性。
   进过60年的发展,到目前为止机器人的拥有量不到300万台,而中国一年的汽车产量2500万台。机器人作为一种产业或者产品,它几乎可以忽略不计。而原因在于,由于众多技术的限制使机器人只是局限在制造业很窄的一部分里。尽管如此,机器人在全球范围的热度却仍在持续升温。
   实际上,当前就制造业向“智造业”的转型发展已成为共识,广东近几年出现的“机器换人”的大潮更是一个典型代表。在产品生命周期缩短、消费者个性化需求提高的当代,传统的大规模流水线工业已经跟不上节奏——智能手机的更新换代的周期更是已经缩短到11个月,连汽车等高档消费品的更新周期也减少到了4年,灵活、快速及可以随时变化升级的生产线为工业机器人提出了新的要求,也提供了新的机遇。





   个人感觉,工业机器人的发展和应用,如果想更上一层楼,需要在以下方面做出改变:
1.本体厂商对设备精度和性能的提升,对传感设备的深层研发,并构架出闭环控制系统。
工业机器人普遍能达到低于0.1毫米的运动精度(指重复运动到点精度),抓取重达一吨的物体,伸展也可达三四米。这样的性能虽不一定能轻易完成苹果手机上一些“疯狂”的加工要求,但对绝大部分的工业应用来说,是足以圆满完成任务。
随着机器人的性能逐渐提升,以前一些不可能的任务也变得可行起来(如激光焊接或切割,曾需要专门的高精度设备来指导激光的走向,但随着机器人精度的提升,现在也变得可依赖机器人本身的准确运动来代替了)。
但相比传统高端设备,如高精度数控机床,激光校准设备,或特殊环境(高温或特低温)设备等,工业机器人尚力不能及。
    工业机器人是工业智能化的一个标志,它不仅体现在机械控制系统的智能编程上,还需要外部传感设备支持。为了检测作业对象及环境或机器人与它们的关系,在机器人上安装了触觉传感器、视觉传感器、力觉传感器、接近觉传感器、超声波传感器和听觉传感器,大大改善了机器人工作状况,使其能够更充分地完成复杂的工作。由于外部传感器为集多种学科于一身的产品,有些方面还在探索之中,随着外部传感器的进一步完善,机器人的功能越来越强大,将在许多领域为人类做出更大贡献。
2.本体厂商对数据底层接口的开放,本体厂商之间标准化接口和编程语言。
传统机器人的工作本质就是不断地走一个个的路径点,同时接收或设置外围的I/O信号(老和其他设置如夹具,输送线等合作)。而指导机器人这么做得过程,就是机器人编程。几乎每一家领先公司都有自家的编程语言和环境,从而需要机器人操作者参加学习培训。当机器人适用范围增广后,这个成本开始显现了。
这些厂商是有理由维护自家的编程环境的,一来工业机器人四十年前就开始规模化做了,那时还没有什么面向对象等现在广为熟知普遍认同的主流先进编程理念,二来萌芽阶段自家技术难免会和竞争对手不同,维护一个编程方式也无可厚非,三来因为他们的大客户往往也是传统的工业大客户,如大汽车厂商,这些客户求稳,自然不希望你机器人过几年就赶个热潮变换编程方式,搞得他们还得扔掉几十年的经验,重新花大钱培训学习。
标准化底层数据接口还有另外一个好处,就是直接给上层的应用级开发带来很多方便的地方。现在,大多数离线编程公司因为没办法拿到机器人底层数据接口,无法直接和机器人通信,所以程序调试起来很麻烦。同时,因为没有底层数据接口,离线编程应用等开发出来的功能也十分有限。这给编程人员和整个机器人应用的广泛普及都带来了很大的苦恼。
3.软件服务公司对机器人通用功能的完善,对工艺数据的处理。
机器人离线编程系统的研制和开发涉及的问题很多.包括多个领域的多个学科。目前工业领域的机器人离线编程软件种类也很繁多,软件的性能和功能也参差不齐,各有千秋。举例来说,国外离线编程软件发展较早,工业应用也比较成熟。像Robotmaster,RobotStudio,RobotWork等都是首屈一指的离线软件大佬,他们在国内外的行业应用中,都经过大量的实践检验。国内的工业机器人离线编程软件虽然起步较晚,但是因研发投入较大,重视程度较高,所以进步很大,典型的案例就是北京华航唯实机器人公司的RobotArt离线编程软件。其公司技术背景一是北航机器人研究所与CAD中心数十年的航空航天项目经验,二是数几十人的优秀研发团队,再加上背后财团的大力支持,商业化后短短两年就发展成国内离线编程软件的领导者,一骑绝尘,可谓成绩不俗。。






离线编程技术是未来工业机器人发展的重点之一,但是,就目前的工业应用来说,软件需要改进的地方还有很多。为推动这项技术的进一步发展,也需要多个方面的研究工作,下面就以大家比较熟悉的国产离线编程软件RobotArt为例,来具体谈谈软件需要改进的地方:
a)多媒体技术在机器人离线编程中的研究和应用。友好的人机界面、直观的图形显示及生动的语言信息都是离线编程系统所需要的。在这些地方,RobotArt相比较外国软件,做的已经很好了。当然,这个和它是国产软件,有一群了解中国人软件使用习惯的程序猿有很大关系。良好的人机交互体验能减少软件使用者的上手和学习难度,同时也能增加用户的使用欲望,帮助设计人员更好的工作。
b)多传感器的融合技术的建模与仿真。随着机器人智能化的提高,传感器技术在机器人系统中的应用越来越重要。因而需要在离线编程系统中对多传感器进行建模,实现多传感器的通讯,执行基于多传感器的操作。对于传感器的支持,据我所知,RobotArt这方面的研究还比较少,国外同行做的也不尽如人意。机器人要想更智能化,传感器是一个非常关键的设备,其相关技术还需要大家共同努力,尽早突破。
c)各种规划算法的进一步研究。其包括路径规划、抓取规划和细微运动规划等。规划一方面要考虑到环境的复杂性、运动性和不确定性,另一方面又要充分注意计算的复杂性。我们知道,离线编程仿真软件,一个非常重要的功能就是,产线轨迹,轨迹规划和轨迹生成。为了减少不必要的成本,提高工作效率,我们使用软件更多的是出于设计方面的考虑。RobotArt软件可以支持多机器人的产线规划,支持单机器人的轨迹规划和生成,这大大满足了我们工程师在设计方面的要求。
d)错误检测和修复技术。系统执行过程中发生错误是难免的.应对系统的运行状态进行检测以监视错误的发生,并采用相应的修复技术。此外,最好能达到错误预报,以避免不可恢复动作错误的发生。RobotArt在程序仿真的时候,打开干涉检查功能,会对轨迹中的错误做初步检测。生成后置程序的时候,会对后置的机器人数据做最后的检测过滤,如果发现有不符合程序正常运行的数据,会拒绝生成后置代码。这样做的目的是最大程度减少,来自程序设计本身的失误。这一点需要给RobotArt的设计人员点个赞,做的真的很好。
在解决上述软件通用功能以后,对工艺数据的整理组织也是一项十分重要的工作。专家库的建立,能够把软件编程和机器人操作的门槛降低,让更多的非专业工作人员进入到智能化产线当中。机器人换人的目的不是让人失业,而是解放劳动力,让设计人员把精力和时间投入到更有价值,更有意义的工作中去。随着全球老龄化的到来,随着员工的更新换代,操作经验和技术工艺也面临传承不济和逐渐流失的风险。如果离线编程软件能做好工艺数据的沉淀和应用,也算是功德一件。对于企业的自身发展,也很有帮助。目前,各个离线编程厂家或多或少都有自己的工艺数据包,像RobotStudio等这样有本体机器人做依托的离线厂家,工艺数据自然丰富强大一些,没有本体依托的软件厂家,也在做相关方面的研究。RobotArt在东莞也建立起了自己的科学试验站,和多家国内本体厂商合作,专门从事打磨,焊接,去毛刺等工艺研究,现已积累大量可用于工业生产的工艺数据。
   总结:只有当上述三个问题得以突破,工业机器人才能摆脱目前只是作为一种机械设备在行业领域应用的现状,从而进入广泛的市场。不止是作为人类的替代或人类能力的延伸,而是成为一个真正能够独当一面的机器人。我们相信这一天的到来,将会是人类科技发展史上非常重要,辉煌的一个篇章。
文章来源:智造家特约专家提供
更多分享文章链接:http://bbs.imefuture.com/article/ 查看全部
   工业4.0,在中国这个世界级工厂的大地上正如火如荼的进行着。与此同时,国家和地方政府也不遗余力,大力扶持地方企业进行“机器换人”的无人化改造。我们都相信,这是一种不可阻挡的科技趋势,也是一场不可逆的有关更大更完全解放生产力的革命潮流。

kuka1.jpg


    说到工业机器人,其实分类很多。但就我个人而言,接触最多的还是串联六轴机械臂,即俗称的六轴机器人。因为它自由度多,灵活性好,且通用性比较高,所以广受工业制造的青睐。现在的工业应用领域中,越来越多的6轴机器臂出现在不同的工作岗位上,用以代替人类从事各种各样繁重,危险,高负荷的工作。这些工作曾经因为会给工作人员带来难以预估的身体和精神伤害,而广受诟病,并且随着中国老龄化的浪潮的到来,也使企业主难以招到满意的员工。而现在,灵活稳定的机械臂的出现,刚好解决了这个问题。
在某些行业领域,6轴机械臂有广泛的应用,如家电行业,铸造行业;在某些行业领域,6轴机械臂有更广泛的应用,如汽车行业,电子行业。在这些拥有高附加值和标准化生产线的行业中,价格不菲的机器人的优势才能更好的发挥出来。
   1959年美国英格伯格和德沃尔(Devol)制造出世界上第一台工业机器人,机器人的历史真正开始。现如今,半个世纪过去了,工业机器人可谓走过了一段漫长的发展之路。从当初的实验室,到现在工业应用的各个行业,我们可以看到,机器人的应用已经越来越成熟。但是这种成熟,似乎也非常集中在某些行业,如电子生产,汽车制造等。
    为什么这么说呢?我们来看看智能手机的发展过程,从04年出现,到现在的非常普及乃至普通,其中有一个非常重要的事件,就是生产工艺的标准化。比如充电器接口,所有安卓智能手机的充电器接口都一样。这种设备的标准化,有一个很明显的好处,就是给用户带来了很多方便。出差,忘记带手机充电线了,不怕,我们可以很容易在周边借到一根充电线。标准化的优势,更多的体现在产品的普及过程,和无限的可能性发展。它能让更多的人参与进来,使用,设计,优化。这对一种产品的成熟至关重要。
工业机器人的发展如何呢?发展了半个多世纪,我们看到,它的成熟度和发展了几年的手机相比,实际上差距还是很大。工业机器人有自己的小圈子,本体厂家之间都是明显的竞争关系,他们的保护壁垒也更加厚实。他们对自己的机器人都十分自信,觉得它们能完成更多,更精细的工作。所以与他人合作的意愿就没有那么强烈,甚至是不愿意和他人交流。
   但是,我们看到工业机器人的行业应用还是有限的。机器人在使用的时候,也没有本体厂家们想象的那么好用。实际上,它还需要更多的设计来完善功能,增加使用的便利性和灵活性。
   进过60年的发展,到目前为止机器人的拥有量不到300万台,而中国一年的汽车产量2500万台。机器人作为一种产业或者产品,它几乎可以忽略不计。而原因在于,由于众多技术的限制使机器人只是局限在制造业很窄的一部分里。尽管如此,机器人在全球范围的热度却仍在持续升温。
   实际上,当前就制造业向“智造业”的转型发展已成为共识,广东近几年出现的“机器换人”的大潮更是一个典型代表。在产品生命周期缩短、消费者个性化需求提高的当代,传统的大规模流水线工业已经跟不上节奏——智能手机的更新换代的周期更是已经缩短到11个月,连汽车等高档消费品的更新周期也减少到了4年,灵活、快速及可以随时变化升级的生产线为工业机器人提出了新的要求,也提供了新的机遇。
kuka2.jpg


   个人感觉,工业机器人的发展和应用,如果想更上一层楼,需要在以下方面做出改变:
1.本体厂商对设备精度和性能的提升,对传感设备的深层研发,并构架出闭环控制系统。
工业机器人普遍能达到低于0.1毫米的运动精度(指重复运动到点精度),抓取重达一吨的物体,伸展也可达三四米。这样的性能虽不一定能轻易完成苹果手机上一些“疯狂”的加工要求,但对绝大部分的工业应用来说,是足以圆满完成任务。
随着机器人的性能逐渐提升,以前一些不可能的任务也变得可行起来(如激光焊接或切割,曾需要专门的高精度设备来指导激光的走向,但随着机器人精度的提升,现在也变得可依赖机器人本身的准确运动来代替了)。
但相比传统高端设备,如高精度数控机床,激光校准设备,或特殊环境(高温或特低温)设备等,工业机器人尚力不能及。
    工业机器人是工业智能化的一个标志,它不仅体现在机械控制系统的智能编程上,还需要外部传感设备支持。为了检测作业对象及环境或机器人与它们的关系,在机器人上安装了触觉传感器、视觉传感器、力觉传感器、接近觉传感器、超声波传感器和听觉传感器,大大改善了机器人工作状况,使其能够更充分地完成复杂的工作。由于外部传感器为集多种学科于一身的产品,有些方面还在探索之中,随着外部传感器的进一步完善,机器人的功能越来越强大,将在许多领域为人类做出更大贡献。
2.本体厂商对数据底层接口的开放,本体厂商之间标准化接口和编程语言。
传统机器人的工作本质就是不断地走一个个的路径点,同时接收或设置外围的I/O信号(老和其他设置如夹具,输送线等合作)。而指导机器人这么做得过程,就是机器人编程。几乎每一家领先公司都有自家的编程语言和环境,从而需要机器人操作者参加学习培训。当机器人适用范围增广后,这个成本开始显现了。
这些厂商是有理由维护自家的编程环境的,一来工业机器人四十年前就开始规模化做了,那时还没有什么面向对象等现在广为熟知普遍认同的主流先进编程理念,二来萌芽阶段自家技术难免会和竞争对手不同,维护一个编程方式也无可厚非,三来因为他们的大客户往往也是传统的工业大客户,如大汽车厂商,这些客户求稳,自然不希望你机器人过几年就赶个热潮变换编程方式,搞得他们还得扔掉几十年的经验,重新花大钱培训学习。
标准化底层数据接口还有另外一个好处,就是直接给上层的应用级开发带来很多方便的地方。现在,大多数离线编程公司因为没办法拿到机器人底层数据接口,无法直接和机器人通信,所以程序调试起来很麻烦。同时,因为没有底层数据接口,离线编程应用等开发出来的功能也十分有限。这给编程人员和整个机器人应用的广泛普及都带来了很大的苦恼。
3.软件服务公司对机器人通用功能的完善,对工艺数据的处理。
机器人离线编程系统的研制和开发涉及的问题很多.包括多个领域的多个学科。目前工业领域的机器人离线编程软件种类也很繁多,软件的性能和功能也参差不齐,各有千秋。举例来说,国外离线编程软件发展较早,工业应用也比较成熟。像Robotmaster,RobotStudio,RobotWork等都是首屈一指的离线软件大佬,他们在国内外的行业应用中,都经过大量的实践检验。国内的工业机器人离线编程软件虽然起步较晚,但是因研发投入较大,重视程度较高,所以进步很大,典型的案例就是北京华航唯实机器人公司的RobotArt离线编程软件。其公司技术背景一是北航机器人研究所与CAD中心数十年的航空航天项目经验,二是数几十人的优秀研发团队,再加上背后财团的大力支持,商业化后短短两年就发展成国内离线编程软件的领导者,一骑绝尘,可谓成绩不俗。。

kuka3.jpg


离线编程技术是未来工业机器人发展的重点之一,但是,就目前的工业应用来说,软件需要改进的地方还有很多。为推动这项技术的进一步发展,也需要多个方面的研究工作,下面就以大家比较熟悉的国产离线编程软件RobotArt为例,来具体谈谈软件需要改进的地方:
a)多媒体技术在机器人离线编程中的研究和应用。友好的人机界面、直观的图形显示及生动的语言信息都是离线编程系统所需要的。在这些地方,RobotArt相比较外国软件,做的已经很好了。当然,这个和它是国产软件,有一群了解中国人软件使用习惯的程序猿有很大关系。良好的人机交互体验能减少软件使用者的上手和学习难度,同时也能增加用户的使用欲望,帮助设计人员更好的工作。
b)多传感器的融合技术的建模与仿真。随着机器人智能化的提高,传感器技术在机器人系统中的应用越来越重要。因而需要在离线编程系统中对多传感器进行建模,实现多传感器的通讯,执行基于多传感器的操作。对于传感器的支持,据我所知,RobotArt这方面的研究还比较少,国外同行做的也不尽如人意。机器人要想更智能化,传感器是一个非常关键的设备,其相关技术还需要大家共同努力,尽早突破。
c)各种规划算法的进一步研究。其包括路径规划、抓取规划和细微运动规划等。规划一方面要考虑到环境的复杂性、运动性和不确定性,另一方面又要充分注意计算的复杂性。我们知道,离线编程仿真软件,一个非常重要的功能就是,产线轨迹,轨迹规划和轨迹生成。为了减少不必要的成本,提高工作效率,我们使用软件更多的是出于设计方面的考虑。RobotArt软件可以支持多机器人的产线规划,支持单机器人的轨迹规划和生成,这大大满足了我们工程师在设计方面的要求。
d)错误检测和修复技术。系统执行过程中发生错误是难免的.应对系统的运行状态进行检测以监视错误的发生,并采用相应的修复技术。此外,最好能达到错误预报,以避免不可恢复动作错误的发生。RobotArt在程序仿真的时候,打开干涉检查功能,会对轨迹中的错误做初步检测。生成后置程序的时候,会对后置的机器人数据做最后的检测过滤,如果发现有不符合程序正常运行的数据,会拒绝生成后置代码。这样做的目的是最大程度减少,来自程序设计本身的失误。这一点需要给RobotArt的设计人员点个赞,做的真的很好。
在解决上述软件通用功能以后,对工艺数据的整理组织也是一项十分重要的工作。专家库的建立,能够把软件编程和机器人操作的门槛降低,让更多的非专业工作人员进入到智能化产线当中。机器人换人的目的不是让人失业,而是解放劳动力,让设计人员把精力和时间投入到更有价值,更有意义的工作中去。随着全球老龄化的到来,随着员工的更新换代,操作经验和技术工艺也面临传承不济和逐渐流失的风险。如果离线编程软件能做好工艺数据的沉淀和应用,也算是功德一件。对于企业的自身发展,也很有帮助。目前,各个离线编程厂家或多或少都有自己的工艺数据包,像RobotStudio等这样有本体机器人做依托的离线厂家,工艺数据自然丰富强大一些,没有本体依托的软件厂家,也在做相关方面的研究。RobotArt在东莞也建立起了自己的科学试验站,和多家国内本体厂商合作,专门从事打磨,焊接,去毛刺等工艺研究,现已积累大量可用于工业生产的工艺数据。
   总结:只有当上述三个问题得以突破,工业机器人才能摆脱目前只是作为一种机械设备在行业领域应用的现状,从而进入广泛的市场。不止是作为人类的替代或人类能力的延伸,而是成为一个真正能够独当一面的机器人。我们相信这一天的到来,将会是人类科技发展史上非常重要,辉煌的一个篇章。
文章来源:智造家特约专家提供
更多分享文章链接:http://bbs.imefuture.com/article/