FAQ kontainer ROS - AWS RoboMaker

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

FAQ kontainer ROS

Halaman ini mencantumkan pertanyaan dan jawaban umum terkait migrasi robot berbasis OS dan aplikasi simulasi ke kontainer Docker yang cocok untuk dijalankanAWS RoboMaker.

Alur kerja kami mengirimkan pekerjaan simulasi menggunakancolcon-bundled robot dan aplikasi simulasi. Apakah saya perlu bermigrasi?

Ya, Anda harus bermigrasi. Langkah-langkah untuk bermigrasi terletak diMemigrasi aplikasi ROS ke kontainer.

Saya tidak yakin apakah robot dan aplikasi simulasi saya perlu dimigrasi. Bagaimana saya bisa tahu?

Anda dapat memeriksa melaluiAWSkonsol atauAWS CLI. Untuk instruksi, pilih tab yang berlaku berikut.

Using the console
  1. Masuk ke konsol AWS RoboMaker tersebut.

  2. Di panel navigasi kiri, pilihPengembangan, dan kemudian pilihAplikasi simulasi.

  3. PilihNamadari aplikasi simulasi untuk melihat detailnya.

    Jika Anda melihatUmumdanSimulasi runtime, migrasi tidak diperlukan. Jika Anda melihat nilai spesifik ROS atau Gazebo, Anda harus bermigrasi.

Using the AWS CLI

Berikut ini adalah contohAWS CLIperintah yang melakukan setara dengan langkah-langkah berbasis konsol.

aws robomaker describe-simulation-application --application YOUR-SIM-APP-ARN

Perintah ini mengembalikan output yang menunjukkansimulationSoftwareSuite, yangrobotSoftwareSuite(jika berlaku), danenvironmentURI. Jika Anda melihatSimulasi RuntimesebagaisimulationSoftwareSuitedanUmumsebagairobotSoftwareSuite, dan AndaenvironmentURI diatur, aplikasi simulasi Anda tidak memerlukan migrasi.

Bagaimana robot dan wadah aplikasi simulasi berkomunikasi satu sama lain?

Ini tidak berbeda dengan bagaimana aplikasi berbasis RO biasanya berkomunikasi satu sama lain menggunakan middleware ROS. Namun, Anda harus menetapkan beberapa variabel lingkungan khusus ROS dalam objek konfigurasi peluncuran permintaan pekerjaan simulasi Anda.

Berikut ini adalah contoh cuplikan pengaturan yang harus Anda gunakan untuk aplikasi 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 } ]

Berikut ini adalah contoh cuplikan pengaturan yang harus Anda gunakan untuk aplikasi simulasilaunchConfig.

"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 } ]

Wadah berkomunikasi satu sama lain seperti yang diharapkan jika Anda menggunakan yang disediakanROBOMAKER_*string dan nomor port untuk mengaturROS_IP,ROS_MASTER_URI, danGAZEBO_MASTER_URI.

Untuk informasi selengkapnya, lihat Menjalankan simulasi.

Ke mana perginya metrik Real-Time Factor (RTF) saya? Bagaimana saya bisa mengembalikannya?

AWS RoboMakertidak lagi menerbitkan metrik ini secara otomatis. Jika Anda ingin mempublikasikan metrik iniCloudWatch, Anda harus mengimporAWS RoboMaker CloudWatchPenerbitpaket ke dalam aplikasi simulasi Anda dan memodifikasi file peluncuran simulasi Anda menggunakan petunjuk yang disediakan diREADME.mdberkas.

Bagaimana cara membatalkan dan menandai pekerjaan simulasi saya?

Anda dapat menggunakan konfigurasi VPC untuk memberi tag sendiri atau membatalkan sendiriAWS RoboMakersimulasi pekerjaan menggunakan generikAWSAPI. Untuk menggunakan pendekatan berikut, kontainer harus berjalan di VPC dengan rute umum melaluiNATatauIGWkepadaAWSAPI. Pendekatan paling sederhana adalah dengan menggunakan subnet publik distandar VPCuntuk terhubung ke AWS API. Jika Anda ingin menjalankan simulasi di subnet pribadi, Anda dapat mengatur NAT atau mengatur endpoint VPC antarmuka. Untuk informasi selengkapnya, lihat AWS RoboMaker dan antarmuka endpoint VPC (AWS PrivateLink).

catatan

Jika Anda menggunakan IGW, pastikan untuk mengaturassignPublicIp=Trueseperti yang dijelaskan dalam dokumentasi di bawah ini. Jika Anda menggunakan IP publik, pastikan grup keamanan Anda cukup terkunci.

Anda harus menambahkan blok berikut ke parameter permintaan.

vpcConfig={ 'subnets': [ 'string', ], 'securityGroups': [ 'string', ], 'assignPublicIp': True|False },

Selain itu,AWS RoboMakerpekerjaan simulasi harus memiliki peran IAM dengan izin untuk menandai dan membatalkan pekerjaan simulasi.

Dalam pekerjaan simulasi Anda, Anda dapat menggunakanAWS CLIatauboto3Perpustakaan Python untuk memanggil publikAWS RoboMakerAPI. Anda harus memilikiAWS CLIdanboto3library yang sudah diinstal sebelumnya di wadah Anda sebelum Anda dapat menggunakannya diAWS RoboMakerpekerjaan simulasi. Kode contoh Python berikut menunjukkan cara membatalkan pekerjaan simulasi.

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 )

Bagaimana cara mengimpor SimulasiWorldForgedunia ke dalam pekerjaan simulasi?

Jika Anda perlu mengimpor SimulasiWorldForgeaset ke dalam pekerjaan simulasi Anda, gunakanDataSourceAPI. Hal ini memungkinkan Anda untuk mengimpor aset dunia dari direktori keluaran Amazon S3 dari pekerjaan ekspor dunia ke tujuan yang Anda pilih dalam wadah pekerjaan simulasi Anda.

Untuk informasi selengkapnya, lihat Menggunakan dunia yang diekspor dalam simulasi.

File log aplikasi saya tidak dibuat. Apa yang terjadi?

Pastikan Anda telah membuat semua direktori keluaran yang Anda andalkan untuk men-debug artefak terkait di Dockerfile Anda. Misalnya, Anda dapat menambahkan baris berikut ke Dockerfile Anda.

RUN mkdir -p $YOUR_LOG_DIR

Untuk informasi selengkapnya, lihat Menambahkan konfigurasi upload kustom.

Aplikasi simulasi saya gagal dengan 'run_id pada server parameter tidak cocok dideklarasikan run_id'. Apa yang harus saya lakukan?

Jika Anda meluncurkan pekerjaan simulasi ROS Anda dengan aplikasi robot dan aplikasi simulasi, Anda harus menambahkan--waitke perintah roslaunch.