在本文中,咱们将会审视在机器人学习中最盛行的10种编程言语,深入探讨它们各自的优缺点以及运用和弃用它们的原因。
这实践上是个很有道理的问题——究竟,假如你从不付诸实践,那为什么要花许多的时刻和精力去学习一种新的编程言语呢?假如作为一名机器人学新人,你当然会想学习一种确实对你的职业生涯很有用的编程言语。
不幸的是,假如你去问一屋子的机器人学专家,“什么是机器人学中最好编程言语?”,你永久不会得到一个直接的答案。
电气工程师会从工业机器人技能这个视点给出不同的答案。计算机视觉程序员给出的答案会跟认知机器人专家给出的不一样。并且,每个人都会对什么是最好的编程言语有自己的观点。关于一个新入行正在企图决定要先学哪种言语的机器人学者来说,这是一个适当无用的答案。即便这是最实践的答复——因为它确实取决于你想要开发的运用程序和你在运用的体系。
关于机器人专家来说,最重要的工作是开辟你的”编程思想”,而不是通晓一种特定的编程言语。从许多方面来说,从哪种编程言语开端学习真的无关紧要。你学习的每种言语提升了你的编程思想,具有了这种思想,去学习一种新编程言语的时分会简略不少。
国际上有1500多种编程言语,都要学的话是太多了。现在,在机器人学中有这10种最盛行的编程言语——假如你喜爱的不在这儿,请在留言区告知咱们。关于机器人学,每种编程言语有不同的长处。我只是部分地依照重要程度从低到高对它们进行了排序。
10、BASIC/Pascal
BASIC和Pascal是我最早学过的两种编程言语。不过这并不是我把它们列在这儿的原因。关于几种工业机器人言语,它们是根底,下面阐明一下。 BASIC是为初学者规划的(BASIC是缩写,BeginnersAll-PurposeSymbolicInstrucTIonCode),它让初学者能够从一种十分简略的编程言语开端学习。Pascal旨在鼓舞好的编程习气,还引进了结构,例如指针,这让Pascal成为从BAS%&&&&&%到更杂乱言语的一块“敲门砖”。现在,这两种言语假如要说是好的“日常运用”程序言语,那是有点过期了。不过假如你预备做许多底层编码或是想要了解一下其它工业机器人编程言语,学习一下仍是有用的。
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放在这儿,首要是因为微软机器人开发员工作包(Microsoft RoboTIcs Developer Studio),这个包的首要开发言语是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。
注:The Raspberry Pi FoundaTIon:英国一个小型的慈悲安排,建立的主旨在于推行科技,而非以出售技能来盈利。
1、C/C++
最终咱们到了排名第1的机器人编程言语!许多人以为C和C++对新入行的机器人学家是一个很好的起点。为什么?因为许多硬件库都运用这两种言语。这两种言语答应与初级其他硬件进行交互,答应实时功用,是十分老练的编程言语。现现在,你或许会运用C++比C多,因为前者具有更多的功用。C++根本上是C的一种延伸。首要学一点C会很有用,特别是当你发现一个硬件库是用C编写的。C/C++并不是像Python或MATLAB那样简略易用。相同用C来完成相同的功用会需求许多时刻,也将需求更多行代码。可是,因为机器人十分依靠实时功用,C和C++是最接近咱们机器人专家“规范言语”的编程言语。