機器人研發(fā)熱門語言:不死Java紫皇、不朽C/C ++慰安、新貴Python

流水的編程語言,鐵打的 Java坝橡、C/C++泻帮。

image

**  進行人工智能機器人研發(fā),應該選擇哪種編程語言计寇? **

這是很多機器人專家在自身的職業(yè)生涯中都會存在的一個入門級思考锣杂。畢竟,在學習一門編程語言時番宁,需要花費大量的時間及精力元莫,如果掌握了這門語言卻又不發(fā)揮其真實的價值,又有什么用呢蝶押?但不幸的是踱蠢,到目前為止,也沒有一個確切而直接的答案出現(xiàn)棋电。

如果你在 Stack Overflow茎截、Quora、Trossen赶盔、Reddit 或 Research Gate 等機器人專家或者社區(qū)論壇上提問“機器人最好的編程語言是什么企锌?”,毋庸置疑于未,你將會收到不同的答案撕攒。

電子工程師會給予工業(yè)機器人技術人員不同的答復。大多數(shù)人都會相信的“最好的入門級編程語言”的答案是“這將取決于哪一領域”烘浦。其實最合理的答案抖坪,應該是它取決于你想開發(fā)什么類型的軟件,以及你正在使用什么樣的系統(tǒng)闷叉。且對于機器人科學家來說擦俐,最關鍵的是建立“編程思維”,而不是用一種特定的語言來局限握侧。在很多方面捌肴,首先學習哪種編程語言并不重要,重要的是在通過編程思維來不斷提高自身的技能藕咏。

而回歸本文主題状知,對于首選編程語言的選擇,沒有最佳的答案孽查,但本文中饥悴,我們將介紹程序員在機器人編程中最流行的十大編程語言,并通過對比其優(yōu)缺點,希望可以給予開發(fā)者提供一定的參考方向西设,做出自己的最佳選擇瓣铣。

image

世界上超過 1500 種編程語言可以學習。以下將會列出機器人中十種最流行的編程語言贷揽。每種語言都有不同的優(yōu)勢棠笑,本文根據(jù)作者自身的開發(fā)及實踐經(jīng)驗,優(yōu)先級從低到高所列舉了十大編程語言排行榜禽绪。

10. BASIC / Pascal

BASIC 和 Pascal 是我曾學過的兩種主要的編程語言蓖救,但這并不是我將其列入此排行榜的原因。事實上印屁,它們可以很好地運用于工業(yè)機器人編程上循捺。BASIC 針對初學者而設計,這使它可以成為開發(fā)者簡單的入門語言雄人。

Pascal 旨在提高編程實踐从橘,還引入了一些類似于指針這樣的構建,這使得它成為從 BASIC 晉升到更高級的其他語言的一個奠基石础钠。如今恰力,這兩種語言對“日常應用”的程序語言來說有些過時了。但如果你準備進行一定程度的底層編碼旗吁,或需要熟悉其他工業(yè)機器人語言時踩萎,那么了解它們會對你有所幫助。

9. 工業(yè)機器人語言

實際上阵漏,每一個機器人制造商都已經(jīng)建立了自己專有的限制性機器人編程語言驻民,這一直是工業(yè)機器人領域的一個問題翻具。通過學習 Pascal履怯,你會熟悉它們中的一部分。但是裆泳,當你開始在另一個機器人平臺編碼時叹洲,還需要使用不同的編程語言。

image

如機械臂領域?qū)嵙妱诺?ABB 公司工禾,用的語言系統(tǒng)叫做 RAPID运提;來自于德國的 KUKA,語言和公司名字一樣也叫做 KUKA闻葵;Comau 利用 PDL2民泵;Yaskawa 利用 Advise 和 Kawasaki 利用 AS。在這一點上槽畔,F(xiàn)anuc 機器人利用 Karel栈妆,Staubli 機器人利用 VAL3 和 Widespread Robots 利用 URScript。

最近,像 ROS 行業(yè)已經(jīng)開始為程序員提供更加標準化的替代語言選擇鳞尔。但是如果是一個技術人員嬉橙,你仍然更可能不得不使用制造商的編程語言。

8. LISP

LISP 是世界上第二古老的編程語言(FORTRAN 更古老寥假,但只差一年)市框。相比本文提到很多其它編程語言,它的應用并不廣泛糕韧。不過在人工智能編程領域它還是相當重要的枫振。ROS 的一部分是用 LISP 寫的,雖然你不需要掌握這個來使用 ROS兔沃。

7. 硬件描述語言(HDL)

硬件描述語言一般是用來描述電氣的編程方式蒋得。這些語言對于一些機器人專家來說是非常常見,因為他們習慣 FPGAs(FieldProgrammableGateArrays)編程乒疏。FPGAs 能讓你開發(fā)電子硬件而無需實際生產(chǎn)出一塊硅芯片额衙,對于一些開發(fā)來說,這是更快更簡易的選擇怕吴。如果你沒有開發(fā)電子原型產(chǎn)品窍侧,你也許永遠不會用 HDLs。

即便如此转绷,還是有必要了解一下這種編程語言伟件,因為它們和其它編程語言差別很大。一個重點:HDLs 所有的操作是并發(fā)的议经,而不是基于處理器的編程語言的順序操作该镣。

6. Assembly

Assembly 使你能夠在“1 和 0 級”程序中進行編程损拢。 這是最底層的編程語言。在過去,大多數(shù)底層硬件需要在 Assembly 中進行編程辐烂。 隨著 Arduino 和其他類似微控制器的興起扫倡,你現(xiàn)在可以利用 C / C ++ 在底層進行有效的編程邻寿,這意味著 Assembly 對于一般的機器人科學家來說污茵,顯然已不太重要。

5. MATLAB

MATLAB蝙昙、及其相關的開源語言(例如 Octave)闪萄,是一些著名的機器人科學家用于調(diào)查數(shù)據(jù)和創(chuàng)建控制系統(tǒng)常用的語言。

image

此外奇颠,還有一個非常有名的 MATLAB 機器人工具箱败去。如果你需要分析數(shù)據(jù),創(chuàng)建高級圖表或執(zhí)行控制系統(tǒng)烈拒,那就需要學習 MATLAB圆裕。

4. C#/ .NET

C# 是微軟提供的一種限制性編程語言三椿。這很大程度上是由微軟機器人工程師工作室(Microsoft Robotics Studio Studio)提供的,微軟機器人工程師工作室將其作為其基本語言葫辐。如果你使用這個框架搜锰,就必須學習 C#。盡管如此耿战,想要長期地提高自身的編碼能力蛋叼,首先學習 C / C ++ 不失為一個好的選擇。

3. Java

作為一個電子工程師剂陡,我經(jīng)常驚訝于一些軟件工程課程將 Java 作為他們的第一編程語言狈涮。

Java 對程序員“掩蓋”底層存儲功能,這使得 Java 對程序的要求要比 C 語言對程序的要求更低一些鸭栖,但這意味著你對底層代碼的運行邏輯了解比較少歌馍。從軟件工程的基礎到探索機器人技術的未來,你很可能已經(jīng)學習了 Java晕鹊。

像 C# 和 MATLAB 一樣松却,Java 是一種解釋性語言,這意味著它不會被編譯成機器代碼溅话。相反晓锻,Java 虛擬機在運行時解釋指令。使用 Java飞几,理論上讓你可以在不同的機器上運行相同的代碼砚哆,這得感謝 Java 虛擬機。在實踐中屑墨,這不總是可行的躁锁,有時會導致代碼運行緩慢。但是 Java 在一部分機器人學中非常流行卵史,因此你也許需要它战转。

2. Python

近來,尤其是在機器人領域程腹,Python 已經(jīng)有了翻天覆地的變化匣吊。其中一個原因是 Python(和 C ++)是 ROS 中的兩種主要編程語言儒拂。

image

如同 Java 一樣寸潦,它也是一種解釋性語言。但與 Java 不同的是社痛,Python 的重點是易用性见转。Python 不需要很多時間來做常規(guī)的事情,如定義和強制轉(zhuǎn)換變量類型蒜哀。這些在編程里面本是很平常的事斩箫。另外,Python 還有大量的免費庫,這意味著當你需要實現(xiàn)一些基本的功能時不必“重新發(fā)明輪子”乘客。而且由于它與 C / C ++ 代碼之間可以進行簡單的綁定狐血,這就意味著代碼繁重部分的性能可以植入這些語言,從而避免性能損失易核。

隨著越來越多的電子產(chǎn)品開始支持“開箱即用”Python(與 RaspberryPi 一道)匈织,我們可能會在機器人中看到更多 Python。

1. C / C ++

機器人第一編程語言——C/C++牡直!很多人都認為 C 和 C ++ 對新的機器人科學家來說是一個良好的開端缀匕。

為什么呢?

其主要原因是如今有大量的硬件庫都使用這兩種語言碰逸。它們適用于低級別的硬件乡小,允許實時性能,是非常成熟的編程語言《罚現(xiàn)在满钟,你可能會使用 C++ 遠超過 C,因為 C++ 具有更大的實用性胳喷。C ++ 是 C 語言的擴展零远,從基礎的 C 學起,你也會收獲很多厌蔽,特別是當你發(fā)現(xiàn)一個硬件庫是用 C 編寫的牵辣。但是 C / C ++ 編寫的硬件庫不像 Python 或 MATLAB 那樣簡單易用。使用 C 來執(zhí)行類似的功能奴饮,可能需要相當長的時間纬向,并且需要更多的代碼行。盡管如此戴卜,由于機器人極其依賴實時性能逾条,所以 C 和 C ++ 是最接近機器人科學家心目中“標準語言”的編程語言。

總結

本文列舉了機器人十大熱門編程語言投剥,但這并不意味著你需要全部掌握每一門师脂。對于每位開發(fā)者而言,最重要的是要發(fā)現(xiàn)一種對自身來說很自然的語言江锨,且適合你的機器人硬件吃警。也需要一種語言,使你能夠快速而有效地創(chuàng)建程序啄育。

歡迎加入學習交流群569772982酌心,大家一起學習交流。

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末挑豌,一起剝皮案震驚了整個濱河市安券,隨后出現(xiàn)的幾起案子墩崩,更是在濱河造成了極大的恐慌,老刑警劉巖侯勉,帶你破解...
    沈念sama閱讀 222,378評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鹦筹,死亡現(xiàn)場離奇詭異,居然都是意外死亡址貌,警方通過查閱死者的電腦和手機盛龄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來芳誓,“玉大人余舶,你說我怎么就攤上這事∏绿剩” “怎么了匿值?”我有些...
    開封第一講書人閱讀 168,983評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長赂摆。 經(jīng)常有香客問我挟憔,道長,這世上最難降的妖魔是什么烟号? 我笑而不...
    開封第一講書人閱讀 59,938評論 1 299
  • 正文 為了忘掉前任绊谭,我火速辦了婚禮,結果婚禮上汪拥,老公的妹妹穿的比我還像新娘达传。我一直安慰自己,他們只是感情好迫筑,可當我...
    茶點故事閱讀 68,955評論 6 398
  • 文/花漫 我一把揭開白布宪赶。 她就那樣靜靜地躺著,像睡著了一般脯燃。 火紅的嫁衣襯著肌膚如雪搂妻。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,549評論 1 312
  • 那天辕棚,我揣著相機與錄音欲主,去河邊找鬼。 笑死逝嚎,一個胖子當著我的面吹牛扁瓢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播懈糯,決...
    沈念sama閱讀 41,063評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼涤妒,長吁一口氣:“原來是場噩夢啊……” “哼单雾!你這毒婦竟也來了赚哗?” 一聲冷哼從身側(cè)響起她紫,我...
    開封第一講書人閱讀 39,991評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎屿储,沒想到半個月后贿讹,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,522評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡够掠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,604評論 3 342
  • 正文 我和宋清朗相戀三年民褂,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片疯潭。...
    茶點故事閱讀 40,742評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡赊堪,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出竖哩,到底是詐尸還是另有隱情哭廉,我是刑警寧澤,帶...
    沈念sama閱讀 36,413評論 5 351
  • 正文 年R本政府宣布相叁,位于F島的核電站遵绰,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏增淹。R本人自食惡果不足惜椿访,卻給世界環(huán)境...
    茶點故事閱讀 42,094評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望虑润。 院中可真熱鬧成玫,春花似錦、人聲如沸拳喻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽舞蔽。三九已至荣病,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間渗柿,已是汗流浹背个盆。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留朵栖,地道東北人颊亮。 一個月前我還...
    沈念sama閱讀 49,159評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像陨溅,于是被迫代替她去往敵國和親终惑。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,747評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 前言 Python的創(chuàng)始人為Guido van Rossum门扇。1989年圣誕節(jié)期間雹有,在阿姆斯特丹偿渡,Guido為了打...
    依依玖玥閱讀 3,573評論 6 37
  • TITLE: 編程語言亂燉 碼農(nóng)最大的煩惱——編程語言太多。不是我不學習霸奕,這世界變化快溜宽! 有時候還是蠻懷念十幾、二...
    碼園老農(nóng)閱讀 5,336評論 2 35
  • 我不會寫詩 但好久以來 就想寫一首給母親的詩 我不知該如何開頭质帅,如何結尾 只知道心懷善念的寫總歸沒錯 媽媽适揉,今天,...
    或許就在眼前閱讀 586評論 14 15
  • 可寫性如果你給屬性加上了readonly的特性煤惩,編譯器就不會自動生成setter訪問器方法嫉嘀,屬性也就變成了只讀的。...
    _叫我小賤閱讀 323評論 0 0
  • 38 6月底的一天魄揉,上班時吃沪,阿九對我說,“阿貓什猖,給你介紹個對象吧票彪?” “誰啊不狮?”我笑了笑降铸,只當他是開...
    路雨飛飛閱讀 205評論 0 0