當(dāng)前位置:首頁 > 智能硬件 > 機(jī)器人
[導(dǎo)讀] 這是一個許多新入行的機(jī)器人專家在他們職業(yè)生涯中至少會問一次的問題。不幸的是,這也是一個沒有簡單答案的問題。在本文中,我們將會審視在機(jī)器人學(xué)中最流行的10種編程語言,深入探討它們各自的優(yōu)缺點以及使

這是一個許多新入行的機(jī)器人專家在他們職業(yè)生涯中至少會問一次的問題。不幸的是,這也是一個沒有簡單答案的問題。在本文中,我們將會審視在機(jī)器人學(xué)中最流行的10種編程語言,深入探討它們各自的優(yōu)缺點以及使用和棄用它們的原因。

這實際上是個很有道理的問題——畢竟,如果你從不付諸實踐,那為什么要花大量的時間和精力去學(xué)習(xí)一種新的編程語言呢?如果作為一名機(jī)器人學(xué)新人,你當(dāng)然會想學(xué)習(xí)一種確實對你的職業(yè)生涯很有用的編程語言。

為什么“這個取決于。。。”是個毫無用處的回答

不幸的是,如果你去問一屋子的機(jī)器人學(xué)專家或者在像Stack Overflow、Quora,Trossen,Reddit、 Research Gate這樣的論壇上問“什么是機(jī)器人學(xué)中最好編程語言?”,你永遠(yuǎn)不會得到一個直接的答案。

電氣工程師會從工業(yè)機(jī)器人技術(shù)這個角度給出不同的答案。計算機(jī)視覺程序員給出的答案會跟認(rèn)知機(jī)器人專家給出的不一樣。而且,每個人都會對什么是最好的編程語言有自己的看法。最終,大多數(shù)人都會贊同的答案就是”這個取決于。。。“。對于一個新入行正在試圖決定要先學(xué)哪種語言的機(jī)器人學(xué)者來說,這是一個相當(dāng)無用的答案。即使這是最現(xiàn)實的回答——因為它的確取決于你想要開發(fā)的應(yīng)用程序和你在使用的系統(tǒng)。

我究竟應(yīng)該先學(xué)哪種編程語言?

我究竟應(yīng)該先學(xué)哪種編程語言?這是一個許多新入行的機(jī)器人工程師在他們職業(yè)生涯中至少會問一次的問題。不幸的是,這也是一個沒有簡單答案的問題。

也許更恰當(dāng)?shù)膯栴}應(yīng)該是先從哪種編程語言開始學(xué)起?但是,你仍然會得到不同的看法,但是許多機(jī)器人專家會同意從關(guān)鍵編程語言開始學(xué)。

對于機(jī)器人專家來說,最重要的事情是開拓你的”編程思維”,而不是精通一種特定的編程語言。從很多方面來說,從哪種編程語言開始學(xué)習(xí)真的無關(guān)緊要。你學(xué)習(xí)的每種語言提升了你的編程思維,擁有了這種思維,去學(xué)習(xí)一種新編程語言的時候會容易不少。

在本文中,我們將會審視在機(jī)器人學(xué)中最流行的10種編程語言,深入探討它們各自的優(yōu)缺點以及使用和棄用它們的原因。

機(jī)器人學(xué)中最流行的10種編程語言
世界上有1500多種編程語言,都要學(xué)的話是太多了。目前,在機(jī)器人學(xué)中有這10種最流行的編程語言——如果你喜歡的不在這里,請在留言區(qū)告訴大家。對于機(jī)器人學(xué),每種編程語言有不同的優(yōu)點。我只是部分地按照重要程度從低到高對它們進(jìn)行了排序。

10、BASIC / Pascal
對于幾種工業(yè)機(jī)器人語言,BASIC和Pascal是基礎(chǔ)。BASIC是為初學(xué)者設(shè)計的(BASIC是縮寫,Beginners All-Purpose Symbolic InstrucTIon Code),它讓初學(xué)者可以從一種非常簡單的編程語言開始學(xué)習(xí)。Pascal旨在鼓勵好的編程習(xí)慣,還引入了結(jié)構(gòu),例如指針,這讓Pascal成為從BASIC到更復(fù)雜語言的一塊“敲門磚”。如今,這兩種語言如果要說是好的“日常使用”程序語言,那是有點過時了。不過如果你準(zhǔn)備做很多底層編碼或是想要熟悉一下其它工業(yè)機(jī)器人編程語言,學(xué)習(xí)一下還是有用的。

9、工業(yè)機(jī)器人編程語言
幾乎每一個機(jī)器人制造商都開發(fā)了他們自己專有的機(jī)器人編程語言,這成了工業(yè)機(jī)器人行業(yè)中的一個問題。通過學(xué)習(xí)Pascal,你會熟悉它們中的一部分。但是每次開始使用新的機(jī)器人時,你還得學(xué)習(xí)一種新的編程語言。

最近幾年, ROS行業(yè)已經(jīng)開始提供更標(biāo)準(zhǔn)化的替代語言給程序員。但是如果是一個技術(shù)人員,你仍然更可能不得不使用制造商的編程語言。

8、LISP
LISP是世界上第二古老的編程語言(FORTRAN更古老,但只早了一年)。相比今天提到很多其它編程語言,它的應(yīng)用并不廣泛。不過在人工智能編程領(lǐng)域它還是相當(dāng)重要的。ROS的一部分是用LISP寫的,雖然你不需要掌握這個來使用ROS。

7、硬件描述語言(HDLs)
硬件描述語言一般是用來描述電氣的編程方式。這些語言對于一些機(jī)器人專家來說是相當(dāng)熟悉的,因為他們習(xí)慣FPGAs(Field Programmable Gate Arrays)編程。FPGAs能讓你開發(fā)電子硬件而無需實際生產(chǎn)出一塊硅芯片,對于一些開發(fā)來說,這是更快更簡易的選擇。如果你沒有開發(fā)電子原型產(chǎn)品,你也許永遠(yuǎn)不會用HDLs。即便如此,還是有必要了解一下這種編程語言,因為它們和其它編程語言差別很大。一個重點:HDLs所有的操作是并發(fā)的,而不是基于處理器的編程語言的順序操作。

6、Assembly
Assembly讓你能在0和1數(shù)位上進(jìn)行編程?;旧线@是最底層的編程語言。就在最近,最底層的電子需要Assembly進(jìn)行編程。隨著Arduino和其它如微控制器的崛起,現(xiàn)在你可以使用C/C++在底層方便地編程了。這意味著Assembly對于大多數(shù)機(jī)器人專家來說也許會變得更不必要了。

5、MATLAB
MATLAB以及和它相關(guān)的開源資源,比如Octave,一些機(jī)器人工程師特別喜歡,它被用來分析數(shù)據(jù)和開發(fā)控制系統(tǒng)。還有一個非常流行的機(jī)器人工具箱——MATLAB。我知道一些僅僅使用MATLAB就能開發(fā)出整個機(jī)器人系統(tǒng)的專家。如果你想要分析數(shù)據(jù),產(chǎn)生高級圖像或是實施控制系統(tǒng),你也許會想學(xué)習(xí)MATLAB。

4、C#/.NET
C#是微軟提供的專用編程語言。我把C#/.NET放在這里,主要是因為微軟機(jī)器人開發(fā)員工作包(Microsoft RoboTIcs Developer Studio),這個包的主要開發(fā)語言是C#。如果你準(zhǔn)備用這個系統(tǒng),那么你很可能必須要用C#。

3、Java
Java對程序員隱藏了底層存儲功能,這讓它比起一些語言(如C語言)來說,編寫要容易些,但這也意味著你會更少地理解底層代碼的運行邏輯。如果你有計算機(jī)科學(xué)背景并轉(zhuǎn)到機(jī)器人學(xué)(很多人是這樣的,特別是在研究領(lǐng)域),你也許已經(jīng)學(xué)過Java 。像C#和MATLAB,Java是一種解釋性語言,這意味著它不會被編譯成機(jī)器代碼。相反,Java虛擬機(jī)在運行時解釋指令。使用Java,理論上讓你可以在不同的機(jī)器上運行相同的代碼,這得感謝Java虛擬機(jī)。在實踐中,這不總是可行的,有時會導(dǎo)致代碼運行緩慢。但是Java在一部分機(jī)器人學(xué)中非常流行,因此你也許需要它。

2、Python
近年來,學(xué)習(xí)Python的人有一個巨大的回潮,特別是在機(jī)器人領(lǐng)域。其中一個原因可能是Python(和C++)是ROS中兩種主要的編程語言。與Java不同,Python的重點是易用性,Python不需要很多時間來做常規(guī)的事情,如定義和強(qiáng)制轉(zhuǎn)換變量類型。這些在編程里面本是很平常的事。另外,Python還有大量的免費庫,這意味著當(dāng)你需要實現(xiàn)一些基本的功能時不必“重新發(fā)明輪子”。而且因為Python允許與C / C++代碼進(jìn)行簡單的綁定。這就意味著代碼繁重部分的性能可以植入這些語言,從而避免性能損失。隨著越來越多的電子產(chǎn)品開始支持 “開箱即用” Python(與Raspberry Pi一道),我們可能會在機(jī)器人中看到更多Python。

注:The Raspberry Pi FoundaTIon:英國一個小型的慈善組織,成立的宗旨在于推廣科技,而非以銷售技術(shù)來營利。

1、C/C++
最后我們到了排名第1的機(jī)器人編程語言!許多人認(rèn)為C和C++對新入行的機(jī)器人學(xué)家是一個很好的起點。為什么?因為很多硬件庫都使用這兩種語言。這兩種語言允許與低級別的硬件進(jìn)行交互,允許實時性能,是非常成熟的編程語言?,F(xiàn)如今,你可能會使用C++比C多,因為前者具有更多的功能。C++基本上是C的一種延伸。首先學(xué)一點C會很有用,特別是當(dāng)你發(fā)現(xiàn)一個硬件庫是用C編寫的。C/ C++并不是像Python或MATLAB那樣簡單易用。同樣用C來實現(xiàn)相同的功能會需要大量時間,也將需要更多行代碼。但是,由于機(jī)器人非常依賴實時性能,C和C++是最接近我們機(jī)器人專家“標(biāo)準(zhǔn)語言”的編程語言。

你應(yīng)該遵循何種順序來學(xué)習(xí)他們?
盡管我們在這里列舉了10種語言,但這并不意味著你必須全部都要學(xué)。最重要的是找到一種感覺自然且適合機(jī)器人硬件的語言。你需要一種可以輕松快速地開發(fā)程序的語言。這樣一來,你就可以更專注于開發(fā)功能。有鑒于此,我建議你首先學(xué)習(xí)Python。當(dāng)然,這只是我個人的觀點。如果另一種語言對你來說更具意義,那你就選擇那種語言。然而,Python是一種非常簡單易學(xué)的語言。得益于其大量、便捷的庫,Python功能非常強(qiáng)大。我聽說過很多有編程經(jīng)驗的程序員在短期學(xué)習(xí)Python之后就能立即將其用于所有編程需求中。正如有人所說:我可以在Python中快速輸入有用的代碼。當(dāng)你已經(jīng)相當(dāng)熟練地使用Python后,我個人推薦你先學(xué)習(xí)C再學(xué)習(xí)C++,你將在絕大多數(shù)的機(jī)器人硬件驅(qū)動接口編程時需要它。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉