回覆列表
  • 1 # 暗能量之灰色地帶

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

      也許更恰當的問題應該是先從哪種程式語言開始學起?但是,你仍然會得到不同的看法,但是許多機器人專家會同意從關鍵程式語言開始學。  

      在本文中,我們將會審視在機器人學中最流行的10種程式語言,深入探討它們各自的優缺點以及使用和棄用它們的原因。  

      這實際上是個很有道理的問題——畢竟,如果你從不付諸實踐,那為什麼要花大量的時間和精力去學習一種新的程式語言呢?如果作為一名機器人學新人,你當然會想學習一種確實對你的職業生涯很有用的程式語言。

      

      不幸的是,如果你去問一屋子的機器人學專家,“什麼是機器人學中最好程式語言?”,你永遠不會得到一個直接的答案。  

      電氣工程師會從工業機器人技術這個角度給出不同的答案。計算機視覺程式設計師給出的答案會跟認知機器人專家給出的不一樣。而且,每個人都會對什麼是最好的程式語言有自己的看法。最終,大多數人都會贊同的答案就是”這個取決於。。。“。對於一個新入行正在試圖決定要先學哪種語言的機器人學者來說,這是一個相當無用的答案。即使這是最現實的回答——因為它的確取決於你想要開發的應用程式和你在使用的系統。  

      對於機器人專家來說,最重要的事情是開拓你的”程式設計思維”,而不是精通一種特定的程式語言。從很多方面來說,從哪種程式語言開始學習真的無關緊要。你學習的每種語言提升了你的程式設計思維,擁有了這種思維,去學習一種新程式語言的時候會容易不少。  

      機器人學中最流行的10種程式語言  

      世界上有1500多種程式語言,都要學的話是太多了。目前,在機器人學中有這10種最流行的程式語言——如果你喜歡的不在這裡,請在留言區告訴大家。對於機器人學,每種程式語言有不同的優點。我只是部分地按照重要程度從低到高對它們進行了排序。  

      10.BASIC/Pascal  

      BASIC和Pascal是我最早學過的兩種程式語言。不過這並不是我把它們列在這裡的原因。對於幾種工業機器人語言,它們是基礎,下面說明一下。BASIC是為初學者設計的(BASIC是縮寫,BeginnersAll-PurposeSymbolicInstructionCode),它讓初學者可以從一種非常簡單的程式語言開始學習。Pascal旨在鼓勵好的程式設計習慣,還引入了結構,例如指標,這讓Pascal成為從BASIC到更復雜語言的一塊“敲門磚”。如今,這兩種語言如果要說是好的“日常使用”程式語言,那是有點過時了。不過如果你準備做很多底層編碼或是想要熟悉一下其它工業機器人程式語言,學習一下還是有用的。  

      9.工業機器人程式語言  

      幾乎每一個機器人制造商都開發了他們自己專有的機器人程式語言,這成了工業機器人行業中的一個問題。透過學習Pascal,你會熟悉它們中的一部分。但是每次開始使用新的機器人時,你還得學習一種新的程式語言。  最近幾年,ROS行業已經開始提供更標準化的替代語言給程式設計師。但是如果是一個技術人員,你仍然更可能不得不使用製造商的程式語言。  

      8.LISP  

      LISP是世界上第二古老的程式語言(FORTRAN更古老,但只早了一年)。相比今天提到很多其它程式語言,它的應用並不廣泛。不過在人工智慧程式設計領域它還是相當重要的。ROS的一部分是用LISP寫的,雖然你不需要掌握這個來使用ROS。 7.硬體描述語言(HDLs)  

      硬體描述語言一般是用來描述電氣的程式設計方式。這些語言對於一些機器人專家來說是相當熟悉的,因為他們習慣FPGAs(FieldProgrammableGateArrays)程式設計。FPGAs能讓你開發電子硬體而無需實際生產出一塊矽晶片,對於一些開發來說,這是更快更簡易的選擇。如果你沒有開發電子原型產品,你也許永遠不會用HDLs。即便如此,還是有必要了解一下這種程式語言,因為它們和其它程式語言差別很大。一個重點:HDLs所有的操作是併發的,而不是基於處理器的程式語言的順序操作。  

      6.Assembly  

      Assembly讓你能在0和1數位上進行程式設計。基本上這是最底層的程式語言。就在最近,最底層的電子需要Assembly進行程式設計。隨著Arduino和其它如微控制器的崛起,現在你可以使用C/C++在底層方便地程式設計了。這意味著Assembly對於大多數機器人專家來說也許會變得更不必要了。  

      5.MATLAB  

      MATLAB以及和它相關的開源資源,比如Octave,一些機器人工程師特別喜歡,它被用來分析資料和開發控制系統。還有一個非常流行的機器人工具箱——MATLAB。我知道一些僅僅使用MATLAB就能開發出整個機器人系統的專家。如果你想要分析資料,產生高階影象或是實施控制系統,你也許會想學習MATLAB。     

      4.C#/.NET  

      C#是微軟提供的專用程式語言。我把C#/.NET放在這裡,主要是因為微軟機器人開發員工作包(MicrosoftRoboticsDeveloperStudio),這個包的主要開發語言是C#。如果你準備用這個系統,那麼你很可能必須要用C#。

     

      3.Java  

      作為一位電子工程師,我總是對一些計算機科學學位課程將Java作為第一種程式語言讓學生們學習感到驚訝。Java對程式設計師隱藏了底層儲存功能,這讓它比起一些語言(如C語言)來說,編寫要容易些,但這也意味著你會更少地理解底層程式碼的執行邏輯。如果你有計算機科學背景並轉到機器人學(很多人是這樣的,特別是在研究領域),你也許已經學過Java。像C#和MATLAB,Java是一種解釋性語言,這意味著它不會被編譯成機器程式碼。相反,Java虛擬機器在執行時解釋指令。使用Java,理論上讓你可以在不同的機器上執行相同的程式碼,這得感謝Java虛擬機器。在實踐中,這不總是可行的,有時會導致程式碼執行緩慢。但是Java在一部分機器人學中非常流行,因此你也許需要它。  

      2.Python  

      近年來,學習Python的人有一個巨大的回潮,特別是在機器人領域。其中一個原因可能是Python(和C++)是ROS中兩種主要的程式語言。與Java不同,Python的重點是易用性,Python不需要很多時間來做常規的事情,如定義和強制轉換變數型別。這些在程式設計裡面本是很平常的事。另外,Python還有大量的免費庫,這意味著當你需要實現一些基本的功能時不必“重新發明輪子”。而且因為Python允許與C/C++程式碼進行簡單的繫結。這就意味著程式碼繁重部分的效能可以植入這些語言,從而避免效能損失。隨著越來越多的電子產品開始支援“開箱即用”Python(與RaspberryPi一道),我們可能會在機器人中看到更多Python。  

    注:The Raspberry PiFoundation:英國一個小型的慈善組織,成立的宗旨在於推廣科技,而非以銷售技術來營利。

      

      1.C/C++  

      最後我們到了排名第1的機器人程式語言!許多人認為C和C++對新入行的機器人學家是一個很好的起點。為什麼?因為很多硬體庫都使用這兩種語言。這兩種語言允許與低級別的硬體進行互動,允許實時效能,是非常成熟的程式語言。現如今,你可能會使用C++比C多,因為前者具有更多的功能。C++基本上是C的一種延伸。首先學一點C會很有用,特別是當你發現一個硬體庫是用C編寫的。C/C++並不是像Python或MATLAB那樣簡單易用。同樣用C來實現相同的功能會需要大量時間,也將需要更多行程式碼。但是,由於機器人非常依賴實時效能,C和C++是最接近我們機器人專家“標準語言”的程式語言。

  • 2 # 城管哎

    人工智慧熱潮,最大的原因是深度學習技術的發展,深度學習,可以簡單地這樣理解,把一堆資料(語音資料,影片資料,人臉資料)丟給機器,告訴他我需要得到什麼資料,讓它自己去學習判斷,是一種不管過程如何只要丟給機器就能得到結果的思想方式

  • 中秋節和大豐收的關聯?
  • 溪流釣用多大吃鉛量浮漂?