曾經(jīng)有很多小伙伴一直問(wèn),工業(yè)機器人編程用的是什么語(yǔ)言???這次就給大家總結一下工業(yè)機器人常用的幾種編程語(yǔ)言。
1.硬件描述語(yǔ)言(HDLs)
硬件描述語(yǔ)言一般是用來(lái)描述電氣的編程方式。這些語(yǔ)言對于一些機器人專(zhuān)家來(lái)說(shuō)是相當熟悉的,因為他們習慣FPGAs編程。FPGAs能讓你開(kāi)發(fā)電子硬件而無(wú)需實(shí)際生產(chǎn)出一塊硅芯片,對于一些開(kāi)發(fā)來(lái)說(shuō),這是更快更簡(jiǎn)易的選擇。如果你沒(méi)有開(kāi)發(fā)電子原型產(chǎn)品,你也許永遠不會(huì )用HDLs。即便如此,還是有必要了解一下這種編程語(yǔ)言,因為它們和其它編程語(yǔ)言差別很大。一個(gè)重點(diǎn):HDLs所有的操作是并發(fā)的,而不是基于處理器的編程語(yǔ)言的順序操作。
2. Assembly
Assembly讓你能在0和1數位上進(jìn)行編程。這基本上是最底層的編程語(yǔ)言。隨著(zhù)Arduino和其它如微控制器的崛起,現在你可以使用C/C++在底層方便地編程了。這意味著(zhù)Assembly對于大多數機器人專(zhuān)家來(lái)說(shuō)也許會(huì )變得更不必要了。
3. MATLAB
MATLAB以及和它相關(guān)的開(kāi)源資源,比如Octave,一些機器人工程師特別喜歡,它被用來(lái)分析數據和開(kāi)發(fā)控制系統。有一些專(zhuān)家僅僅使用MATLAB就能開(kāi)發(fā)出整個(gè)機器人系統。如果你想要分析數據,產(chǎn)生高級圖像或是開(kāi)發(fā)控制系統,你也許會(huì )想學(xué)習 MATLAB。
4. C#/.NET
C#是微軟提供的專(zhuān)用編程語(yǔ)言。把C#/.NET放在這里,主要是因為微軟機器人開(kāi)發(fā)員工作包(Microsoft RoboTIcs Developer Studio),這個(gè)包的主要開(kāi)發(fā)語(yǔ)言是C#。如果你準備用這個(gè)系統,那么很可能必須要用C#。
5. Java
Java對程序員隱藏了底層存儲功能,這讓它比起一些語(yǔ)言(如C語(yǔ)言)來(lái)說(shuō),編寫(xiě)要容易些,但理解底層代碼的運行邏輯也更不易。如果你有計算機科學(xué)背景并轉到機器人學(xué)(很多人是這樣的,特別是在研究領(lǐng)域),你也許已經(jīng)學(xué)過(guò)Java。像C#和MATLAB,Java是一種解釋性語(yǔ)言,這意味著(zhù)它不會(huì )被編譯成機器代碼。相反,Java虛擬機在運行時(shí)解釋指令。使用Java,理論上讓你可以在不同的機器上運行相同的代碼,這得感謝Java虛擬機。在實(shí)踐中,這并不總是可行的,有時(shí)會(huì )導致代碼運行緩慢。但是Java在一部分機器人學(xué)中非常流行,因此你也許需要它?!?/p>
6. Python
近年來(lái),學(xué)習Python的人有一個(gè)巨大的回潮,特別是在機器人領(lǐng)域。其中一個(gè)原因可能是Python和C++是ROS中兩種主要的編程語(yǔ)言。與Java不同,Python的重點(diǎn)是易用性。Python不需要很多時(shí)間來(lái)做常規的事情,如定義和強制轉換變量類(lèi)型。這些在編程里面本是很平常的事。另外,Python還有大量的免費庫,這意味著(zhù)當你需要實(shí)現一些基本的功能時(shí)不必“重新發(fā)明輪子”。而且因為Python允許與C/C++代碼進(jìn)行簡(jiǎn)單的綁定,這就意味著(zhù)代碼繁重部分的性能可以植入這些語(yǔ)言,從而避免性能損失。隨著(zhù)越來(lái)越多的電子產(chǎn)品開(kāi)始支持“開(kāi)箱即用”P(pán)ython(與 RaspberryPi一道),我們可能會(huì )在機器人中看到更多Python。(The Raspberry Pi FoundaTIon:英國一個(gè)小型的慈善組織,成立的宗旨在于推廣科技,而非以銷(xiāo)售技術(shù)來(lái)營(yíng)利。)
7. C/C++
最后我們到了排名1的機器人編程語(yǔ)言!許多人認為C和C++對新入行的機器人學(xué)家是一個(gè)很好的起點(diǎn)。為什么?因為很多硬件庫都使用這兩種語(yǔ)言。這兩種語(yǔ)言允許與低級別的硬件進(jìn)行交互,允許實(shí)時(shí)性能,是非常成熟的編程語(yǔ)言?,F如今,你可能會(huì )使用C++比C多,因為前者具有更多的功能。C++基本上是C的一種延伸。首先學(xué)一點(diǎn)C會(huì )很有用,特別是當你發(fā)現一個(gè)硬件庫是用C編寫(xiě)的。C/C++并不是像Python或MATLAB那樣簡(jiǎn)單易用。用C來(lái)實(shí)現相同的功能會(huì )需要大量時(shí)間,也需要更多行代碼。但是,由于機器人非常依賴(lài)實(shí)時(shí)性能,C和C++是最接近我們機器人專(zhuān)家“標準語(yǔ)言”的編程語(yǔ)言。