iT邦幫忙

2022 iThome 鐵人賽

DAY 28
0
DevOps

IoT Cloud Computing on robotic vehicle系列 第 28

[部署]Deploy Model trainning to Cloud service

  • 分享至 

  • xImage
  •  

部署Model trainning的container服務在AWS Cloud上,目前還沒有完成。先用以下內容說明,與成大學生頌宇討論的內容。

Unity和Python程式(AI+ML+IoT Bridge)之間,決定先透過gRPC/ProtoBuf(全名Protocol Buffers,format可以參考google)來溝通,是以序列化(二進制)方式儲存replay的transform資料,這與ROS type個格式接近,比如PointStamped資料在ProtoBuf中可以這樣定義:

message PointStamped {
  message Header {
    uint32 seq;
    time stamp;
    string frame_id;
  }
  message Point {
    float64 x = 1;
    float64 y = 1;
    float64 z = 1;
  }
}

另外ProtoBuf可以儲存圖片轉成二進制的資料,所以圖片資料就可以先壓縮再傳送;然後再獨立一個connector(也就是之前架構圖中的Unity env creator)負責啟動與接收來自Python程式的資料。

https://ithelp.ithome.com.tw/upload/images/20221013/20005722NNmoVThCq5.png

ML部份採用RL(reinforcement learning) library來跑AI,使用PettingZoo這個open source API,支援 Multi-Agents、與OpenAI Gym也相似。

並以State-based的方式記錄frames(fixedUpdate,非更新每一個frame,而是間隔時間相同的更新),並最終將replay的transform資訊upload至DynamoDB。

之前說明仍然會需要使用GPU去render我們跑機器學習的結果,會使用VirtualGL來完成GPU的headless渲染(需先棄用mlagents)。

因為跑3D用到大量GPU機器,資源有限,到時候也需要message queue(這此可能選用Apache Kafka)來安排要render的比賽,動態產生Unity與Python程式的containers。

後續有時間再補充程式碼與scripts的部份。


上一篇
[部署]Commit code to trigger CD
下一篇
[部署]Deploy and Apply Model to FRC
系列文
IoT Cloud Computing on robotic vehicle30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言