Avviso di fine del supporto: il 10 settembre 2025, AWS
interromperà il supporto per. AWS RoboMaker Dopo il 10 settembre 2025, non potrai più accedere alla AWS RoboMaker console o alle risorse. AWS RoboMaker Per ulteriori informazioni sulla transizione AWS Batch verso l'esecuzione di simulazioni containerizzate, consulta questo post del blog.
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Domande frequenti sui contenitori ROS
Questa pagina elenca le domande e le risposte più comuni relative alla migrazione di robot e applicazioni di simulazione basate su ROS verso contenitori Docker adatti all'esecuzione inAWS RoboMaker.
Il nostro flusso di lavoro invia lavori di simulazione utilizzandocolcon
-Robot e applicazioni di simulazione in bundle. Devo effettuare la migrazione?
Sì, devi migrare. I passaggi per la migrazione si trovano all'indirizzoMigrazione delle applicazioni ROS nei contenitori.
Non sono sicuro che il mio robot e le mie applicazioni di simulazione debbano essere migrate. Come posso dirlo?
Puoi verificare tramiteAWSconsole oAWS CLI. Per istruzioni, scegli la seguente scheda applicabile.
In che modo il robot e i contenitori delle applicazioni di simulazione comunicano tra loro?
Non è diverso dal modo in cui le applicazioni basate su ROS comunicano in genere tra loro utilizzando il middleware ROS. Tuttavia, è necessario impostare alcune variabili di ambiente specifiche di ROS all'interno degli oggetti di configurazione di avvio della richiesta di lavoro di simulazione.
Di seguito è riportato un esempio delle impostazioni che è necessario utilizzare per l'applicazione robotlaunchConfig
.
"robotApplications": [ { "application": "
YOUR-ROBOT-APP-ARN
", "applicationVersion": "$LATEST", "launchConfig": { "environmentVariables": { "ROS_IP": "ROBOMAKER_ROBOT_APP_IP
", "ROS_MASTER_URI": "http://ROBOMAKER_ROBOT_APP_IP
:11311", "GAZEBO_MASTER_URI": "http://ROBOMAKER_SIM_APP_IP
:11345" }, ... # Removed extra data for clarity } ]
Di seguito è riportato un esempio delle impostazioni da utilizzare per l'applicazione di simulazionelaunchConfig
.
"simulationApplications": [ { "application": "
YOUR-SIM-APP-ARN
", "applicationVersion": "$LATEST", "launchConfig": { "environmentVariables": { "ROS_IP": "ROBOMAKER_SIM_APP_IP
", "ROS_MASTER_URI": "http://ROBOMAKER_ROBOT_APP_IP
:11311", "GAZEBO_MASTER_URI": "http://ROBOMAKER_SIM_APP_IP
:11345" }, ... # Removed extra data for clarity } ]
I contenitori comunicano tra loro come previsto se si utilizza il dispositivo fornitoROBOMAKER_*
stringhe e numeri di porta da impostareROS_IP
,ROS_MASTER_URI
, eGAZEBO_MASTER_URI
.
Per ulteriori informazioni, consulta Esecuzione di simulazione.
Dov'è finita la mia metrica RTF (Real-Time Factor)? Come posso ripristinarlo?
AWS RoboMakernon pubblica più automaticamente questa metrica. Se desideri pubblicare questa metrica suCloudWatch, è necessario importare ilAWS RoboMaker CloudWatchEditoreREADME.md
Come posso annullare e contrassegnare i miei lavori di simulazione?
Puoi utilizzare la configurazione VPC per etichettare o annullare automaticamente il tuoAWS RoboMakerlavori di simulazione utilizzando il genericoAWSAPI. Per utilizzare il seguente approccio, il contenitore deve essere in esecuzione in un VPC con un percorso pubblico attraverso unPIPISTRELLOoIGWalAWSAPI. L'approccio più semplice consiste nell'utilizzare una sottorete pubblica nella tuaVPC predefinitoper connettersi alle API AWS. Se desideri eseguire simulazioni in una sottorete privata, puoi in alternativa configurare un NAT o configurare un endpoint VPC di interfaccia. Per ulteriori informazioni, consulta AWS RoboMaker e gli endpoint VPC dell'interfaccia (AWS PrivateLink).
Nota
Se stai usando l'IGW, assicurati di impostareassignPublicIp=True
come descritto nella documentazione riportata di seguito. Se utilizzi un IP pubblico, assicurati che i tuoi gruppi di sicurezza siano sufficientemente bloccati.
È necessario aggiungere il seguente blocco ai parametri della richiesta.
vpcConfig={ 'subnets': [ 'string', ], 'securityGroups': [ 'string', ], 'assignPublicIp': True|False },
Inoltre,AWS RoboMakerun job di simulazione deve avere un ruolo IAM con le autorizzazioni per etichettare e annullare i lavori di simulazione.
Nel tuo lavoro di simulazione, puoi usare siaAWS CLIo ilboto3
Libreria Python da chiamare in pubblicoAWS RoboMakerAPI. Devi avere ilAWS CLIeboto3
libreria preinstallata nel tuo contenitore prima di poterli utilizzare in unAWS RoboMakerlavoro di simulazione. Il seguente codice di esempio di Python mostra come annullare un processo di simulazione.
class RoboMakerUtils: def __init__(self): self.job_arn = os.getenv('AWS_ROBOMAKER_SIMULATION_JOB_ARN') self.client = boto3.client('robomaker', region_name=os.getenv('AWS_ROBOMAKER_REGION', 'us-east-1')) def tag_robomaker_sim_job(self, key, value): self.client.tag_resource( resourceArn=self.job_arn, tags={ key: str(value) } ) def cancel_robomaker_sim_job(self): self.tag_robomaker_sim_job("END_TIME", time.time()) response = self.client.cancel_simulation_job( job=self.job_arn )
Come faccio a importare la simulazioneWorldForgea tutti piace il lavoro di simulazione?
Se è necessario importare SimulationWorldForgerisorse nel tuo lavoro di simulazione, usa ilDataSource
API. Ciò consente di importare risorse mondiali dalla directory di output di Amazon S3 del processo di esportazione mondiale in una destinazione di tua scelta all'interno del contenitore del lavoro di simulazione.
Per ulteriori informazioni, consulta Utilizzo di mondi esportati nella simulazione.
I file di registro della mia applicazione non vengono creati. Cosa sta succedendo?
Assicurati di aver creato tutte le directory di output su cui fai affidamento per il debug degli artefatti correlati nel tuo Dockerfile. Ad esempio, puoi aggiungere la riga seguente al tuo Dockerfile.
RUN mkdir -p $YOUR_LOG_DIR
Per ulteriori informazioni, consulta Aggiungere una configurazione di caricamento personalizzata.
La mia applicazione di simulazione non è riuscita con «run_id sul server dei parametri non corrisponde al run_id dichiarato». Cosa devo fare?
Se stai avviando il tuo lavoro di simulazione ROS sia con un'applicazione robotica che con un'applicazione di simulazione, dovresti aggiungere--wait
ai comandi roslaunch.