在 AWS RoboMaker 上運行高擬真 O3DE 機器人模擬:無人機與自主機器人開發的雲端解決方案
本文介紹如何利用開源 3D 引擎 O3DE 搭配 AWS RoboMaker,在雲端執行高擬真機器人模擬。透過 Docker 容器化部署與 GPU 運算資源,開發者可大幅加速自主機器人的視覺感知與導航系統測試,降低實體硬體成本。

文章重點
- O3DE 開源 3D 引擎透過 ROS 2 Gem 模組支援機器人模擬,提供照片級渲染與 Nvidia PhysX 物理引擎
- AWS RoboMaker 支援在 GPU 雲端實例上以 Docker 容器執行高擬真模擬,免除本地硬體投資
- 教學使用 Robot Vacuum Sample 範例,容器映像檔約 20 GB,需推送至 Amazon ECR 進行部署
- 模擬系統需安裝 NICE DCV 遠端顯示協定,才能從 AWS RoboMaker 串流模擬畫面
- 透過 RViz 3D 視覺化工具可指定導航目標,機器人利用模擬光達感測器自主避障並建構環境地圖
自主機器人開發的挑戰
開發自主機器人是一項艱鉅的任務。由於需要同時開發、整合並測試硬體與軟體,在實體環境中進行這些工作既困難又昂貴。透過模擬技術,機器人開發者可以快速測試程式碼,在最終將軟體部署到實體硬體進行真實世界測試之前,反覆迭代多次。擁有高擬真度的模擬器,讓開發者能夠以高度信心測試機器人的視覺、感知和辨識系統。Open 3D Engine(O3DE) 是一款由社群驅動的開源模擬器,能提供機器人模擬所需的高擬真渲染品質。
O3DE 引擎簡介
O3DE 是一款能夠建立並運行逼真 3D 世界的 3D 引擎,原先為遊戲開發設計。為了實現照片級真實感渲染,它採用了名為 Atom 的可配置多執行緒渲染引擎,支援物理基礎渲染(PBR)、光線追蹤、後處理以及 Forward+ 渲染等功能。O3DE 還能透過其基於 Nvidia PhysX 的物理引擎模擬真實世界的物理效果。
O3DE 基於一種稱為 Gems 系統的模組化架構。這允許開發者根據專案需求選擇並配置任意數量的套件(Gems)。Gems 可以來自 O3DE 專案本身、第三方供應商,或是自行開發。隨著近期新增的 ROS 2 Gem,O3DE 現在能夠與使用機器人作業系統(ROS)的機器人模擬協同工作。透過提供場景渲染和物理建模,機器人開發者可以在純模擬環境中測試和訓練與真實世界高度相似的感知模型。
為了加速開發週期,開發者可以在雲端平行運行模擬來擴展規模。在雲端運行模擬為機器人開發流程帶來了效能、成本效益與可擴展性的優勢——可按需存取高效能 GPU 運算實例,無需在實體硬體或現場基礎設施上進行高昂投資。AWS RoboMaker 透過在 OCI 相容容器(如 Docker)中運行任何模擬器,支援基於 GPU 的模擬工作。
本教學將介紹如何從 O3DE 範例應用程式(Robot Vacuum Sample)建立 Docker 映像檔,並將其部署為 AWS RoboMaker 中的模擬工作。
前置條件
本教學需要具備 Amazon ECR 和 AWS RoboMaker 存取 IAM 權限的 AWS 帳戶登入。還需要開發系統或 AWS Cloud9 開發環境,並符合以下要求:
- Linux Ubuntu 20.04 或 22.04
- 至少 60 GB 的可用磁碟空間
- 已安裝 AWS CLI
- 已安裝 Docker 引擎
操作步驟
建置容器映像檔
Robot Vacuum Sample 應用程式附帶一個 Dockerfile,用於為模擬和導航堆疊建置容器映像檔。
注意: 本教學中所有命令列範例都基於工作空間資料夾
$WORKSPACE,它可以存在於主機系統上目前登入使用者可存取的任何位置。建議將環境變數$WORKSPACE設定為$HOME/o3de-sample。
步驟 1: 設定環境變數
export WORKSPACE=$HOME/o3de-sample
步驟 2: 複製 Robot Vacuum Sample 應用程式儲存庫
mkdir -p $WORKSPACE
git clone https://github.com/o3de/RobotVacuumSample $WORKSPACE/RobotVacuumSample
步驟 3: 建置名為 o3de_robot_vacuum_simulation 的模擬 Docker 映像檔
cd $WORKSPACE/RobotVacuumSample/Docker
docker build --build-arg IMAGE_TYPE=simulation -t o3de_robot_vacuum_simulation .
步驟 4: 建置名為 o3de_robot_vacuum_navstack 的導航堆疊 Docker 映像檔
cd $WORKSPACE/RobotVacuumSample/Docker
docker build --build-arg IMAGE_TYPE=navstack -t o3de_robot_vacuum_navstack .
步驟 5: 如果您的環境符合 O3DE 最低硬體需求,可按照 Docker readme 文件在本機執行這些容器。
建置並推送 AWS RoboMaker 容器映像檔至 Amazon ECR
為本機設計的容器映像檔需要安裝 NICE DCV 外掛才能在 AWS RoboMaker 上運行。NICE DCV 是一種高效能遠端顯示協定,用於從 AWS RoboMaker 串流模擬畫面。
步驟 1: 建立 $WORKSPACE/Dockerfile.simulation.robomaker 檔案,擴展模擬 Docker 映像檔以啟用 NICE DCV:
FROM o3de_robot_vacuum_simulation:latest
ENV WORKSPACE=/data/workspace
WORKDIR $WORKSPACE
ENV DEBIAN_FRONTEND=noninteractive
ENV LAUNCH_FULLSCREEN_OPT=1
# Install NICE DCV (from https://download.nice-dcv.com)
RUN wget https://d1uj6qtbmh3dt5.cloudfront.net/NICE-GPG-KEY
RUN gpg --import NICE-GPG-KEY
RUN wget https://d1uj6qtbmh3dt5.cloudfront.net/2023.0/Servers/nice-dcv-2023.0-15487-ubuntu2204-x86_64.tgz
RUN tar -xvzf nice-dcv-2023.0-15487-ubuntu2204-x86_64.tgz \
&& mkdir -p /etc/modprobe.d \
&& apt-get install -y /data/workspace/nice-dcv-2023.0-15487-ubuntu2204-x86_64/nice-dcv-server_2023.0.15487-1_amd64.ubuntu2204.deb \
/data/workspace/nice-dcv-2023.0-15487-ubuntu2204-x86_64/nice-dcv-gl_2023.0.1039-1_amd64.ubuntu2204.deb \
/data/workspace/nice-dcv-2023.0-15487-ubuntu2204-x86_64/nice-dcv-gltest_2023.0.318-1_amd64.ubuntu2204.deb
# Install xterm for direct console access
RUN apt update && apt-get install -y xterm
步驟 2: 建置新的 Docker 映像檔
docker build -t o3de_robot_vacuum_simulation_robomaker -f $WORKSPACE/Dockerfile.simulation.robomaker $WORKSPACE
步驟 3: 在 Amazon ECR 中建立模擬映像檔的儲存庫
aws ecr create-repository --repository-name o3de-robot-vacuum-simulation
步驟 4-7: 設定 ECR URI 環境變數、登入 ECR、標記並推送模擬映像檔
export ECR_SIMULATION_URI=000000000000.dkr.ecr.us-west-2.amazonaws.com/o3de-robot-vacuum-simulation
aws ecr get-login-password | docker login --username AWS --password-stdin $ECR_SIMULATION_URI
docker tag o3de_robot_vacuum_simulation_robomaker $ECR_SIMULATION_URI
docker push $ECR_SIMULATION_URI
注意: 由於容器映像檔大小約 20 GB,上傳可能需要一些時間。
步驟 8-13: 重複類似流程為導航堆疊映像檔建立 Dockerfile、建置、建立 ECR 儲存庫並推送。導航堆疊的 Dockerfile 同樣需要安裝 NICE DCV 組件。
建立 AWS RoboMaker 模擬
下一步是使用新建立的容器映像檔來建立 AWS RoboMaker 模擬。工作流程包括定義模擬的一般參數,例如 IAM 角色、運算類型(設定為 CPU 和 GPU)以及模擬持續時間。您還需要為模擬建立機器人應用程式和模擬應用程式。
- 從「Simulation jobs」頁面點擊「Create simulation job」
- 配置模擬工作詳細資訊,將「Compute type」設為「CPU and GPU」
- 建立名為
o3de-robot-vacuum-navstack的新機器人應用程式,從 ECR 選取對應映像檔,勾選「Run with streaming session」,並將啟動命令設為/data/workspace/LaunchNavStack.bash - 建立名為
o3de-robot-vacuum-simulation的新模擬應用程式,從 ECR 選取對應映像檔,勾選「Run with streaming session」,並將啟動命令設為/data/workspace/LaunchSimulation.bash - 檢閱模擬工作後點擊「Create」建立並啟動
檢視與控制模擬工作
當模擬工作狀態變更為「Running」後,各工具的「Connect」按鈕即可使用。
- 模擬應用程式的 Connect 將啟動 O3DE 啟動器,呈現掃地機器人在閣樓場景中的第三人稱視角。此時機器人正在等待透過 ROS 2 發送的命令。
- 機器人應用程式的 Connect 將開啟 RViz 3D 視覺化工具。透過 RViz,您可以指定導航目標點,機器人將使用其模擬的光達(Lidar)感測器,在不碰撞任何障礙物的情況下導航至目標點。
當機器人在房間中移動時,它會用光達感測器建構環境地圖,這些資訊也會在 RViz 中視覺化呈現。在自主掃地機器人的實際應用場景中,包含實際自動化機器人程式碼的容器將取代本範例中的示範容器,以自動控制機器人。
清理資源
本教學中建立的容器映像檔總計約 20 GB。如果不再需要此範例應用程式,可清除以下項目:
- ECR 中的
o3de-robot-vacuum-navstack和o3de-robot-vacuum-simulation儲存庫 - AWS RoboMaker「Robot Applications」下的機器人應用程式
- AWS RoboMaker「Simulation Applications」下的模擬應用程式
結語
本教學示範了如何在 AWS RoboMaker 中使用 O3DE 運行機器人模擬。我們逐步介紹了準備含機器人模擬應用程式的 O3DE 容器映像檔,並在完成配置後於 AWS RoboMaker 中執行該容器的完整流程。完成此範例後,您可以嘗試使用 O3DE 建立自己的機器人模擬專案,並在 AWS RoboMaker 上運行。如需更多關於 O3DE 的資訊,請造訪 https://www.o3de.org。
原文來源: 查看原文
常見問題
Newsletter
訂閱低空產業電子報
每日精選低空經濟與無人機產業新聞,直送您的信箱。
本文由 LAETimes 編輯部審核發佈 ·


