小編想為家用機器人挑選一雙眼睛,所以展開一趟硬體挑選與規格比較的旅程。在這篇記錄裡,小編將為大家介紹旅途中遇到的相關技術與現有產品。希望這段故事,能為大家在做機器視覺挑選設備時,提供一些經驗參考。
故事的開始,小編先為家用機器人設定兩個視覺功能:(1) 要能建立家裡的地圖 (使機器人可以自動導航);(2) 要能看見障礙物 (使機器人可以避開危險)。想要建立地圖,機器人的眼睛就需要能測量它與牆壁的距離,並且由於是室內環境,所以測量距離的尺度在數公尺的範圍即足夠,不需要太遠、也不需要毫米等級的精準度。想要看見障礙物,機器人的測距能力就需要獲得「一整面」的資訊,才能偵測是否有異物接近機器人。
這個設定,讓小編優先排除了單點或單線的測距方式,如雷射測距儀、光學雷達 (LIDAR)。雷射基礎的技術可以在短距離與長距離都精確測量微米等級的精度,但是價格昂貴,若要獲得一整面的距離資訊,恐怕會讓機器人的價格難以走進家庭。因此,小編開始考慮使用「深度攝影機」。
深度攝影機是泛稱能提供深度資訊的相機,也就是它提供的「畫面」代表的是前方物體距離相機的遠近。目前有四種方法常被用於實踐深度攝影機,分別是:
1. 時差測距 (Time of Flight, ToF):
以測量紅外線的飛行時間來測距。用於短至中距離,精密至 mm。
透過雙眼相差來測距。適用於長距離,無法測量平滑表面。
3. 固定結構光 (Fixed structured light):
透過條紋變化來測距。用於超短距離,精密至 mm。
4. 可程式化結構光 (Programmable structured light):
以格雷碼方式多次投射結構光,提升測量精度。用於超短距離時可精密至 um。
以上技術都能提供一整面的深度資訊。其中,時差測距類型深度攝影機的工作距離最符合小編的室內需求,因此選擇時差測距為基礎的深度攝影機做為家用機器人的眼睛。五年前,華碩專為立體視覺開發者們提供名為 Xtion Pro Live 的深度攝影機產品,只可惜目前已經停售。所以小編需要將視野放到國外,尋找最合適的產品。很幸運地,Stimulant 實驗室發表了現有各款深度攝影機產品的研究與比較。以下小編將針對各個產品提出適用性分析。
使用的是 PrimeSense 的晶片,由於該公司已被 Apple 收購,目前已停產。
2. Leap Motion:
工作距離在 0.025 m – 0.6 m,不符合家用機器人的需求。
3. DUO mini lx:
工作距離在 0.3 m – 2.4 m,價格 US 695,遠高於其他產品。
4. RealSense F200:
工作距離在 0.2 m – 1.2 m,不符合家用機器人的需求。
使用立體視覺法。不屬於時差測距的討論範圍。
以下三款是可能較適用的產品:
6. Orbbec Astra:
工作距離在 0.4 m – 8 m,軟體開發套件 (SDK) 為 OpenNI。
7. RealSense R200:
工作距離在 0.5 m – 3.5 m,SDK 為 Intel 自己出的工具。
工作距離在 0.5 m – 4.5 m,SDK 為微軟出的 Kinect v2 SDK。
在比較這三款產品之前,先要說一段 OpenNI 的故事。OpenNI 是 PrimeSense 這家公司出的 SDK,當時由於微軟的 Kinect 一代使用的是 PrimeSense 的晶片,所以 OpenNI 也能開發 Kinect 一代的程式。隨著 PrimeSense 在 2013 年被蘋果電腦收購,OpenNI 也就終止維護了。另一方面,微軟的第二代 Kinect 則改採用 Canesta 公司的晶片,並且後來微軟也收購了這家公司。
基於開發工具的維護來考量時,使用 OpenNI 的 Orbbec Astra 較為不利。若基於開發工具的使用人數來考量,則微軟的 Kinect for XBox One 優於 Intel 的 RealSense R200。因此,小編對於避障與建立地圖導航的應用,在技術與各產品的眾多比較與考量後,選擇使用 Kinect for XBox One 來當家用機器人的眼睛。
大家覺得這趟旅程有收穫嗎?如果有什麼回饋,歡迎跟小編聯絡哦!