文档章节

进行人工智能机器人研发,应该选择哪种编程语言? 

编辑部的故事
 编辑部的故事
发布于 2017/12/04 18:40
字数 2385
阅读 3727
收藏 30
点赞 3
评论 17

这个问题大多数新的机器人专家在他们的职业生涯中至少会思考一次。不幸的是,这也是一个没有直接答案的问题。

如果你在 Stack Overflow、Quora、Trossen、Reddit 或 Research Gate 等机器人专家或者社区论坛上提问“机器人最好的编程语言是什么?” 你会得到不同的答案。正如我们在文章中讨论的基本机器人技能一样,对于机器人学家来说最关键的是建立“ 编程思维 ”,而不是用一种特定的语言来衡量。在很多方面,你首先学习哪种编程语言并不重要,重要的是在通过编程思维来不断提高自身的技能。

回归主题,在本文中,我们将介绍机器人研发中使用的十大最流行的编程语言。我们将讨论他们的缺点和优点,以及使用或者不使用它们的理由。世界上有超过1500种编程语言你可以学习。下面列出的是目前机器人中十种最流行的编程语言。每种语言都有不同的优势,作者根据自身经验,按照优先级从低到高排序。

10. BASIC / Pascal

BASIC和Pascal是我曾经学过了的两种主要的编程语言。但这并不是我把它们放在榜单上的原因。相反,它们是运用于工业机器人编程上很好的语言。BASIC 针对初学者设计,这使它可以成为开发者简单的入门语言。

Pascal的目的是提高编程实践,并提出像指针这样的构建,这使得它成为一个从 BASIC 到更多编程语言的奠基石。如今,这两种语言对于“日常运用”来说有些过时了。但是普通情况下,您要进行相当程度的底层编码,或者需要熟悉其他工业机器人语言,那么了解它们会对您有所帮助。

9.工业机器人语言

实际上,每一个机器人制造商都已经建立了自己特定的限制性机器人编程语言,这一直是工业机器人领域的一个问题。通过学习Pascal,你会熟悉他们的一部分。但是,当你开始在另一个机器人平台编码时,都必须使用另一种语言。

如机械臂领域实力强劲的 ABB 公司,用的语言系统叫做 RAPID;来自于德国的 KUKA,语言和公司名字一样也叫做 KUKA;Comau 利用 PDL2;Yaskawa 利用 Advise 和 Kawasaki 利用 AS。在这一点上,Fanuc 机器人利用 Karel,Staubli 机器人利用 VAL3 和 Widespread Robots 利用 URScript。 

最近,像 ROS 这样的行业已经开始为程序员提供更加标准化的语言选择。尽管如此,作为一个技术人员,你仍需要使用制造商的编程语言。

8. LISP

LISP是世界上第二古老的编程语言(FORTRAN更为古老,但只差一年)。相比与其他语言,它使用得并不是很广泛,但是在人工智能编程领域还是很最重要的。ROS的一部分是用 LISP 编写的,事实上,你并不需要知ROS是怎么编写的。

7.硬件描述语言(HDL)

硬件描述语言基本上是描绘电气的编程方法。这些语言对于一些机器人专家来说是非常普遍的,因为他们习惯用 FPGAs(Field Programmable Gate Arrays)编程。FPGA可以不用硅芯片便能开发出电子硬件,这使得它们成为一种开发的更快,更低要求的改进选择。如果你不模拟硬件,你可能永远不会使用HDL。

存在即是合理,你还是需要了解一下HDL的,并且它们和其他编程语言也不太一样。HDL的所有的操作都是并行完成的,而不是像基于处理器的语言那样顺序操作。

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 Studio Studio)提供的,微软机器人工程师工作室将其作为基本语言。如果你将使用这个框架,你就必须学习 C#。尽管如此,首先学习C / C ++,也可以提高自身的编码能力。

3. Java

作为一个电子设计工程师,我很惊讶一些软件工程学院将 JAVA 作为他们第一个学习的编程语言。

Java把对程序员的底层存储功能“隐藏了”,这使得对Java程序的要求不那么高,而且也意味着你对代码的处理方式了解得不多。从软件工程的基础到探索机器人的未来,你很可能已经学习了Java。

像C#和MATLAB一样,Java是一种解释性语言,这意味着它不会被合并到机器语言代码中。相反,Java虚拟机在运行时解释指令。理论上来说,基于Java虚拟机,使用Java可以在不同机器上使用类似的代码。但实际上,这并不普遍使用,有时会导致代码运行缓慢。但是Java编程语言在机器人研究中非常流行,所以你可能需要它。

2. Python

在机器人研究领域,Python 占据了重要地位。其中一个原因很可能是 Python(和C ++)是ROS中的两种主要编程语言。像Java一样,它是一种解释性语言。但也不同于Java,Python 语言主要集中在可用性上。Python不需要花大量的时间来做常规的事情,例如定义和强制转换变量类型。此外,还有大量免费的库,这意味着当你不得不实现一些基本的功能时,你不需要“重新造轮子”。而且由于它允许与C / C ++代码之间可以进行简单的绑定,这意味着执行代码繁重部分的性能可以植入这些语言,从而避免性能损失。随着越来越多的电子产品开始使用“开箱即用”的Python(像Raspberry Pi那样),我们可能会在机器人中看到更多的Python。

1. C/C++

机器人研发第一编程语言—c++。许多人都认为 C 和 C ++ 对机器人科学家来说是一个很好的开端。为什么?因为相当多的硬件库使用这些语言。它们适用于低级别的硬件,允许实时性能,是非常成熟的编程语言。

现在,你可能会更多地使用C ++,因为C++具有更强大的实用性。C ++是C的一个扩展。从基础的C学习,你也可以得到很多收获,尤其是当你发现一个硬件库是用 C 编写的时候。C / C ++不像Python或MATLAB那么容易学习的。使用C来执行类似的功能可能需要相当长的时间,并且需要更多的代码。尽管如此,但机器人极其依赖实时性能,所以它们仍然是机器人科学家心中的“标准”机器人编程语言。

那学习哪一个比较好呢?

我列举了机器人十大热门编程语言,并不意味着你每一个都需要去学习。最重要的是发现一种适合你的语言,当然,也适用于你的机器人硬件。您需要一种可以让你快速有效地创建程序的语言,你可以更专注于实用性。

因此,我建议先学习Python。这是我根据自己的自身经验来说,当然你也可以先学习适合你的语言。无论如何,Python是一门简单易学的语言它有许多有效的库可供学习,而且功能非常强大。我听过很多经验丰富的程序员在几天内就学会了Python,并且很快就运用到了大部分编程需求里面。在你学会了 Python 之后,我会建议学习 C,再由C ++来牵引。因为你需要将它与机器人硬件驱动程序的巨大主导接口进行交互。

编译自:http://datalific.xyz/10-best-programming-language-for-robotics-java-c-c-python/

© 著作权归作者所有

共有 人打赏支持
编辑部的故事

编辑部的故事

粉丝 1085
博文 231
码字总数 392922
作品 0
深圳
运营/编辑
加载中

评论(17)

大连馋师
大连馋师
C 和 C++ 越来越不是一回事了,还放一起不好;
另: 不应该是Python排第一么?
jscoder
jscoder
不是该有go吗
深蓝苹果
深蓝苹果

引用来自“大美bot”的评论

狗屎文。。。。
的确
喻恒春
喻恒春
这种语言应该具有:

对运算符重载支持良好, Python 是个好选择.

代码易于阅读和理解, 代码的字面意思就是代码的功能, 虽然这受库实现的代码写法, 但语言的语法特性影响也很大.
zzeric
zzeric
python已经是行业标准了
小果汁儿
小果汁儿
为什么这篇资讯的评论不能点赞?我想给评论“狗屎文”的玩家点赞。文章狗屎,不能怪小便。此文作者目测在娘胎时营养不良,造成脑子发育不完整,活脱脱一半脑。
simcyber
simcyber
php是世界上最好的语言
山雨欲来
山雨欲来

引用来自“luckyzong”的评论

JAVA是解释型语言?
是的 从jvm角度来看是解释型语言,从javac角度看确实需要编译,所以java还是一个很牛逼的语言
梅开源
梅开源
恕我直言wolfram才是王道。
机器人研发十大热门编程语言

机器人研发十大热门编程语言 Ronny 3小时前暂无评论 阅读 40 次 不死 Java、不朽 C/C ++、新贵 Python进行人工智能机器人研发,应该选择哪种编程语言?这是很多机器人专家在自身的职业生涯中...

Ronny ⋅ 2017/12/23 ⋅ 0

机器人研发十大热门编程语言:不死 Java、不朽 C/C ++、新贵 Python

作者:SlickViral 流水的编程语言,铁打的 Java、C/C++。 进行人工智能机器人研发,应该选择哪种编程语言? 这是很多机器人专家在自身的职业生涯中都会存在的一个入门级思考。毕竟,在学习一...

小数点 ⋅ 2017/11/29 ⋅ 0

机器人研发十大热门编程语言:不死 Java、不朽 C/C ++、新贵 Python

流水的编程语言,铁打的 Java、C/C++。 进行人工智能机器人研发,应该选择哪种编程语言? 这是很多机器人专家在自身的职业生涯中都会存在的一个入门级思考。毕竟,在学习一门编程语言时,需要...

嘿你好夏天 ⋅ 2017/11/28 ⋅ 0

进行人工智能机器人研发,应该选择哪种编程语言?

这个问题大多数新的机器人专家在他们的职业生涯中至少会思考一次。不幸的是,这也是一个没有直接答案的问题。 如果你在 Stack Overflow、Quora、Trossen、Reddit 或 Research Gate 等机器人专...

开源中国 ⋅ 2017/12/05 ⋅ 0

编程猫获新一轮 3 亿融资:做好少儿编程教育基础设施!

北京时间 5 月 25 日,在线少儿编程平台编程猫正式对外宣布获得新一轮 3 亿元人民币融资,本次由招银国际领投,新京报与北京文投集团旗下的山水创投及寻找中国创客导师基金、松禾资本跟投。编...

csdnnews ⋅ 05/28 ⋅ 0

一文看懂国内人工智能行业产业链全景(必收藏)

全球共有近千家人工智能公司遍及62个国家的十余个产业,国内涉及人工智能领域的公司也早已破百。除了「机器学习」、「模式识别」和「神经网络」这些晦涩的词汇和各种层出不穷的借势营销,这个...

u011006622 ⋅ 2017/11/06 ⋅ 0

Giiso写作机器人1秒完成文章创作,人类写作要下岗?

现如今人工智能的发展极为迅速,不仅仅能够在高大上的围棋界横扫人类棋手,而且还可以在更多普遍行业领域如人类般工作。 事实上,这篇文章是深圳市智搜(Giiso)信息技术有限公司自主研发的写...

giiso智搜 ⋅ 05/24 ⋅ 0

历数2017年那些给过人类 “好看” 的AI

  【IT168 评论】AlphaGo与李世石一战成名,自此,人工智能热度一再掀高。截至目前,科技界多位大佬前后曾12次发表声明警惕人们“人工智能可能带来的毁灭性灾害”,其中,特斯拉的CEO马斯克...

it168网站 ⋅ 2017/11/03 ⋅ 0

2018年被称为中国人工智能元年,人工智能技术已经成为国家战略,在2017的一年里,人工智能技术得到重视,已逐渐渗透到其它行业,无人超市、人脸识别、自动驾驶、智能家居等“黑科技”早已成为各大媒体的头

2018年被称为中国人工智能元年,人工智能技术已经成为国家战略,在2017的一年里,人工智能技术得到重视,已逐渐渗透到其它行业,无人超市、人脸识别、自动驾驶、智能家居等“黑科技”早已成为...

Python燕大侠 ⋅ 05/15 ⋅ 0

「人工智能」专业来了,CMU的人工智能专业本科生都学什么课?

雷锋网 AI 科技评论按:这是一个 AI 爆发的时代,从研究,到应用,再到教育。 随着机器学习,尤其是深度学习在许多复杂问题中大获成功,大量企业开始把机器学习技术用在自己的业务中,相关专...

杨晓凡 ⋅ 05/16 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Python爬虫,抓取淘宝商品评论内容

作为一个资深吃货,网购各种零食是很频繁的,但是能否在浩瀚的商品库中找到合适的东西,就只能参考评论了!今天给大家分享用python做个抓取淘宝商品评论的小爬虫! 思路 我们就拿“德州扒鸡”...

python玩家 ⋅ 12分钟前 ⋅ 0

MySQL 内核深度优化

MYSQL数据库适用场景广泛,相较于Oracle、DB2性价比更高,Web网站、日志系统、数据仓库等场景都有MYSQL用武之地,但是也存在对于事务性支持不太好(MySQL 5.5版本开始默认引擎才是InnoDB事务...

java高级架构牛人 ⋅ 34分钟前 ⋅ 0

用户登录信息-钉子效果(基于jquery2.0)

本js效果使用jquery2.0,清晰的分解用户登录信息的(钉子效果),该效果直接用在作者网站(www.phpkhbd.com)上。 里面的难点有:定时器,延时。 大致效果如下: 一开始: 鼠标放上去的时候:...

宁哥实战课堂 ⋅ 36分钟前 ⋅ 0

解决yum安装报错Protected multilib versions

使用yum安装报错Protected multilib versions原因是因为多个库不能共存,不过更新的话也并不行,但是可以在安装命令后面加上如下一段命令: --setopt=protected_multilib=false 案例: 比如需...

北岩 ⋅ 47分钟前 ⋅ 0

为什么要学习Typescript???

简单来说 目前的typescript就是未来的javascript 为什么?? 这要从ECMA-262标准的第4版说起 对了 我们说的ES5 其实是ECMAScript3.1这个替代性建议被扶正了而已... 那么 第4版标准是什么? 看看...

hang1989 ⋅ 51分钟前 ⋅ 0

linux安装ipfs

一、下载ipfs # cd /usr/local/ipfs/ # wget https://dist.ipfs.io/go-ipfs/v0.4.15/go-ipfs_v0.4.15_linux-amd64.tar.gz # tar -zxvf go-ipfs_v0.4.15_linux-amd64.tar.gz 二、安装ipfs # ......

八戒八戒八戒 ⋅ 57分钟前 ⋅ 0

jvm程序执行慢诊断手册

生产环境最多的几种事故之一就是程序执行慢,如果是web服务的话,表现就是响应时间长。本文分享,从业多年形成的排查守则。 诊断步骤 系统资源查看 首先是系统资源查看,而且必须是在第一步。...

xpbob ⋅ 57分钟前 ⋅ 0

YII2 advanced 高级版本项目搭建-添加API应用以及多应用

一、YII安裝 安裝yii可以用composer安裝,也可以在yii中文社区下载归档文件安装 composer安装就不介绍了,因为要安装composer,比较麻烦,当然安装了composer是最好的,以后安装yii的插件要用...

botkenni ⋅ 58分钟前 ⋅ 0

在jdk1.8的环境下模拟永久代内存溢出

相信不少小伙伴在看深入理解Java虚拟机的时候,作者给我们举例一个demo来发生PermGen space 1、通过List不断添加String.intern(); 2、通过设置对应的-XX:PermSize与-XX:MaxPermSize(更快看到...

虾几把写 ⋅ 今天 ⋅ 0

开发OpenDaylight组件的完整流程

在前面介绍学习了OpenDaylight的几个重要模块后,这里再来介绍下完整开发一个模块的过程。 OSGI的bundles提供被其他OSGI组件调用的服务。这个教程中展示的是Data Packet Service去解析数据包...

wangxuwei ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部