1、硬件描述語言(hdls)
硬件描述語言一般是用來描述電氣的編程方式。這些語言對(duì)于一些機(jī)器人專家來說是相當(dāng)熟悉的,因?yàn)樗麄兞?xí)慣 fpgas(fieldprogrammablegatearrays)編程。fpgas能讓你開發(fā)電子硬件而無需實(shí)際生產(chǎn)出一塊硅芯片,對(duì)于一些開發(fā)來說,這是更快更簡(jiǎn)易的選擇。如果你沒有開發(fā)電子原型產(chǎn)品,你也許永遠(yuǎn)不會(huì)用hdls。即便如此,還是有必要了解一下這種編程語言,因?yàn)樗鼈兒推渌幊陶Z言差別很大。一個(gè)重點(diǎn):hdls所有的操作是并發(fā)的,而不是基于處理器的編程語言的順序操作。
2、assembly
assembly讓你能在0和1數(shù)位上進(jìn)行編程。基本上這是最底層的編程語言。就在最近,最底層的電子需要assembly進(jìn)行編程。隨著arduino和其它如微控制器的崛起,現(xiàn)在你可以使用c/c++在底層方便地編程了。這意味著assembly對(duì)于大多數(shù)機(jī)器人專家來說也許會(huì)變得更不必要了。
3、matlab
matlab以及和它相關(guān)的開源資源,比如octave,一些機(jī)器人工程師特別喜歡,它被用來分析數(shù)據(jù)和開發(fā)控制系統(tǒng)。還有一個(gè)非常流行的機(jī)器人工具箱 ——matlab。我知道一些僅僅使用matlab就能開發(fā)出整個(gè)機(jī)器人系統(tǒng)的專家。如果你想要分析數(shù)據(jù),產(chǎn)生高級(jí)圖像或是實(shí)施控制系統(tǒng),你也許會(huì)想學(xué)習(xí) matlab。
4、c#/.net
c#是微軟提供的專用編程語言。我把c#/.net放在這里,主要是因?yàn)槲④洐C(jī)器人開發(fā)員工作包(microsoft robotics developer studio),這個(gè)包的主要開發(fā)語言是c#。如果你準(zhǔn)備用這個(gè)系統(tǒng),那么你很可能必須要用c#。
5、java
java對(duì)程序員隱藏了底層存儲(chǔ)功能,這讓它比起一些語言(如c語言)來說,編寫要容易些,但這也意味著你會(huì)更少地理解底層代碼的運(yùn)行邏輯。如果你有計(jì)算機(jī)科學(xué)背景并轉(zhuǎn)到機(jī)器人學(xué)(很多人是這樣的,特別是在研究領(lǐng)域),你也許已經(jīng)學(xué)過java。像c#和matlab,java是一種解釋性語言,這意味著它不會(huì)被編譯成機(jī)器代碼。相反,java虛擬機(jī)在運(yùn)行時(shí)解釋指令。使用java,理論上讓你可以在不同的機(jī)器上運(yùn)行相同的代碼,這得感謝java虛擬機(jī)。在實(shí)踐中,這不總是可行的,有時(shí)會(huì)導(dǎo)致代碼運(yùn)行緩慢。但是java在一部分機(jī)器人學(xué)中非常流行,因此你也許需要它。
6、python
近年來,學(xué)習(xí)python的人有一個(gè)巨大的回潮,特別是在機(jī)器人領(lǐng)域。其中一個(gè)原因可能是python(和c++)是ros中兩種主要的編程語言。與 java不同,python的重點(diǎn)是易用性,python不需要很多時(shí)間來做常規(guī)的事情,如定義和強(qiáng)制轉(zhuǎn)換變量類型。這些在編程里面本是很平常的事。另外,python還有大量的免費(fèi)庫,這意味著當(dāng)你需要實(shí)現(xiàn)一些基本的功能時(shí)不必“重新發(fā)明輪子”。而且因?yàn)閜ython允許與c/c++代碼進(jìn)行簡(jiǎn)單的綁定。這就意味著代碼繁重部分的性能可以植入這些語言,從而避免性能損失。隨著越來越多的電子產(chǎn)品開始支持“開箱即用”python(與 raspberrypi一道),我們可能會(huì)在機(jī)器人中看到更多python。 注:the raspberry pi foundation:英國一個(gè)小型的慈善組織,成立的宗旨在于推廣科技,而非以銷售技術(shù)來營利。
7、c/c++
最后到了排名第1的機(jī)器人編程語言!許多人認(rèn)為c和c++對(duì)新入行的機(jī)器人學(xué)家是一個(gè)很好的起點(diǎn)。為什么?因?yàn)楹芏嘤布於际褂眠@兩種語言。這兩種語言允許與低級(jí)別的硬件進(jìn)行交互,允許實(shí)時(shí)性能,是非常成熟的編程語言?,F(xiàn)如今,你可能會(huì)使用c++比c多,因?yàn)榍罢呔哂懈嗟墓δ?。c++基本上是c的一種延伸。首先學(xué)一點(diǎn)c會(huì)很有用,特別是當(dāng)你發(fā)現(xiàn)一個(gè)硬件庫是用c編寫的。c/c++并不是像python或matlab那樣簡(jiǎn)單易用。同樣用c來實(shí)現(xiàn)相同的功能會(huì)需要大量時(shí)間,也將需要更多行代碼。但是,由于機(jī)器人非常依賴實(shí)時(shí)性能,c和c++是最接近我們機(jī)器人專家“標(biāo)準(zhǔn)語言”的編程語言。
來源:網(wǎng)易
以上是網(wǎng)絡(luò)信息轉(zhuǎn)載,信息真實(shí)性自行斟酌。