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