軟體架構 – 水下機器人 航海家號II

在航海家號II設計初期,使用者的操控方式成為團隊思考的重心之一。使用者的操控方式決定於使用何種操控器。許多水下機器人廠商會客製屬於自己的控制器。而ROV MAKER團隊決定採用筆電/平板做為航海家號II的操控平台。

筆電/平板經歷過數十年的發展,不論CPU效能,電池容量,體積,甚至於售價都已接近成熟。筆電/平板幾乎成為普遍的消費性產品。同時,筆電上的軟體開發更是一日千里,多種程式百花齊放,除了各自提供完整編譯環境,更帶動雲端技術成熟發展。以筆電為操控平台,使用者除了可以快速開發航海家號II的新功能外,亦可輕鬆的使用既有的雲端技術,比如臉書直播(FB LIVE) 或雲端大數據資料收集。

在各種筆電套裝軟體中,我們選擇瀏覽器作為軟體操控的基礎,特別是Google開發的瀏覽器Chrome。Chrome有Google強烈支持並且開發許多以JavaScript語言為基礎的應用插件 (Plug-In)。

瀏覽器基礎的 Server-Client模式成為Voyager II 軟體架構骨幹。在Server端(航海家好II),我們採用了以NodeJs為基礎的後台服務器服務。後端(Server)與前端(Client)皆以JavaScript語言開發與維護,提高了軟體開發速度。

同時在水下機器人航海家號II端(Server Side),我們則以C語言撰寫了驅動程式,即 ROV BSP。利用C語言的低階語言特性,ROV BSP可快速執行使用者所下達的命令並執行相關的硬體驅動。

航海家號II的即時視訊傳輸採用WebRTC協議,這是一種基於UDP/IP網路視訊協議。這樣的視訊協議,大大降低了以WIFI傳輸信號時的視訊信號延遲的可能性。

以下是航海家號II已實現的功能

  • 影像即時傳輸,基於WebRTC傳輸協議
  • 感測器驅動程式 (慣性/深度/溫度/電子羅盤)
  • 使用者介面 (HTML/CSS/JS)
  • 工廠測試模式
  • 自動深度控制,基於 PID演算法
  • 720P 錄影 (巴洛克版錄影或瀏覽器錄影)
  • 720P拍照 (瀏覽器拍照)
  • 感測器資料側錄
  • OpenCV JavaScript 版本整合 (提供簡易測試用例介面)

您可以參考相關視頻了解航海家號II 透過筆電/平板的操控, 熟悉這套軟體架構設計帶來的好處。

發佈留言