規劃模擬 - AWS RoboMaker

支援終止通知:2025 年 9 月 10 日, AWS 將停止對 的支援 AWS RoboMaker。2025 年 9 月 10 日後,您將無法再存取 AWS RoboMaker 主控台或 AWS RoboMaker 資源。如需有關轉換至 AWS Batch 以協助執行容器化模擬的詳細資訊,請造訪此部落格文章

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

規劃模擬

以下各節描述如何規劃模擬工作。如需詳細資訊,請參閱描述的概念應用程式組態

設定 Amazon VPC 存取的模擬任務

當您在 Amazon 虛擬私有雲 (AmazonVPC) 中建立資源時,無法透過公用網際網路讀取這些資源。示例資源可以是 Amazon Redshift 數據倉庫或 Amazon ElastiCache 集群。它們也可以是您在 Amazon 彈性運算雲端執行個體上的服務。默認情況下,Amazon VPC 中的資源無法訪問 AWS RoboMaker 模擬工作。

注意

AWS RoboMaker 在沒有外部連線的隔離網路上執行模擬工作。若要允許您的任務存取 Amazon 中的資源VPC,您必須提供包含 Amazon VPC 子網路IDs和安全群組的VPC特定資料IDs。 AWS RoboMaker使用此資料來設定彈性網路介面 (ENIs)。ENIs幫助您的任務安全地連接到私有 Amazon 中的其他資源VPC。

AWS RoboMaker 不會連接到專用租賃中的資源VPCs。如需詳細資訊,請參閱專用VPCs

您可以將 Amazon VPC 數據添加到您的 AWS RoboMaker 建立工作時使用VpcConfig參數進行模擬工作 (請參閱CreateSimulationJob)。以下是一個 AWS CLI 指派公用 IP 的範例。

aws robomaker create-simulation-job \ --output-location s3Bucket=amzn-s3-demo-bucket,s3Prefix=my-output-folder \ --max-job-duration-in-seconds 3600 \ --iam-role my-role-arn \ --failure-behavior Continue \ --robot-applications application='my-robot-application-arn,launchConfig={command=["roslaunch", "hello_world_robot", "rotate.launch"]}' \ --simulation-applications application='my-simulation-application-arn,launchConfig={command=["roslaunch", "hello_world_simulation", "empty_world.launch"]}' \ --vpc-config assignPublicIp=true,subnets=comma-separated-vpc-subnet-ids,securityGroups=comma-separated-security-group-ids
注意

將模擬工作配置為在中執行時VPC,會造成ENI罰款。在您嘗試連線到網路資源時,地址解析可能會延遲。

網際網路存取模擬工作

AWS RoboMaker 使用您提供的VPC資料進行設定ENIs。ENIs允許您的工作存取VPC資源。每個ENI位址都會從您指定的子網路中指派一個範圍內的私人 IP 位址。依預ENI設,不會指派任何公用 IP 位址。

如果你的工作需要互聯網接入(也許找到 AWS 沒有VPC端點的服務),並且您正在使用有子網,您VPC可以NAT在. 您可以使用 Amazon VPC NAT 網關並請求 AWS RoboMaker 分配一個公共 IP。如需詳細資訊,請參閱 Amazon VPC 使用者指南中的NAT閘道

注意

您無法使用直接連接到您的網際網路閘道VPC,因為網際網路連線需ENI要具有公用 IP 位址。默認情況下,您ENI有一個私人 IP 地址。

若要在使用用子網路時設定網際網路存取,assignPublicIp=true請將公用 IP 指派給您的ENI.

如果你的工作只需要公眾接觸 AWS APIs你想要更多的隱私,請參閱AWS RoboMaker 和介面 VPC 端端點 (AWS PrivateLink)。有了這些資訊,您可以建立介面VPC端點,並VPC使用 CreateSimulationJobAPI.

設定SimulationJob運算

若要GPU在中使用SimulationJobs,您可以將中ComputeType的設定SimulationJob為使用GPU計算。在中使用以圖形處理單元 (GPU) 為基礎的模擬工作時,您會發現下列優點: AWS RoboMaker.

  • GPU基於模擬任務允許使用 OpenGL,CUDAOpenCL 和 Vulkan 執行需要GPU啟用的傳感器插件和高保真渲染和性能的應用程序。

  • GPU以模擬為基礎的工作可確保 AWS RoboMaker GUI工具具有高質量的高清分辨率,因此您可以更詳細地查看對象。工GUI具體驗是理想的,因為GPU可確保更高的每秒幀率。

  • GPU以模擬為基礎,可加速模擬工作完成時間。使用GPU,您可以執行複雜的模擬場景,而不會影響即時因素和每秒影格數的效能。

  • GPU以模擬為基礎的工作可改善強化學習模型的訓練。

運算

CreateSimulationJob求中的Compute參數可用來設定需要的SimulationJob.

ComputeType

ComputeType指定工作所需的計算類型。有效值為 CPUGPU_AND_CPU。預設值為 CPU。如果GPU_AND_CPU已指定,則建立的工作可以與一GPU起使用CPU。

GpuUnitLimit

您可以使用GpuUnitLimit參數指定需要配置給工作的GPU單位數目。對於 GPU_AND_CPU ComputeType,它必須是 1。對於 CPU ComputeType,它必須是 0。

如需建置要使用之容器的相關資訊GPU,請參閱建立影像以執行 GPU 應用程式

規劃自訂模擬工具

同 AWS RoboMaker,您可以為模擬工作中的應用程式配置自訂工具。使用自訂工具與模擬互動、做為診斷公用程式或用於其他用途。您還可以配置默認工具,如rqtrviz提供 AWS RoboMaker。如果您的模擬任務是自動化管道的一部分,您可以停用預設工具並減少使用資源。

您最多可以設定 10 個自訂工具。自定義工具在主過ROS程啟動後啟動。

自訂工具組態包括下列元素:

  • 工具名稱 — 刀具的名稱。

  • 命令 — 在殼層中叫用工具的指bash令。您必須包含工具可執行檔名稱。您可以在引數中使用包含自訂變數的環境變數。例如,若要使用目前的模擬工作 ID,您可以參考AWS_ROBOMAKER_SIMULATION_JOB_ID

  • 束行為 — 決定自訂工具結束時要採取的動作。如果您指定fail,則模擬工作會失敗。如果您指定restart,則會重新啟動工具。預設值為 restart

  • UI 串流 — 指定是否為工具配置串流工作階段。如果為真, AWS RoboMaker 規劃連接,以便您可以在工具在模擬中執行時與其互動。它必須具有圖形用戶界面。預設值為 false

  • 防護記錄行為 — 指定工具stdoutstderr是否串流至 CloudWatch 防護記錄。預設值為 false

根訪問權限和系統功能

AWS RoboMaker 為在模擬工作中執行的應用程式提供有限的 root (sudo) 存取權。下列清單包含已封鎖的重要 (但不是全部) 系統呼叫。

  • acct

  • add_key

  • bpf

  • clock_adjtime

  • clock_settime

  • 複製

  • create_module

  • delete_module

  • finit_module

  • get_kernel_syms

  • get_mempolicy

  • init_module

  • ioperm

  • iopl

  • kcmp

  • kexec_file_load

  • kexec_load

  • keyctl

  • lookup_dcookie

  • mbind

  • mount

  • move_pages

  • name_to_handle_at

  • nfsservctl

  • open_by_handle_at

  • perf_event_open

  • personality

  • pivot_root

  • process_vm_readv

  • process_vm_writev

  • ptrace

  • query_module

  • quotactl

  • 重新開機

  • request_key

  • set_mempolicy

  • setns

  • settimeofday

  • stime

  • swapon

  • swapoff

  • sysfs

  • _sysctl

  • umount

  • umount2

  • unshare

  • uselib

  • userfaultfd

  • ustat

  • vm86

  • vm86old