iT邦幫忙

2022 iThome 鐵人賽

DAY 5
1

除了自動化的雲端運算部署之外。在這個案子中很重要的就是把地端與雲端串連起來。

原先我們採用VPN做設定,但因為在雲端的k8s環境下,需要做的VPN gateway設定讓ROS可以透過layer2去做群播訊息的功能,太過複雜而棄用。詳細步驟的過程可以參考這篇文章

主要是以openvpn access server來架設VPN,並依照所使用的雲端服務環境(上述文章是以AWS平台為主),設定好layer2 multicast的功能。

所以在棄用VPN+TCP+UDP的solution後。我們回到使用MQTT(Message Queuing Telemetry Transport)的方式。

MQTT的資訊傳輸是通過主題(topic)來管理的,這與ROS的topic方式類似,也採用發布(Publish)與訂閱(Subscribe)的方式來傳輸訊息。目前已是IoT(物聯網)的應用產品上,廣泛運用的通訊協定。

因為大量使用AWS的solution,所以MQTT溝通的部份,最終採用AWS Greengrass,雖然不盡滿意,但也是目前最快可以佈建的工具。其佈建過程可以參考此篇文章

主要透過TLS憑證,確認地端device與greengrass的信任機制,允許雙方相同topics間的溝通,以及在greengrass上設定IoT rules做不同topics之間的轉換,與雲端資料庫存取。

這邊我們的平台是採用dynamodb來存放topics資料。稍後的文章會有較詳細的過程解釋。

當雲端的運算服務透過監聽,收到來自地端透過greengrass傳送過來的topics訊息,就會開始在雲端佈建ROS base的運算環境,執行一次性的運算過程。並將結果存放於資料庫中。

因此,整個地端與雲端之間的關係,可以大致參考如下:
https://ithelp.ithome.com.tw/upload/images/20220923/20005722H9iW0nYgfP.png
其中面向用戶端的AR/VR透過瀏覽器呈現的介面,會藉由API去取得最終需要呈現給用戶的資料。


上一篇
[前置]MLOps名詞解釋與架構設計
下一篇
[前置]Gitlab+Jenkins for CI
系列文
IoT Cloud Computing on robotic vehicle30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言