機(jī)器人研發(fā)熱門語言排行

姓名:李偉? ? ? ? 學(xué)號(hào):16050120047

轉(zhuǎn)載自http://news.51cto.com/art/201711/559315.htm大州,有刪節(jié)屋匕。

【嵌牛導(dǎo)讀】:如果你在 Stack Overflow式塌、Quora色瘩、Trossen丈冬、Reddit 或 Research Gate 等機(jī)器人專家或者社區(qū)論壇上提問“機(jī)器人最好的編程語言是什么?”蓉驹,毋庸置疑,你將會(huì)收到不同的答案揪利。

【嵌牛鼻子】:機(jī)器人态兴,編程語言,JAVA疟位,Python 瞻润,C/C ++

【嵌牛提問】:進(jìn)行人工智能機(jī)器人研發(fā),應(yīng)該選擇哪種編程語言献汗?

【嵌牛正文】:  

  這是很多機(jī)器人專家在自身的職業(yè)生涯中都會(huì)存在的一個(gè)入門級(jí)思考敢订。畢竟,在學(xué)習(xí)一門編程語言時(shí)罢吃,需要花費(fèi)大量的時(shí)間及精力楚午,如果掌握了這門語言卻又不發(fā)揮其真實(shí)的價(jià)值,又有什么用呢尿招?但不幸的是矾柜,到目前為止,也沒有一個(gè)確切而直接的答案出現(xiàn)就谜。

 ? 電子工程師會(huì)給予工業(yè)機(jī)器人技術(shù)人員不同的答復(fù)怪蔑。大多數(shù)人都會(huì)相信的“最好的入門級(jí)編程語言”的答案是“這將取決于哪一領(lǐng)域”。其實(shí)最合理的答案丧荐,應(yīng)該是它取決于你想開發(fā)什么類型的軟件缆瓣,以及你正在使用什么樣的系統(tǒng)。且對(duì)于機(jī)器人科學(xué)家來說虹统,最關(guān)鍵的是建立“編程思維”弓坞,而不是用一種特定的語言來局限。在很多方面车荔,首先學(xué)習(xí)哪種編程語言并不重要渡冻,重要的是在通過編程思維來不斷提高自身的技能。

  在本文中忧便,我們將介紹程序員在機(jī)器人編程中最流行的十大編程語言族吻,并通過對(duì)比其優(yōu)缺點(diǎn),希望可以給予開發(fā)者提供一定的參考方向,做出自己的最佳選擇超歌。下面按優(yōu)先級(jí)從低到高所列舉了十大編程語言排行榜砍艾。

10. BASIC / Pascal

  BASIC 和 Pascal 是我曾學(xué)過的兩種主要的編程語言,但這并不是我將其列入此排行榜的原因握础。事實(shí)上辐董,它們可以很好地運(yùn)用于工業(yè)機(jī)器人編程上。BASIC 針對(duì)初學(xué)者而設(shè)計(jì)禀综,這使它可以成為開發(fā)者簡(jiǎn)單的入門語言简烘。

  Pascal 旨在提高編程實(shí)踐,還引入了一些類似于指針這樣的構(gòu)建定枷,這使得它成為從 BASIC 晉升到更高級(jí)的其他語言的一個(gè)奠基石孤澎。如今,這兩種語言對(duì)“日常應(yīng)用”的程序語言來說有些過時(shí)了欠窒。但如果你準(zhǔn)備進(jìn)行一定程度的底層編碼覆旭,或需要熟悉其他工業(yè)機(jī)器人語言時(shí),那么了解它們會(huì)對(duì)你有所幫助岖妄。

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

  實(shí)際上型将,每一個(gè)機(jī)器人制造商都已經(jīng)建立了自己專有的限制性機(jī)器人編程語言,這一直是工業(yè)機(jī)器人領(lǐng)域的一個(gè)問題荐虐。通過學(xué)習(xí) Pascal七兜,你會(huì)熟悉它們中的一部分。但是福扬,當(dāng)你開始在另一個(gè)機(jī)器人平臺(tái)編碼時(shí)腕铸,還需要使用不同的編程語言。

  如機(jī)械臂領(lǐng)域?qū)嵙?qiáng)勁的 ABB 公司铛碑,用的語言系統(tǒng)叫做 RAPID狠裹;來自于德國(guó)的 KUKA,語言和公司名字一樣也叫做 KUKA汽烦;Comau 利用 PDL2涛菠;Yaskawa 利用 Advise 和 Kawasaki 利用 AS。在這一點(diǎn)上撇吞,F(xiàn)anuc 機(jī)器人利用 Karel俗冻,Staubli 機(jī)器人利用 VAL3 和 Widespread Robots 利用 URScript。

  最近梢夯,像 ROS 行業(yè)已經(jīng)開始為程序員提供更加標(biāo)準(zhǔn)化的替代語言選擇言疗。但是如果是一個(gè)技術(shù)人員晴圾,你仍然更可能不得不使用制造商的編程語言颂砸。

8. LISP

  LISP 是世界上第二古老的編程語言(FORTRAN 更古老,但只差一年)。相比本文提到很多其它編程語言人乓,它的應(yīng)用并不廣泛勤篮。不過在人工智能編程領(lǐng)域它還是相當(dāng)重要的。ROS 的一部分是用 LISP 寫的色罚,雖然你不需要掌握這個(gè)來使用 ROS碰缔。

7. 硬件描述語言(HDL)

  硬件描述語言一般是用來描述電氣的編程方式。這些語言對(duì)于一些機(jī)器人專家來說是非常常見戳护,因?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ā)的坝锰,而不是基于處理器的編程語言的順序操作。

6. Assembly

  Assembly 使你能夠在“1 和 0 級(jí)”程序中進(jìn)行編程重付。 這是最底層的編程語言顷级。在過去,大多數(shù)底層硬件需要在 Assembly 中進(jìn)行編程堪夭。 隨著 Arduino 和其他類似微控制器的興起愕把,你現(xiàn)在可以利用 C / C ++ 在底層進(jìn)行有效的編程,這意味著 Assembly 對(duì)于一般的機(jī)器人科學(xué)家來說森爽,顯然已不太重要恨豁。

5. MATLAB

  MATLAB、及其相關(guān)的開源語言(例如 Octave)爬迟,是一些著名的機(jī)器人科學(xué)家用于調(diào)查數(shù)據(jù)和創(chuàng)建控制系統(tǒng)常用的語言橘蜜。

  此外,還有一個(gè)非常有名的 MATLAB 機(jī)器人工具箱付呕。如果你需要分析數(shù)據(jù)计福,創(chuàng)建高級(jí)圖表或執(zhí)行控制系統(tǒng),那就需要學(xué)習(xí) MATLAB徽职。

4. C#/ .NET

  C# 是微軟提供的一種限制性編程語言象颖。這很大程度上是由微軟機(jī)器人工程師工作室(Microsoft Robotics Studio Studio)提供的,微軟機(jī)器人工程師工作室將其作為其基本語言姆钉。如果你使用這個(gè)框架说订,就必須學(xué)習(xí) C#抄瓦。盡管如此,想要長(zhǎng)期地提高自身的編碼能力陶冷,首先學(xué)習(xí) C / C ++ 不失為一個(gè)好的選擇钙姊。

3. Java

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

  Java 對(duì)程序員“掩蓋”底層存儲(chǔ)功能煞额,這使得 Java 對(duì)程序的要求要比 C 語言對(duì)程序的要求更低一些,但這意味著你對(duì)底層代碼的運(yùn)行邏輯了解比較少沾谜。從軟件工程的基礎(chǔ)到探索機(jī)器人技術(shù)的未來膊毁,你很可能已經(jīng)學(xué)習(xí)了 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é)中非常流行,因此你也許需要它坪圾。

2. Python

  近來晓折,尤其是在機(jī)器人領(lǐng)域,Python 已經(jīng)有了翻天覆地的變化兽泄。其中一個(gè)原因是 Python(和 C ++)是 ROS 中的兩種主要編程語言漓概。

  如同 Java 一樣,它也是一種解釋性語言病梢。但與 Java 不同的是胃珍,Python 的重點(diǎn)是易用性。Python 不需要很多時(shí)間來做常規(guī)的事情蜓陌,如定義和強(qiáng)制轉(zhuǎn)換變量類型觅彰。這些在編程里面本是很平常的事。另外钮热,Python 還有大量的免費(fèi)庫填抬,這意味著當(dāng)你需要實(shí)現(xiàn)一些基本的功能時(shí)不必“重新發(fā)明輪子”。而且由于它與 C / C ++ 代碼之間可以進(jìn)行簡(jiǎn)單的綁定隧期,這就意味著代碼繁重部分的性能可以植入這些語言飒责,從而避免性能損失蛀骇。

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

1. C / C ++

  機(jī)器人第一編程語言——C/C++!很多人都認(rèn)為 C 和 C ++ 對(duì)新的機(jī)器人科學(xué)家來說是一個(gè)良好的開端鸵闪。

? ? ? ? 其主要原因是如今有大量的硬件庫都使用這兩種語言檐晕。它們適用于低級(jí)別的硬件,允許實(shí)時(shí)性能蚌讼,是非常成熟的編程語言”倩遥現(xiàn)在,你可能會(huì)使用 C++ 遠(yuǎn)超過 C篡石,因?yàn)?C++ 具有更大的實(shí)用性芥喇。C ++ 是 C 語言的擴(kuò)展,從基礎(chǔ)的 C 學(xué)起凰萨,你也會(huì)收獲很多继控,特別是當(dāng)你發(fā)現(xiàn)一個(gè)硬件庫是用 C 編寫的。但是 C / C ++ 編寫的硬件庫不像 Python 或 MATLAB 那樣簡(jiǎn)單易用胖眷。使用 C 來執(zhí)行類似的功能武通,可能需要相當(dāng)長(zhǎng)的時(shí)間,并且需要更多的代碼行珊搀。盡管如此冶忱,由于機(jī)器人極其依賴實(shí)時(shí)性能,所以 C 和 C ++ 是最接近機(jī)器人科學(xué)家心目中“標(biāo)準(zhǔn)語言”的編程語言境析。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末囚枪,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子劳淆,更是在濱河造成了極大的恐慌链沼,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沛鸵,死亡現(xiàn)場(chǎng)離奇詭異忆植,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)谒臼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門朝刊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蜈缤,你說我怎么就攤上這事拾氓。” “怎么了底哥?”我有些...
    開封第一講書人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵咙鞍,是天一觀的道長(zhǎng)房官。 經(jīng)常有香客問我,道長(zhǎng)续滋,這世上最難降的妖魔是什么翰守? 我笑而不...
    開封第一講書人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮疲酌,結(jié)果婚禮上蜡峰,老公的妹妹穿的比我還像新娘。我一直安慰自己朗恳,他們只是感情好湿颅,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著粥诫,像睡著了一般油航。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上怀浆,一...
    開封第一講書人閱讀 51,554評(píng)論 1 305
  • 那天谊囚,我揣著相機(jī)與錄音,去河邊找鬼执赡。 笑死秒啦,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的搀玖。 我是一名探鬼主播余境,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼灌诅!你這毒婦竟也來了芳来?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤猜拾,失蹤者是張志新(化名)和其女友劉穎即舌,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體挎袜,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡顽聂,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了盯仪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片紊搪。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖全景,靈堂內(nèi)的尸體忽然破棺而出耀石,到底是詐尸還是另有隱情,我是刑警寧澤爸黄,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布滞伟,位于F島的核電站揭鳞,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏梆奈。R本人自食惡果不足惜野崇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望亩钟。 院中可真熱鬧乓梨,春花似錦、人聲如沸径荔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽总处。三九已至,卻和暖如春睛蛛,著一層夾襖步出監(jiān)牢的瞬間鹦马,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工忆肾, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留荸频,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓客冈,卻偏偏與公主長(zhǎng)得像旭从,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子场仲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

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