Configurar uma simulação - AWS RoboMaker

Aviso de fim do suporte: em 10 de setembro de 2025, AWS interromperá o suporte para AWS RoboMaker. Depois de 10 de setembro de 2025, você não poderá mais acessar o AWS RoboMaker console ou AWS RoboMaker os recursos. Para obter mais informações sobre como fazer a transição para ajudar AWS Batch a executar simulações em contêineres, visite esta postagem no blog.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configurar uma simulação

As seções a seguir descrevem como configurar trabalhos de simulação. Para obter mais informações, consulte o conceito que descreve Configuração do aplicativo.

Configurando um trabalho de simulação para acesso à Amazon VPC

Quando você cria recursos na Amazon Virtual Private Cloud (AmazonVPC), eles não podem ser lidos pela Internet pública. Exemplos de recursos podem ser armazéns de dados do Amazon Redshift ou clusters da Amazon. ElastiCache Eles também podem ser seus serviços em uma instância Amazon Elastic Compute Cloud. Por padrão, os recursos em uma Amazon não VPC estão acessíveis a um AWS RoboMaker trabalho de simulação.

nota

AWS RoboMaker executa seu trabalho de simulação em uma rede isolada sem conectividade externa. Para permitir que seu trabalho acesse recursos em sua AmazonVPC, você deve fornecer dados VPC específicos que incluam a VPC sub-rede IDs e o grupo de segurança da Amazon. IDs AWS RoboMakerusa esses dados para configurar interfaces de rede elásticas (ENIs). ENIsajude seu trabalho a se conectar com segurança a outros recursos em sua Amazon privada. VPC

AWS RoboMaker não se conecta a recursos dentro da locação VPCs dedicada. Para obter mais informações, consulte Dedicado VPCs.

Você pode adicionar VPC dados da Amazon ao seu AWS RoboMaker trabalho de simulação usando o VpcConfig parâmetro no momento em que você cria um trabalho (consulteCreateSimulationJob). O seguinte é um AWS CLI exemplo em que um IP público é atribuído.

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
nota

Quando uma tarefa de simulação é configurada para ser executada em umVPC, ela incorre em uma ENI penalidade. A resolução de endereço pode ser adiada quando você tenta se conectar a recursos de rede.

Acesso à Internet para trabalhos de simulação

AWS RoboMaker usa os VPC dados que você fornece para configurarENIs. ENIspermita que seu trabalho acesse VPC recursos. Cada um ENI recebe um endereço IP privado do intervalo nas sub-redes que você especificar. Por padrão, não ENI é atribuído nenhum endereço IP público.

Se seu trabalho requer acesso à Internet (talvez para encontrar AWS serviços que não têm VPC endpoints), e você está usando sub-redes privadas, você pode configurar uma NAT dentro da sua. VPC Você pode usar o VPC NAT gateway da Amazon e solicitar AWS RoboMaker para atribuir um IP público. Para obter mais informações, consulte NATGateways no Guia do VPC usuário da Amazon.

nota

Você não pode usar um gateway de internet diretamente conectado ao seuVPC, pois uma conexão com ENI a Internet exige que tenha endereços IP públicos. Por padrão, você ENI tem um endereço IP privado.

Para configurar o acesso à Internet ao usar sub-redes públicas, assignPublicIp=true defina para atribuir um IP público ao seu. ENI

Se o seu trabalho de simulação requer apenas acesso ao público AWS APIse você quer mais privacidade, vejaAWS RoboMaker e endpoints da VPC de interface (AWS PrivateLink). Com essas informações, você pode criar seu VPC endpoint de interface e adicioná-lo VPC usando o. CreateSimulationJob API

Configurando a computação SimulationJob

Para usar GPU em seuSimulationJobs, você pode configurar o ComputeType do SimulationJob para usar o GPU Compute. Você obtém os seguintes benefícios ao usar trabalhos de simulação baseados em Unidade de Processamento Gráfico (GPU) no AWS RoboMaker.

  • GPUtrabalhos de simulação baseados permitem a execução de aplicativos que exigem plug-ins de sensores GPU habilitados e renderização e desempenho de alta fidelidade usando OpenGL, OpenCL e Vulkan. CUDA

  • GPUtrabalhos de simulação baseados em simulação garantem que o AWS RoboMaker GUIas ferramentas têm resolução HD de alta qualidade para que você possa ver os objetos com mais detalhes. A experiência com GUI as ferramentas é ideal porque GPU garante uma taxa maior de quadros por segundo.

  • GPUa simulação baseada acelera o tempo de conclusão do trabalho de simulação. ComGPU, você pode executar cenas de simulação complexas sem afetar o desempenho no fator em tempo real e nos quadros por segundo.

  • GPUtrabalhos de simulação baseados em simulação melhoram o treinamento de modelos de aprendizado por reforço.

Computação

O parâmetro Compute na CreateSimulationJob solicitação pode ser usado para configurar qual tipo de computação é necessário para o SimulationJob.

ComputeType

ComputeType especifica o tipo de computação necessário para o trabalho. Os valores válidos são CPU e GPU_AND_CPU. O valor padrão é CPU. Se GPU_AND_CPU for especificado, o trabalho criado poderá ser usado GPU junto comCPU.

GpuUnitLimit

Usando o GpuUnitLimit parâmetro, você pode especificar o número de GPU unidades que precisam ser alocadas para seu trabalho. Pois GPU_AND_CPU ComputeType, deve ser 1. Para CPU ComputeType, deve ser 0.

Para obter informações sobre a criação de contêineres a serem utilizadosGPU, consulteCriação de imagens para executar aplicativos de GPU.

Configurando ferramentas de simulação personalizadas

Com AWS RoboMaker, você pode configurar ferramentas personalizadas para os aplicativos em uma tarefa de simulação. Use ferramentas personalizadas para interagir com a simulação, como utilitários de diagnóstico ou para outros fins. Você também pode configurar ferramentas padrão, como rqt ou rviz fornecidas por AWS RoboMaker. Se seu trabalho de simulação fizer parte de um pipeline automatizado, você poderá desativar as ferramentas padrão e usar menos recursos.

Você pode configurar até 10 ferramentas personalizadas. As ferramentas personalizadas são iniciadas após o início do ROS processo principal.

Uma configuração de ferramenta personalizada inclui os seguintes elementos:

  • Tool name – O nome da ferramenta.

  • Command – O comando para invocar a ferramenta em um shell bash. Você deve incluir o nome do executável da ferramenta. É possível usar variáveis de ambiente, incluindo variáveis personalizadas em seus argumentos. Por exemplo, para usar o ID do trabalho de simulação atual, você pode referenciar AWS_ROBOMAKER_SIMULATION_JOB_ID.

  • Exit behavior – Determina qual ação será tomada se a ferramenta personalizada for encerrada. Se você especificar fail, o trabalho de simulação falhará. Se você especificar restart, a ferramenta será reiniciada. O padrão é restart.

  • UI streaming – Especifica se uma sessão de streaming está configurada para a ferramenta. Se for verdade, AWS RoboMaker configura uma conexão para que você possa interagir com a ferramenta enquanto ela está sendo executada na simulação. Ele deve ter uma interface gráfica de usuário. O padrão é false.

  • Comportamento do registro — especifica se a ferramenta stdout stderr é transmitida para CloudWatch o Logs. O padrão é false.

Acesso raiz e recursos do sistema

AWS RoboMaker fornece acesso root (sudo) limitado aos aplicativos executados em uma tarefa de simulação. A lista a seguir contém chamadas de sistema significativas (mas não todas) que são bloqueadas.

  • acct

  • add_key

  • bpf

  • clock_adjtime

  • clock_settime

  • clonar

  • 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