您好,登錄后才能下訂單哦!
這個問題大多數新的機器人專家在他們的職業生涯中至少會思考一次。不幸的是,這也是一個沒有直接答案的問題。
如果你在 Stack Overflow、Quora、Trossen、Reddit 或 Research Gate 等機器人專家或者社區論壇上提問“機器人最好的編程語言是什么?” 你會得到不同的答案。正如我們在文章中討論的基本機器人技能一樣,對于機器人學家來說最關鍵的是建立“ 編程思維 ”,而不是用一種特定的語言來衡量。在很多方面,你首先學習哪種編程語言并不重要,重要的是在通過編程思維來不斷提高自身的技能。
回歸主題,在本文中,我們將介紹機器人研發中使用的十大最流行的編程語言。我們將討論他們的缺點和優點,以及使用或者不使用它們的理由。世界上有超過1500種編程語言你可以學習。下面列出的是目前機器人中十種最流行的編程語言。每種語言都有不同的優勢,作者根據自身經驗,按照優先級從低到高排序。
BASIC和Pascal是我曾經學過了的兩種主要的編程語言。但這并不是我把它們放在榜單上的原因。相反,它們是運用于工業機器人編程上很好的語言。BASIC 針對初學者設計,這使它可以成為開發者簡單的入門語言。
Pascal的目的是提高編程實踐,并提出像指針這樣的構建,這使得它成為一個從 BASIC 到更多編程語言的奠基石。如今,這兩種語言對于“日常運用”來說有些過時了。但是普通情況下,您要進行相當程度的底層編碼,或者需要熟悉其他工業機器人語言,那么了解它們會對您有所幫助。
實際上,每一個機器人制造商都已經建立了自己特定的限制性機器人編程語言,這一直是工業機器人領域的一個問題。通過學習Pascal,你會熟悉他們的一部分。但是,當你開始在另一個機器人平臺編碼時,都必須使用另一種語言。
如機械臂領域實力強勁的 ABB 公司,用的語言系統叫做 RAPID;來自于德國的 KUKA,語言和公司名字一樣也叫做 KUKA;Comau 利用 PDL2;Yaskawa 利用 Advise 和 Kawasaki 利用 AS。在這一點上,Fanuc 機器人利用 Karel,Staubli 機器人利用 VAL3 和 Widespread Robots 利用 URScript。
最近,像 ROS 這樣的行業已經開始為程序員提供更加標準化的語言選擇。盡管如此,作為一個技術人員,你仍需要使用制造商的編程語言。
LISP是世界上第二古老的編程語言(FORTRAN更為古老,但只差一年)。相比與其他語言,它使用得并不是很廣泛,但是在人工智能編程領域還是很最重要的。ROS的一部分是用 LISP 編寫的,事實上,你并不需要知ROS是怎么編寫的。
硬件描述語言基本上是描繪電氣的編程方法。這些語言對于一些機器人專家來說是非常普遍的,因為他們習慣用 FPGAs(Field Programmable Gate Arrays)編程。FPGA可以不用硅芯片便能開發出電子硬件,這使得它們成為一種開發的更快,更低要求的改進選擇。如果你不模擬硬件,你可能永遠不會使用HDL。
存在即是合理,你還是需要了解一下HDL的,并且它們和其他編程語言也不太一樣。HDL的所有的操作都是并行完成的,而不是像基于處理器的語言那樣順序操作。
Assembly 可以讓你用“0和1”進行編程,這是最底層的編程。在過去,大多數底層硬件需要在 Assembly 中進行編程。隨著 Arduino 和其他類似微控制器的興起,你現在可以利用C / C ++在底層進行有效的編程,這意味著 Assembly 對于一般的機器人專家來說可能會不那么重要。
MATLAB和它的開源親戚(例如Octave)在一些機器人專家中非常有名,是他們負責調查數據和創建控制系統常用的語言。還有一個非常有名的MATLAB機器人 工具箱。我知道使用MATLAB單獨創建整個機器人系統的人員。所以,如果您需要分解數據,創建高級圖表或執行控制系統,那就很可能需要學習MATLAB。
C#是微軟提供的一種限制性編程語言。C#/ .NET很大程度上是為微軟機器人工程師工作室(Microsoft Robotics Studio Studio)提供的,微軟機器人工程師工作室將其作為基本語言。如果你將使用這個框架,你就必須學習 C#。盡管如此,首先學習C / C ++,也可以提高自身的編碼能力。
作為一個電子設計工程師,我很驚訝一些軟件工程學院將 JAVA 作為他們第一個學習的編程語言。
Java把對程序員的底層存儲功能“隱藏了”,這使得對Java程序的要求不那么高,而且也意味著你對代碼的處理方式了解得不多。從軟件工程的基礎到探索機器人的未來,你很可能已經學習了Java。
像C#和MATLAB一樣,Java是一種解釋性語言,這意味著它不會被合并到機器語言代碼中。相反,Java虛擬機在運行時解釋指令。理論上來說,基于Java虛擬機,使用Java可以在不同機器上使用類似的代碼。但實際上,這并不普遍使用,有時會導致代碼運行緩慢。但是Java編程語言在機器人研究中非常流行,所以你可能需要它。
許多人都認為 C 和 C ++ 對機器人科學家來說是一個很好的開端。為什么?因為相當多的硬件庫使用這些語言。它們適用于低級別的硬件,允許實時性能,是非常成熟的編程語言。
現在,你可能會更多地使用C ++,因為C++具有更強大的實用性。C ++是C的一個擴展。從基礎的C學習,你也可以得到很多收獲,尤其是當你發現一個硬件庫是用 C 編寫的時候。C / C ++不像Python或MATLAB那么容易學習的。使用C來執行類似的功能可能需要相當長的時間,并且需要更多的代碼。盡管如此,但機器人極其依賴實時性能,所以它們仍然是機器人科學家心中的“標準”機器人編程語言。
在機器人研究領域,Python 占據了重要地位,機器人研發第一編程語言。其中一個原因很可能是 Python(和C ++)是ROS中的兩種主要編程語言。像Java一樣,它是一種解釋性語言。但也不同于Java,Python 語言主要集中在可用性上。Python不需要花大量的時間來做常規的事情,例如定義和強制轉換變量類型。此外,還有大量免費的庫,這意味著當你不得不實現一些基本的功能時,你不需要“重新造輪子”。而且由于它允許與C / C ++代碼之間可以進行簡單的綁定,這意味著執行代碼繁重部分的性能可以植入這些語言,從而避免性能損失。隨著越來越多的電子產品開始使用“開箱即用”的Python(像Raspberry Pi那樣),我們可能會在機器人中看到更多的Python。
那學習哪一個比較好呢?
我列舉了機器人十大熱門編程語言,并不意味著你每一個都需要去學習。最重要的是發現一種適合你的語言,當然,也適用于你的機器人硬件。您需要一種可以讓你快速有效地創建程序的語言,你可以更專注于實用性。
因此,我建議先學習Python。這是我根據自己的自身經驗來說,當然你也可以先學習適合你的語言。無論如何,Python是一門簡單易學的語言它有許多有效的庫可供學習,而且功能非常強大。我聽過很多經驗豐富的程序員在幾天內就學會了Python,并且很快就運用到了大部分編程需求里面。在你學會了 Python 之后,我會建議學習 C,再由C ++來牽引。因為你需要將它與機器人硬件驅動程序的巨大主導接口進行交互。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。