阅读更多
流水的编程语言,铁打的 Java、C/C++。

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

这是很多机器人专家在自身的职业生涯中都会存在的一个入门级思考。毕竟,在学习一门编程语言时,需要花费大量的时间及精力,如果掌握了这门语言却又不发挥其真实的价值,又有什么用呢?但不幸的是,到目前为止,也没有一个确切而直接的答案出现。

如果你在 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(FieldProgrammableGateArrays)编程。FPGAs 能让你开发电子硬件而无需实际生产出一块硅芯片,对于一些开发来说,这是更快更简易的选择。如果你没有开发电子原型产品,你也许永远不会用 HDLs。

即便如此,还是有必要了解一下这种编程语言,因为它们和其它编程语言差别很大。一个重点:HDLs 所有的操作是并发的,而不是基于处理器的编程语言的顺序操作。

6.Assembly

Assembly 使你能够在“1 和 0 级”程序中进行编程。 这是最底层的编程语言。在过去,大多数底层硬件需要在 Assembly 中进行编程。 随着 Arduino 和其他类似微控制器的兴起,你现在可以利用 C / C ++ 在底层进行有效的编程,这意味着 Assembly 对于一般的机器人科学家来说,显然已不太重要。

5. MATLAB

MATLAB、及其相关的开源语言(例如 Octave),是一些著名的机器人科学家用于调查数据和创建控制系统常用的语言。

此外,还有一个非常有名的 MATLAB 机器人工具箱。如果你需要分析数据,创建高级图表或执行控制系统,那就需要学习 MATLAB。

4. C#/ .NET

C# 是微软提供的一种限制性编程语言。这很大程度上是由微软机器人工程师工作室(Microsoft Robotics Studio Studio)提供的,微软机器人工程师工作室将其作为其基本语言。如果你使用这个框架,就必须学习 C#。尽管如此,想要长期地提高自身的编码能力,首先学习 C / C ++ 不失为一个好的选择。

3. Java

作为一个电子工程师,我经常惊讶于一些软件工程课程将 Java 作为他们的第一编程语言。

Java 对程序员“掩盖”底层存储功能,这使得 Java 对程序的要求要比 C 语言对程序的要求更低一些,但这意味着你对底层代码的运行逻辑了解比较少。从软件工程的基础到探索机器人技术的未来,你很可能已经学习了 Java。

像 C# 和 MATLAB 一样,Java 是一种解释性语言,这意味着它不会被编译成机器代码。相反,Java 虚拟机在运行时解释指令。使用 Java,理论上让你可以在不同的机器上运行相同的代码,这得感谢 Java 虚拟机。在实践中,这不总是可行的,有时会导致代码运行缓慢。但是 Java 在一部分机器人学中非常流行,因此你也许需要它。

2. Python

近来,尤其是在机器人领域,Python 已经有了翻天覆地的变化。其中一个原因是Python(和 C ++)是 ROS 中的两种主要编程语言。

如同 Java 一样,它也是一种解释性语言。但与 Java 不同的是,Python 的重点是易用性。Python 不需要很多时间来做常规的事情,如定义和强制转换变量类型。这些在编程里面本是很平常的事。另外,Python 还有大量的免费库,这意味着当你需要实现一些基本的功能时不必“重新发明轮子”。而且由于它与 C / C ++ 代码之间可以进行简单的绑定,这就意味着代码繁重部分的性能可以植入这些语言,从而避免性能损失。

随着越来越多的电子产品开始支持“开箱即用”Python(与 RaspberryPi 一道),我们可能会在机器人中看到更多 Python。

1. C / C ++

机器人第一编程语言——C/C++!很多人都认为 C 和 C ++ 对新的机器人科学家来说是一个良好的开端。

为什么呢?

其主要原因是如今有大量的硬件库都使用这两种语言。它们适用于低级别的硬件,允许实时性能,是非常成熟的编程语言。现在,你可能会使用 C++ 远超过 C,因为 C++ 具有更大的实用性。C ++ 是 C 语言的扩展,从基础的 C 学起,你也会收获很多,特别是当你发现一个硬件库是用 C 编写的。但是 C / C ++ 编写的硬件库不像 Python 或 MATLAB 那样简单易用。使用 C 来执行类似的功能,可能需要相当长的时间,并且需要更多的代码行。尽管如此,由于机器人极其依赖实时性能,所以 C 和 C ++ 是最接近机器人科学家心目中“标准语言”的编程语言。

总结

本文列举了机器人十大热门编程语言,但这并不意味着你需要全部掌握每一门。对于每位开发者而言,最重要的是要发现一种对自身来说很自然的语言,且适合你的机器人硬件。也需要一种语言,使你能够快速而有效地创建程序。

我的个人建议先学习 Python。因为 Python 是一门非常简单易懂的语言,有许多有效的库可供学习,而且功能非常强大。我听过也看过很多(官方经验丰富的)程序员可以在几天内学习会 Python,并且很快就应用到大部分编程需求中。当你能明智地使用 Python 之后,我会建议学习 C,由 C ++ 来牵引。因为你需要将它与机器人硬件驱动程序的巨大主导接口进行交互。

引用
原文:10 BEST PROGRAMMING LANGUAGE FOR ROBOTICS : JAVA, C/C++, PYTHON
作者:SlickViral
责编:苏宓
  • 大小: 139.1 KB
  • 大小: 418.4 KB
  • 大小: 269.8 KB
  • 大小: 312.3 KB
  • 大小: 104 KB
0
0
评论 共 1 条 请登录后发表评论
1 楼 somefuture 2017-11-28 12:51
如同 Java 一样,它也是一种解释性语言。但与 Java 不同的是,Python 的重点是易用性。

黑人问号脸

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

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

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

  • 十大热门编程语言:不死 Java、不朽 C/C ++、新贵 Python

    进行人工智能机器人研发,应该选择哪种编程语言? 电子工程师会给予工业机器人技术人员不同的答复。大多数人都会相信的“最好的入门级编程语言”的答案是“这将取决于哪一领域”。其实最合理的答案,应该是它取决于...

  • 人工智能 python java_人工智能十大热门编程语言:不死 Java、不朽 C/C ++、新贵 Python...

    进行人工智能机器人研发,应该选择哪种编程语言?电子工程师会给予工业机器人技术人员不同的答复。大多数人都会相信的“最好的入门级编程语言”的答案是“这将取决于哪一领域”。其实最合理的答案,应该是它取决于你...

  • 人工智能开发语言排行榜: 不死Java, 不朽C/C++, 新贵Python

    看了这个排行榜, 小编只想说:流水的编程语言,铁打的Java,C/C++!! 人工智能的前景已经不用多说了,越来越多的人看重人工智能的前景,想要在这互联网的风口有一番作为。要做到这点,首先要确定进入人工智能...

  • 人工智能开发语言排行榜:不死Java,不朽C/C++,新贵Python

    看了这个排行榜, 小编只想说:流水的编程语言,铁打的Java,C/C++!! 人工智能的前景已经不用多说了,越来越多的人看重人工智能的前景,想要在这互联网的风口有一番作为。要做到这点,首先要确定进入人工智能行业...

  • 现代控制理论(机器人方向)习题与实践补充资料和复习说明(2019版)

    现代控制理论(机器人方向)习题与实践补充资料和复习说明(2019版) 现代控制理论正确打开方式是怎样的? 机器人/控制/学习/人工智能(OpenAI)课程已经接近尾声(2学分-32学时),现代控制系统理论内容分为: ...

  • 从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史

    它生于2003,火于2013,以后是否会不朽暂且不知,但是不幸的是出生后应该没有引起太大反响,沉寂十年终于时来运转沉冤得雪,在2013年又被NLP考古工作者从海底湿淋淋地捞出来了祭入神殿。为什么会发生这种技术奇遇记...

  • 从Word Embedding到Bert模型——自然语言处理预训练技术发展史

    它生于 2003,火于 2013,以后是否会不朽暂且不知,但是不幸的是出生后应该没有引起太大反响,沉寂十年终于时来运转沉冤得雪,在 2013 年又被 NLP 考古工作者从海底湿淋淋地捞出来了祭入神殿。 为什么会发生这种技术...

  • 【java毕业设计】智慧社区在线教育平台(源代码+论文+PPT模板).zip

    zip里包含源码+论文+PPT,有java环境就可以运行起来 ,功能说明: 文档开篇阐述了随着计算机技术、通信技术和网络技术的快速发展,智慧社区门户网站的建设成为了可能,并被视为21世纪信息产业的主要发展方向之一 强调了网络信息管理技术、数字化处理技术和数字式信息资源建设在国际竞争中的重要性。 指出了智慧社区门户网站系统的编程语言为Java,数据库为MYSQL,并实现了新闻资讯、社区共享、在线影院等功能。 系统设计与功能: 文档详细描述了系统的后台管理功能,包括系统管理模块、新闻资讯管理模块、公告管理模块、社区影院管理模块、会员上传下载管理模块以及留言管理模块。 系统管理模块:允许管理员重新设置密码,记录登录日志,确保系统安全。 新闻资讯管理模块:实现新闻资讯的添加、删除、修改,确保主页新闻部分始终显示最新的文章。 公告管理模块:类似于新闻资讯管理,但专注于主页公告的后台管理。 社区影院管理模块:管理所有视频的添加、删除、修改,包括影片名、导演、主演、片长等信息。 会员上传下载管理模块:审核与删除会员上传的文件。 留言管理模块:回复与删除所有留言,确保系统内的留言得到及时处理。

  • 基于深度强化学习的德州扑克AI算法优化详细文档+全部资料+源码.zip

    【资源说明】 基于深度强化学习的德州扑克AI算法优化详细文档+全部资料+源码.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

  • 无需安装MobaXterm简约版本,远程工具

    无需安装MobaXterm简约版本,远程工具

  • 蓝桥杯Python组的初级到中级选手练习python案例

    这个脚本包含了常见的算法和编程概念,适合蓝桥杯Python组的初级到中级选手练习。通过这些练习,选手可以: 理解递归算法(如斐波那契数列和汉诺塔问题)。 熟悉基本数据结构和操作(如字符串操作、列表处理)。 学习基本的数学算法(如求最大公约数)。 掌握Python语言的基本语法和内置函数的使用。 比赛中可能会遇到更复杂的问题,但这些练习能帮助你打下坚实的基础。在准备蓝桥杯时,还应该关注算法题库,学习更多数据结构(如栈、队列、树、图等)、算法(如动态规划、贪心算法、搜索算法等),并进行大量的代码实践和调试。

  • 【java毕业设计】智慧社区远程办公平台(源代码+论文+PPT模板).zip

    zip里包含源码+论文+PPT,有java环境就可以运行起来 ,功能说明: 文档开篇阐述了随着计算机技术、通信技术和网络技术的快速发展,智慧社区门户网站的建设成为了可能,并被视为21世纪信息产业的主要发展方向之一 强调了网络信息管理技术、数字化处理技术和数字式信息资源建设在国际竞争中的重要性。 指出了智慧社区门户网站系统的编程语言为Java,数据库为MYSQL,并实现了新闻资讯、社区共享、在线影院等功能。 系统设计与功能: 文档详细描述了系统的后台管理功能,包括系统管理模块、新闻资讯管理模块、公告管理模块、社区影院管理模块、会员上传下载管理模块以及留言管理模块。 系统管理模块:允许管理员重新设置密码,记录登录日志,确保系统安全。 新闻资讯管理模块:实现新闻资讯的添加、删除、修改,确保主页新闻部分始终显示最新的文章。 公告管理模块:类似于新闻资讯管理,但专注于主页公告的后台管理。 社区影院管理模块:管理所有视频的添加、删除、修改,包括影片名、导演、主演、片长等信息。 会员上传下载管理模块:审核与删除会员上传的文件。 留言管理模块:回复与删除所有留言,确保系统内的留言得到及时处理。

  • 【飞行器】基于matlab线性控制器和广泛可视化四轴飞行器控制系统仿真【含Matlab源码 9910期】.zip

    Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

  • JSP企业人事管理系统(源代码+论文)(2024y1).7z

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;

  • 【java毕业设计】智慧社区无障碍设施门户.zip

    有java环境就可以运行起来 ,zip里包含源码+论文+PPT, 系统设计与功能: 文档详细描述了系统的后台管理功能,包括系统管理模块、新闻资讯管理模块、公告管理模块、社区影院管理模块、会员上传下载管理模块以及留言管理模块。 系统管理模块:允许管理员重新设置密码,记录登录日志,确保系统安全。 新闻资讯管理模块:实现新闻资讯的添加、删除、修改,确保主页新闻部分始终显示最新的文章。 公告管理模块:类似于新闻资讯管理,但专注于主页公告的后台管理。 社区影院管理模块:管理所有视频的添加、删除、修改,包括影片名、导演、主演、片长等信息。 会员上传下载管理模块:审核与删除会员上传的文件。 留言管理模块:回复与删除所有留言,确保系统内的留言得到及时处理。 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上

  • 2024级涉外护理7班马天爱劳动实践总结1.docx

    2024级涉外护理7班马天爱劳动实践总结1.docx

  • JSP网上教学资源共享系统(源代码+论文)(2024r7).7z

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;

  • LookupError.md

    LookupError

  • 四川采矿场领导带班下井管理制度.docx

    四川采矿场领导带班下井管理制度

Global site tag (gtag.js) - Google Analytics