Robotics overview

嗨大家好 我是B96的方敬昕(Zach)。今天在這裡跟大家分享我對Robotics這個領域的粗淺了解,以及在這個工作職場上須要具備哪些知識和技能。

先簡短介紹我的學經歷:很慚愧的,我大學並沒有做太多機器人學相關的專題或課程,我對機器人學的啟蒙一直要到當完兵在台灣工作以後。一年半在醫療機器人的專案下,逐漸確認這是我非常有興趣,想要繼續專精的領域。申請美國學校也剛好錄取了心中的前幾志願-CMU MRSD Program,這才正式踏上漫長的機器人學修練之路。CMU畢業後加入一家波士頓地區的新創公司,專注在倉儲機器人的開發。加入的時候是非常早期的員工,兩年半後公司不論在人數和業務都成長了10+倍。2019年初來到現在的任職單位,參與東京奧運Robot的開發。

機器人領域有趣的地方在它是機械系,電機系,與資工系三個很重要工程領域的交集地帶,眾多包羅萬象的工程知識和技能才能成就一個會動但是不保證聰明的機器人系統。動力學,機構學,機械設計,自動控制,系統工程,物理模擬,Sensors/Optics,電腦視覺,軟體工程,演算法,資料結構, 機率與線性代數,C++/Python Programming,以及現在最熱的Machine Learning, Deep Learning, Neural Network都算是在Robotics領域常碰到的所需的技能。當然一個人不用什麼都會,但它的確是一個很大,非常active及multi-disciplined的領域,不論在學界或是業界。

以就業市場來說:目前在美國,Robotics或Self-driving相關的工作以加州,波士頓地區,匹茲堡,密西根地區,西雅圖為主要的城市(沒有按照順序排行)。Self-driving尤其是現在工程人力的一大需求。Robotics現階段主要還是以工業用手臂,倉儲或一些相對controlled環境(超市或大賣場)的應用及AR/VR為主。我個人認為兩者重疊的部分很多,甚至可以說Self-driving是Robotics的一個大分支。但因為其市場模型較為成熟,所以獲得的資金挹注對比其他Robotics subarea多了非常多。其他的Robot領域還包含:Drone, Humanoid robot,Mining/agricultural robot, Medical/surgery robot等。

就我的自身經驗,Mobile Robot系統本身的主要研究或工程領域可以大致簡單地分類為:Localization(Robot怎麼知道自己在哪裡,Kalman Filter或Particle Filter),Navigation(怎麼決定每一剎那理想的移動速度和方向,如何蔽障),Control(從算出的速度曲線中,怎麼一路轉換到馬達的傳動軸,讓機器人有最好的運動表現),Planning(從現在地到目的地該怎麼計畫,需不需要定時重算路徑,怎麼最後效率夠快的算出路徑),Perception(有了sensor data怎麼轉換成robot也了解的資訊,辨識人類和其他物品的差別,濾掉雜訊,影像或3D資料處理),Hardware(多少運算應該用什麼onboard處理器,USB or I/O,及不同子系統間硬體的連接)。不論在軟體還是硬體上,整個robot系統就是由非常多不同的子系統互相連接溝通建構而成。同時如果一個robot系統出現錯誤,了解廣泛的軟硬體知識可以幫助你更快速的找到潛在的解決辦法。

具體技能上,C++/C或Python是主要會用到的軟體語言。Linux或是Ubuntu幾乎是標準的作業系統,了解Linux-based OS也是在這個產業很重要的一環。CPU/GPU以及電腦運算時的基本概念(RAM,memory,cache)也都是或多或少要知道的背景知識。除此之外,ROS(Robot Operating System,即使它不是一個作業系統)也是當今機器人相關產業很常提到的工具。如果是要著墨在機器人的軟體上,資料結構、演算法都是必須的。如果對電腦視覺相關領域有興趣的,線性代數、機率和最佳化(Optimization)就非常重要了。

以上,是由我的經驗和視角對Robotics的見解,如有偏頗歡迎於以下討論。如果有任何問題或想了解更多,也可以聯絡我zachfang1@gmail.com。

11個讚

首先非常感謝你的分享!

在我研究所時對 Robotics 的印象是覺得 Computer Science 的比重大於 ME/EE,原因是我那時候修的課程教授是在 Computer Science Department 下,所以花了非常多時間在教 Localization, Navigation algorithms。即使是多個系所合開的課程還是讓我覺得 ME 有點像是次等公民。

請問在職場上你會覺得 ME 所負責的東西相對比較少嗎?

謝謝

1個讚

一樣僅是我的個人觀點。

我不會覺得機械系在機器人的領域是次等公民,原因有二:

  1. 由於它真的需要不同的知識面象,其實各個背景出生的學生如果學有專精都可以在這個領域成為不可或缺的拼圖。舉個例子,其實在機器手臂,或是現在的self-driving的應用上,如果機械系的學生在自動控制、強韌控制、動力學上有好好著墨,在工作上其實很吃香,因為這點算是機械系和電機系會碰到,但是資工系反而比較少強調的部分。力學和物理相關的背景,也在robot simulation上占很重要的地位。怎麼在實際模擬摩擦力,物體型變及受力的方向等等,都是非常艱澀難以取代的工作。現在有名的機器人學教授,researcher 也有不少是機械系出身的。
  2. 雖然我們常區隔機械、電機、資工等等,但其實我覺得在國外的課程學制下,它們並沒有那麼排他性。很多我的同事都是C3取2雙主修或是一主修一副修。我現在的同事即便是機械系畢業,他同時對動力學、控制原理到software engineering到programming都極為在行。我認為給予適當的誘因和project,Robotics的最大公約數就是make it work,然後從這個過程中三者全部都派得上用長。

總結來說,不可否認軟體程式語言是現在這個時代很重要的工具,但它其實已經變成是所有人或所有系所共同的工具。疊加在這之上,各個面向的專業都可以對robot產生重要的影響力。

感謝~

4個讚

感謝學長的分享!

另外想請問在美國機器人領域中是否有一塊是針對硬體機構設計的呢?在學校機器人專題內部有碰到滿多機構設計的部分,但從周遭聽說的美國機器人產業的確就像學長說的多以軟體為主,學長也有提到硬體有系統間的硬體連接、處理器等等。因此想請問學長是否機器人的機構設計較少,比較少有工作機會或研究方向呢?

謝謝學長!

2個讚

Hi Chih-Ling,

有的,機器人的硬體機構設計是這個產業的必需。但就我的經驗觀察,真正在產業的工作内容通常不只有侷限在機構設計,對於機構的材料和可靠度、基本的應力分析或估算robot的質心、3D列印或快速的prototyping(設計一個物理性質相似的機構以供軟硬體測試)都是我認識的機械工程師負責的範圍。除此之外,如果機器人剛好需要小批量量產,通常要馬是公司的硬體部門自己生產(通常只會負責prototyping),或是找contract manufacturer(比較常見),對內或對外的溝通也很有可能是機械工程是會負責到的部分。我的經驗主要來自中小型(~120人)的機器人公司和偏研究的單位(不會自己有製造部門),所以我所接觸到的機械工程師可能在工作分工上不會那麼細。

以工作機會上來說,雖然不可或缺但比起來的確是沒有那麼多。如果是機構設計的研究方向上,我了解的有一些比較特殊用途的機器人,譬如說蛇形機器人、仿生機器人(Festo是一家做這個非常有名的公司),或soft robotics(不單單只是硬梆梆的機構相連,如何像人一樣是"軟"的、有觸覺、有力回饋的等等)。但這方面我的知識就比較不足,可能無法提供太多建議。

希望這樣有回答到你/妳的問題。

3個讚

補充方敬昕的回覆,我覺得機構設計在機器人領域還是非常非常重要的,發那科日本總部的機器人事業群就是分成 “メカ (Mechanical)” 跟 “ソフト (Software)”,兩個核心研究所。因為我們在做的是能夠高速運行又能提起重物的工業機械手臂,又例如我們需要設計能夠碰撞檢測與柔順的Hand Guidance的協作型機器人,更是需要軟硬體的整合才能夠實現。雖然我從事的是偏演算法開發的人,跟機構設計較無直接關係,但是我還是能說機構設計是非常重要的環節。

除了在我熟悉的工業機器人領域之外,還有其他機器人的應用更加凸顯機構設計的重要性,例如外骨骼(Exoskeleton),如何設計可以讓穿戴者安全舒適並且達到省力,甚至讓癱瘓病人能夠自然行走,這如果沒有輕便與巧妙的設計是無法達成的。

5個讚