流水的編程語言,鐵打的 Java、C/C++。java
進行人工智能機器人研發,應該選擇哪一種編程語言?程序員
這是不少機器人專家在自身的職業生涯中都會存在的一個入門級思考。畢竟,在學習一門編程語言時,須要花費大量的時間及精力,若是掌握了這門語言卻又不發揮其真實的價值,又有什麼用呢?但不幸的是,到目前爲止,也沒有一個確切而直接的答案出現。編程
若是你在 Stack Overflow、Quora、Trossen、Reddit 或 Research Gate 等機器人專家或者社區論壇上提問「機器人最好的編程語言是什麼?」,毋庸置疑,你將會收到不一樣的答案。併發
電子工程師會給予工業機器人技術人員不一樣的答覆。大多數人都會相信的「最好的入門級編程語言」的答案是「這將取決於哪一領域」。其實最合理的答案,應該是它取決於你想開發什麼類型的軟件,以及你正在使用什麼樣的系統。且對於機器人科學家來講,最關鍵的是創建「編程思惟」,而不是用一種特定的語言來侷限。在不少方面,首先學習哪一種編程語言並不重要,重要的是在經過編程思惟來不斷提升自身的技能。框架
而回歸本文主題,對於首選編程語言的選擇,沒有最佳的答案,但本文中,咱們將介紹程序員在機器人編程中最流行的十大編程語言,並經過對比其優缺點,但願能夠給予開發者提供必定的參考方向,作出本身的最佳選擇。編程語言
世界上超過 1500 種編程語言能夠學習。如下將會列出機器人中十種最流行的編程語言。每種語言都有不一樣的優點,本文根據做者自身的開發及實踐經驗,優先級從低到高所列舉了十大編程語言排行榜。ide
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 在一部分機器人學中很是流行,所以你也許須要它。
java學習羣669823128
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 ++ 是最接近機器人科學家心目中「標準語言」的編程語言。
總結
本文列舉了機器人十大熱門編程語言,但這並不意味着你須要所有掌握每一門。對於每位開發者而言,最重要的是要發現一種對自身來講很天然的語言,且適合你的機器人硬件。也須要一種語言,使你可以快速而有效地建立程序。
java學習羣669823128