シミュレーションの設定 - AWS RoboMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

シミュレーションの設定

次のセクションでは、シミュレーションジョブの設定方法について説明します。詳細については、アプリケーションの設定 で説明されているコンセプトを参照してください。

Amazon VPC アクセスに関するシミュレーションジョブの設定

Amazon Virtual Private Cloud (Amazon VPC) でリソースを作成した場合、そのリソースをパブリックインターネット経由で読み取ることはできません。リソースの例としては、Amazon Redshift データウェアハウスや Amazon ElastiCache クラスターなどがあります。また、Amazon Elastic Compute Cloud インスタンス上のサービスである場合もあります。デフォルトでは、Amazon VPC 内のリソースは AWS RoboMaker シミュレーションジョブにアクセスできません。

注記

AWS RoboMaker は、外部接続のない独立したネットワーク上でシミュレーションジョブを実行します。ただし、ジョブが Amazon VPC 内のリソースにアクセスできるようにするには、Amazon VPC サブネット ID とセキュリティグループ ID を含む VPC 固有のデータを指定する必要があります。AWS RoboMaker では、このデータを使用して、Elastic Network Interface (ENI) を設定します。ENI は、ジョブをプライベート Amazon VPC 内の他のリソースに安全に接続するのに役立ちます。

AWS RoboMaker は、専有テナント VPC 内のリソースに接続しません。詳細については、専用 VPCを参照してください

ジョブを作成するときに VpcConfig パラメータを使用して、Amazon VPC データを AWS RoboMaker シミュレーションジョブに追加します(「CreateSimulationJob」を参照)。以下は、AWS CLI にパブリック IP が割り当てられた場合の例です。

aws robomaker create-simulation-job \ --output-location s3Bucket=my-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 データを使用して ENI を設定します。ENI により、ジョブが VPC リソースにアクセスできるようになります。各 ENI には、指定されたサブネットの範囲からプライベート IP アドレスが割り当てられます。デフォルトでは、ENI にパブリック IP アドレスは割り当てられません。

ジョブでインターネットアクセスが必要で(VPC エンドポイントを持たない AWS サービスを検索する場合など)、プライベートサブネットを使用している場合、VPC 内に NAT を設定できます。Amazon VPC NAT ゲートウェイを使用して、AWS RoboMaker をパブリック IP に割り当てるためのリクエストができます。詳細については、Amazon VPC ユーザーガイドNAT ゲートウェイ を参照してください。

注記

VPC に添付されたインターネットゲートウェイを使用することはできません。インターネット接続には ENI にパブリック IP アドレスがある必要があります。デフォルトでは、ENI にはプライベート IP アドレスがあります。

パブリックサブネットの使用時にインターネットアクセスを設定するには、assignPublicIp=true を設定して ENI にパブリック IP を割り当てます。

シミュレーションジョブのみがパブリック AWS API へのアクセスが必要で、よりプライバシーを確保したい場合、「AWS RoboMaker とインターフェース VPC エンドポイント (AWS PrivateLink)」を参照してください。この情報を使用すると、インターフェイス VPC エンドポイントを作成し、CreateSimulationJob API を使用して VPC を追加できます。

SimulationJob コンピューティングの設定

SimulationJobs で GPU を使用するには、SimulationJobComputeType を設定すれば GPU コンピューティングを使用できます。AWS RoboMaker でグラフィックス処理ユニット (GPU) ベースのシミュレーションジョブを使用すると、次のようなメリットが得られます。

  • GPU ベースのシミュレーションジョブは、OpenGL、CUDA、OpenCL、Vulkan を使用することで、GPU 対応のセンサープラグインと、高忠実度のレンダリングとパフォーマンスを必要とするアプリケーションの実行を可能にします。

  • GPU ベースのシミュレーションジョブは、AWS RoboMaker GUI ツールの HD 解像度の質が高く、オブジェクトをより詳細に確認できます。GPU では 1 秒あたりのフレームレートが高くなるため、GUI ツール体験は理想的です。

  • GPU ベースのシミュレーションにより、シミュレーションジョブの完了時間が短縮されます。GPU を使用すれば、リアルタイム係数と 1 秒あたりのフレーム数のパフォーマンスヒットを引き起こすことなく、複雑なシミュレーションシーンを実行できます。

  • GPU ベースのシミュレーションジョブによって強化学習モデルのトレーニングが強化されます。

コンピューティング

CreateSimulationJob リクエストの Compute パラメータを使えば、SimulationJob に必要なコンピューティングの種類を設定できます。

ComputeType

ComputeType によりジョブに必要なコンピューティングのタイプを指定します。有効な値は、CPU および GPU_AND_CPU です。デフォルト値は、「CPU」です。GPU_AND_CPU が指定されている場合、作成されたジョブでは CPU とともに GPU を使用できます。

GPUUnitLimit

GpuUnitLimit パラメータを使用すれば、ジョブに割り当てる必要がある GPU ユニットの数を指定できます。GPU_AND_CPU ComputeType の場合、これは 1 である必要があります。CPU ComputeType の場合、これは 0 である必要があります。

GPU を利用するコンテナを構築する方法については、「GPU アプリケーションを実行するためのイメージの作成」を参照してください。

カスタムシミュレーションツールの設定

AWS RoboMaker では、シミュレーションジョブでアプリケーションのカスタムツールを設定できます。カスタムツールを使用してシミュレーションを操作したり、診断ユーティリティとして使用したり、その他の目的で操作したりすることができます。AWS RoboMaker が提供する rqtrviz などのデフォルトツールを設定することもできます。シミュレーションジョブが自動パイプラインの一部である場合は、デフォルトのツールを無効にして、使用するリソースを減らすことができます。

最大 10 個のカスタムツールを設定できます。カスタムツールは、メインの ROS 起動プロセスの開始後にのみ起動されます。

カスタムツール設定には以下の要素が含まれています。

  • Tool name (ツール名) — ツールの名前。

  • コマンドbash シェルでツールを起動するコマンド。実行可能ツール名を含める必要があります。引数ではカスタム変数を含む環境変数を使用できます。例えば、現在のシミュレーションジョブ ID を使用するには AWS_ROBOMAKER_SIMULATION_JOB_ID を参照できます。

  • Exit behavior (終了動作) — カスタムツールが終了した場合に実行されるアクションを決定します。fail を指定するとシミュレーションジョブは失敗します。restart を指定すると、ツールが再起動されます。デフォルトは restart です。

  • UI ストリーミング:ツールに対してストリーミングセッションを設定するかどうかを指定します。[True] の場合、AWS RoboMaker により、シミュレーションでの実行中にツールを操作できるように接続が設定されます。そのためにはグラフィカルユーザーインターフェイスが必要です。デフォルトは false です。

  • ログ動作:ツール stdoutstderr を CloudWatch Logs にストリーミングするかどうかを指定します。デフォルトは false です。

ルートアクセスとシステム機能

AWS RoboMaker は、シミュレーションジョブで実行されているアプリケーションへの制限されたルート (sudo) アクセスを提供します。以下は、ブロックされる重要な syscall の一覧です (ただし、すべてではありません)。

  • acct

  • add_key

  • bpf

  • clock_adjtime

  • clock_settime

  • clone

  • 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

  • reboot

  • request_key

  • set_mempolicy

  • setns

  • settimeofday

  • stime

  • swapon

  • swapoff

  • sysfs

  • _sysctl

  • umount

  • umount2

  • unshare

  • uselib

  • userfaultfd

  • ustat

  • vm86

  • vm86old