支援終止通知:2025 年 9 月 10 日, AWS 將停止對 AWS RoboMaker 的支援。2025 年 9 月 10 日之後,您將無法再存取 AWS RoboMaker 主控台或 AWS RoboMaker 資源。如需有關轉換至 AWS Batch 以協助執行容器化模擬的詳細資訊,請參閱此部落格文章
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定模擬
下列各節說明如何設定模擬任務。如需詳細資訊,請參閱描述 的概念應用程式組態。
設定 Amazon VPC 存取的模擬任務
當您在 Amazon Virtual Private Cloud (Amazon VPC) 中建立資源時,無法透過公有網際網路讀取資源。資源範例可以是 Amazon Redshift 資料倉儲或 Amazon ElastiCache 叢集。它們也可以是您在 Amazon Elastic Compute Cloud 執行個體上的服務。依預設,Amazon VPC 中的資源無法存取於 a AWS RoboMaker 模擬任務。
注意
AWS RoboMaker 會在沒有外部連線的隔離網路上執行模擬任務。若要允許任務存取 Amazon VPC 中的資源,您必須提供包含 Amazon VPC 子網路 IDs和安全群組 IDs 的 VPC 特定資料。 AWS RoboMaker 使用此資料來設定彈性網路介面 ENIs)。ENIs可協助您的任務安全地連線至私有 Amazon VPC 中的其他資源。
AWS RoboMaker 不會連線到專用租用 VPCs中的資源。如需詳細資訊,請參閱專用 VPC。
您可以在建立任務時使用 VpcConfig
參數,將 Amazon VPC 資料新增至您的 AWS RoboMaker 模擬任務 (請參閱 CreateSimulationJob)。以下是指派公有 IP AWS CLI 的範例。
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。ENI 可讓您的任務存取 VPC 資源。每個 ENI 都會從您指定子網路中的 IP 地址範圍受指派一個私有 IP 地址。根據預設,ENI 不會受指派任何公有 IP 地址。
如果您的任務需要網際網路存取 (可能是為了尋找沒有 VPC 端點 AWS 的服務),而且您正在使用私有子網路,您可以在 VPC 內設定 NAT。您可以使用 Amazon VPC NAT 閘道和 request AWS RoboMaker 來指派公有 IP。如需詳細資訊,請參閱 Amazon VPC 使用者指南中的 NAT 閘道。
注意
您無法使用直接連接到 VPC 的網際網路閘道,因為網際網路連線需要 ENI 擁有公有 IP 地址。根據預設,您的 ENI 具有私有 IP 地址。
若要在使用公有子網路時設定網際網路存取,assignPublicIp=true
請將 設定為將公有 IP 指派給您的 ENI。
如果您的模擬任務只需要存取 AWS APIs而且您想要更多隱私權,請參閱 AWS RoboMaker 和界面 VPC 端點 (AWS PrivateLink)。透過此資訊,您可以使用 CreateSimulationJob API 建立介面 VPC 端點並新增 VPC。
設定SimulationJob
運算
若要在 中使用 GPUSimulationJobs
,您可以將 ComputeType
的 SimulationJob
設定為使用 GPU Compute。在 AWS RoboMaker 中使用圖形處理單元 (GPU) 型模擬任務時,您實現了以下優點。
-
GPU 模擬任務允許執行需要 GPU 啟用感應器外掛程式的應用程式,以及使用 OpenGL、CUDA、OpenCL 和 Vulkan 進行高擬真度渲染和效能。
-
GPU 模擬任務可確保 AWS RoboMaker GUI 工具具有高品質的 HD 解析度,因此您可以更詳細地查看物件。GUI 工具體驗很理想,因為 GPU 可確保每秒較高的影格速率。
-
GPU 型模擬可加速模擬任務的完成時間。使用 GPU,您可以執行複雜的模擬場景,而不需要對即時因素和每秒影格的效能造成影響。
-
GPU 型模擬任務可改善強化學習模型的訓練。
運算
CreateSimulationJob
請求中的 Compute
參數可用來設定 所需的運算類型SimulationJob
。
ComputeType
ComputeType
指定任務所需的運算類型。有效值為 CPU
和 GPU_AND_CPU
。預設值為 CPU
。如果指定 GPU_AND_CPU
,則建立的任務可以使用 GPU 搭配 CPU。
GpuUnitLimit
您可以使用 GpuUnitLimit
參數指定需要配置給任務的 GPU 單位數量。對於 GPU_AND_CPU
ComputeType,必須是 1。對於 CPU
ComputeType,必須是 0。
如需建置容器以利用 GPU 的詳細資訊,請參閱建立映像以執行 GPU 應用程式。
設定自訂模擬工具
透過 AWS RoboMaker,您可以為模擬任務中的應用程式設定自訂工具。使用自訂工具與模擬互動、做為診斷公用程式,或用於其他用途。您也可以設定預設工具,例如 rqt
或由 AWS RoboMaker rviz
提供。如果您的模擬任務是自動化管道的一部分,您可以停用預設工具並使用較少的資源。
您最多可以設定 10 個自訂工具。自訂工具會在主要 ROS 程序啟動後啟動。
自訂工具組態包含下列元素:
-
工具名稱 — 工具的名稱。
-
命令 — 在
bash
shell 中叫用工具的命令。您必須包含工具可執行檔名稱。您可以在引數中使用環境變數,包括自訂變數。例如,若要使用目前的模擬任務 ID,您可以參考AWS_ROBOMAKER_SIMULATION_JOB_ID
。 -
結束行為 — 決定自訂工具結束時要採取的動作。如果您指定
fail
,模擬任務會失敗。如果您指定restart
,工具會重新啟動。預設值為restart
。 -
UI 串流 — 指定是否為工具設定串流工作階段。如果為 True, AWS RoboMaker 會設定連線,以便您可以在工具在模擬中執行時與其互動。它必須具有圖形化使用者介面。預設值為
false
。 -
日誌行為 — 指定工具
stderr
stdout
和 是否串流到 CloudWatch Logs。預設值為false
。
根存取和系統功能
AWS RoboMaker 對模擬任務中執行的應用程式提供有限的根 (sudo
) 存取。下列清單包含封鎖的重大 (但非全部) syscall。
-
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