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.
Seções
Configuração de um trabalho de simulação para da Amazon VPC
Quando você cria recursos na Amazon Virtual Private Cloud (Amazon VPC), eles não podem ser lidos por meio da Internet pública. Exemplos de recursos podem ser armazéns de dados do Amazon Redshift ou clusters do 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 VPC não são acessíveis para um trabalho de simulação do AWS RoboMaker.
nota
AWS RoboMaker executa seu trabalho de simulação em uma rede isolada sem conectividade externa. Para permitir que seu trabalho acesse recursos na sua Amazon VPC, você deve fornecer dados específicos da VPC que incluem IDs de sub-rede da Amazon VPC e IDs de grupo de segurança. O AWS RoboMaker usa esses dados para configurar interfaces de rede elásticas (ENIs). As ENIs ajudam seu trabalho a se conectar com segurança a outros recursos na Amazon VPC privada.
O AWS RoboMaker não se conecta a recursos dentro de VPCs de locação dedicada. Para obter mais informações, consulte VPCs dedicadas.
Você pode adicionar os dados da Amazon VPC ao seu trabalho de simulação do AWS RoboMaker usando o parâmetro VpcConfig
quando criar um trabalho (consulte CreateSimulationJob). A seguir há exemplo de AWS CLI em que um IP público é atribuído.
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
nota
Quando um trabalho de simulação é configurado para ser executado em uma VPC, ele incorre em uma penalidade de ENI. 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
O AWS RoboMaker usa os dados da VPC fornecidos para configurar ENIs. As ENIs permitem que seu trabalho acesse recursos da VPC. Um endereço IP privado será designado a cada ENI do intervalo nas sub-redes que você especificar. Por padrão, a ENI não recebe nenhum endereço IP público.
Se o seu trabalho requer acesso à Internet (talvez para encontrar serviços da AWS que não tenham endpoints da VPC), e se você estiver usando sub-redes privadas, pode configurar uma NAT dentro da sua VPC. É possível usar o gateway NAT da Amazon VPC e solicitar ao AWS RoboMaker para atribuir um IP público. Para obter mais informações, consulte Gateways NAT no Guia do usuário da Amazon VPC.
nota
Você não pode usar um gateway da Internet anexado diretamente à sua VPC, pois isso requer que a ENI tenha endereços IP públicos. Por padrão, sua ENI tem um endereço IP privado.
Para configurar o acesso à Internet ao usar sub-redes públicas, defina assignPublicIp=true
para atribuir um IP público para sua ENI.
Se seu trabalho de simulação exigir apenas acesso a APIs AWS públicas e você quiser mais privacidade, consulte AWS RoboMaker e endpoints da VPC de interface (AWS PrivateLink). Com essas informações, você pode criar seu endpoint da VPC de interface e adicionar a VPC usando a API CreateSimulationJob.
Configurando a computação SimulationJob
Para usar a GPU no seu SimulationJobs
, 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.
-
Os trabalhos de simulação baseados em GPU permitem a execução de aplicativos que exigem plug-ins de sensores habilitados para GPU e renderização e desempenho de alta fidelidade usando OpenGL, CUDA, OpenCL e Vulkan.
-
Os trabalhos de simulação baseados em GPU garantem que as ferramentas da GUI do AWS RoboMaker tenham resolução HD de alta qualidade para que você possa ver os objetos com mais detalhes. A experiência com ferramentas de GUI é ideal porque a GPU garante uma taxa maior de quadros por segundo.
-
A simulação baseada em GPU acelera o tempo de conclusão do trabalho de simulação. Com a GPU, você pode executar cenas de simulação complexas sem afetar o desempenho no fator em tempo real e nos quadros por segundo.
-
Os trabalhos de simulação baseados em GPU 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á usar a GPU junto com a CPU.
GpuUnitLimit
Usando o parâmetro GpuUnitLimit
, você pode especificar o número de unidades de GPU que precisam ser alocadas para seu trabalho. Para ComputeType GPU_AND_CPU
, ele deve ser 1. Para ComputeType CPU
, ele deve ser 0.
Para obter informações sobre como criar contêineres para utilizar a GPU, consulte Criação de imagens para executar aplicativos de GPU.
Configurando ferramentas de simulação personalizadas
Com o AWS RoboMaker, você pode configurar ferramentas personalizadas para os aplicativos em um trabalho 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 pelo 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 processo principal de ROS.
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 referenciarAWS_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ê especificarrestart
, a ferramenta será reiniciada. O padrão érestart
. -
UI streaming – Especifica se uma sessão de streaming está configurada para a ferramenta. Se verdadeiro, o 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 log — especifica se a ferramenta
stdout
estderr
é transmitida para o CloudWatch Logs. O padrão éfalse
.
Acesso raiz e recursos do sistema
O AWS RoboMaker fornece acesso raiz limitado (sudo
) aos aplicativos executados em um trabalho 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