故障排除 AWS RoboMaker - AWS RoboMaker

终止支持通知:2025 年 9 月 10 日, AWS 将停止对的支持。 AWS RoboMaker2025 年 9 月 10 日之后,您将无法再访问 AWS RoboMaker 控制台或 AWS RoboMaker 资源。有关过渡 AWS Batch 到以帮助运行容器化仿真的更多信息,请访问此博客文章。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

故障排除 AWS RoboMaker

以下各节针对您在使用时可能遇到的错误和问题提供了疑难解答建议 AWS RoboMaker 模拟IDEs、或模拟 WorldForge。如果您发现某个问题未在此处列出,可以使用此页底部的 提供反馈 链接来报告。

您可以在日志控制台中查找模拟作业的CloudWatch 日志。默认情况下, AWS RoboMaker在为应用程序生成模拟作业时上传这些日志。如果将streamOutputToCloudWatch设置为True,则同样的行为适用于工具。您也可以在模拟作业中通过添加自定义上传配置配置上传。

有关更多信息,请参阅 AWS RoboMaker 中的日志记录和监控

模拟作业

问题:模拟作业失败。

通过以下问题帮助确定根本原因,然后采取建议措施。

您的 Amazon S3 资源是否与位于同一区域 AWS RoboMaker?

您的机器人应用程序、仿真应用程序和输出位置必须位于同一区域 AWS RoboMaker。验证您的应用程序源和模拟作业输出位置。

您的机器人应用程序是否异常退出?

设置您的机器人应用程序进行模拟时出现问题。在 Amazon 中查看模拟作业的机器人应用程序日志 CloudWatch。

从模拟作业详细信息屏幕访问日志。选择 Logs (日志),然后选择一个日志流。要查找特定问题,请使用筛选条件。例如,WARNINGERROR

您的应用程序是否缺少 .so 文件?

如果您的应用程序崩溃,它可能缺少一个依赖的共享对象 (.so) 文件。在您的环境中提取应用程序包,并确认所需的共享对象库位于 /usr/lib/usr/local/lib 中。确保将依赖项添加到您的软件包 .xml 文件。

你有没有将ARN你的角色与 AWS CLI?

当你create-simulation-job从那里打电话时 AWS CLI,请使用角色的完整的 Amazon 资源名称 (ARN),而不仅仅是角色名称。

你的角色是否有以下方面的信任政策 AWS RoboMaker?

如果您在create-simulation-job从中调用时传递了该IAM角色的完整 Amazon 资源名称 (ARN) AWS CLI,则您的信任策略可能没有足够的权限。检查角色,确保该角色与下列 robomaker.amazonaws.com 具有信任关系。

{"Version": "2012-10-17", "Statement": {"Effect": "Allow", "Principal": { "Service": "robomaker.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": {"StringEquals": {"aws:SourceAccount": "account#" // Account where the simulation job resource is created }, "StringEquals": {"aws:SourceArn": "arn:aws:robomaker:region:account#:simulation-job/*" } } } }

条件键可防止 AWS 在服务之间的交易中,服务不会被用作混乱的副手。有关条件键SourceArn的更多信息,请参阅SourceAccount和。

有关查看角色访问权限和向角色添加信任策略的更多信息,请参阅修改IAM角色。

您的角色是否有权发布到 Amazon S3?

如果您为模拟作业指定输出 Amazon S3 存储桶,则您的角色必须对此存储桶具有写入权限。更新您的信任策略以包含写入权限。以下示例信任策略将读取、列出和写入权限添加到 Amazon S3 存储桶。

{"Action": "s3:ListBucket", "Resource": [ "amzn-s3-demo-bucket/*" ], "Effect": "Allow" },{"Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "amzn-s3-demo-bucket/*" ], "Effect": "Allow" },{"Action": "s3:Put*", "Resource": [ "amzn-s3-demo-bucket/*" ], "Effect": "Allow" }

你的角色是否有权发布到 CloudWatch?

使用 CloudWatch 访问权限更新您的IAM角色的权限策略。

{"Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": "*" }

您的应用程序是否具有不匹配的实体标签?

实体标签 (ETag) 是创建模拟时提供的 Amazon S3 对象的哈希值。仅ETag反映对象内容的更改,而不反映其元数据的更改。如果您之前在 Amazon S3 中更改了机器人应用程序或模拟包的内容 AWS RoboMaker 已经消耗了它,就会出现版本不匹配的情况。

要解决此问题,请创建一个新的机器人应用程序或模拟应用程序版本,并为更新后的应用程序包提供密钥位置。有关更多信息,请参阅创建机器人应用程序版本创建模拟应用程序版本

您的子网 elastic network interface (ENI) 限制是否已超出?

AWS RoboMaker ENI对运行模拟作业的子网中的每个并发模拟作业使用一个。必须为每个接口分配一个 IP 地址。要解决此问题,您可以:

删除未使用的 IP 地址ENIs以释放子网中的 IP 地址。要删除未使用的接口ENI,请参阅删除网络接口

使用 AWS Management Console,请求提高特定服务限额 ENIs AWS 区域。

是否已正确配置启动命令?

如果模拟很复杂或容器映像很大,模拟作业可能需要几分钟才能启动。如果 AWS RoboMaker 花费超过 25 分钟准备仿真作业,启动命令可能有问题。取消该作业,然后创建新的模拟作业。如果问题仍然存在,请联系 AWS 支持。

您可以使用 CloudWatch 日志来检查仿真和机器人应用程序执行日志中是否存在错误。您也可以添加自定义的终端工具来连接并排查正在运行的模拟作业的问题。

您的子网是否位于以下区域中 AWS RoboMaker 支持?

在其中两个中提供子网 AWS 支持的可用区 AWS RoboMaker。API响应包含支持的列表 AWS 可用区。

您的世界文件模型引用是否正确?

使用 CloudWatch 日志来验证世界文件中的所有模型是否正确。如果无法定位模型,您将看到以下错误。

[Wrn] [ModelDatabase.cc:340] Getting models from[http://models.gazebosim.org/]. This may take a few seconds. [Wrn] [ModelDatabase.cc:212] Unable to connect to model database using [http://models.gazebosim.org//database.config]. Only locally installed models will be available. [Err] [ModelDatabase.cc:414] Unable to download model[model://model_name] [Err] [SystemPaths.cc:429] File or path does not exist[""] Error [parser.cc:581] Unable to find uri[model://model_name]

模拟 WorldForge

问题:我的世界生成作业失败了。

如果您的世界生成作业未完成,请确保您的世界计数 floorplanCount * interiorCountPerFloorplan 大于 1 且小于 50。

问题:为什么我的世界导出作业失败了?

通过以下问题帮助确定根本原因,然后采取建议措施。

你有以下的信任政策吗 AWS RoboMaker?

如果您在create-world-export-job从中调用时传递了该IAM角色的完整 Amazon 资源名称 (ARN) AWS CLI,则您的信任策略可能没有足够的权限。检查角色,确保该角色与下列 robomaker.amazonaws.com 具有信任关系。

{"Version": "2012-10-17", "Statement": {"Effect": "Allow", "Principal": { "Service": "robomaker.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": {"StringEquals": {"aws:SourceAccount": "account#" // Account where the simulation job resource is created }, "StringEquals": {"aws:SourceArn": "arn:aws:robomaker:region:account#:simulation-job/*" } } } }

条件键可防止 AWS 在服务之间的交易中,服务不会被用作混乱的副手。有关条件键SourceArn的更多信息,请参阅SourceAccount和。

您的角色是否有权发布到 Amazon S3?

如果您为导出作业指定输出 Amazon S3 存储桶,则您的角色必须具有此存储桶的权限。更新您的信任策略以包含下列权限:

{"Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetObject", "s3:PutObject" ], "Resource": "amzn-s3-demo-bucket" }

您是否修改或删除了为导出作业指定的存储桶?

如果您在导出作业期间更新存储桶,则导出任务可能会出现ResourceNotFound错误。

问题:世界映象有问题。

通过以下问题帮助确定根本原因,然后采取建议措施。

为什么我的门口没有门?

您只能使用版本 2 或更高版本的模板添加门。您可以将版本 1 模板更新到更高版本。有关更多信息,请参阅 模拟世界模板版本、功能和变更

因为 AWS RoboMaker 模拟 WorldForge 创建的世界是独一无二的、随机的,当你生成世界时,你指定的门配置可能不存在于世界中。例如,您可以在模板中指定客厅和厨房之间的门,但这些房间之间可能有一面开放墙。因为有一面开放墙而不是门口,所以您无法在那里加一扇门。

为什么我的门挡住了房间入口?

门挡住房间入口是您可以用来挑战机器人的情况。要创建一个不会给机器人带来这种挑战的世界,可以执行以下操作之一:

用您的世界模板生成另一个世界。在新世界中生成的门可能不会挡住入口。

在世界模板中更改门的打开百分比。

为什么我世界映像中的墙比模拟作业或导出世界中的墙低?

AWS RoboMaker 允许你通过截断世界图像中的墙壁来查看你的模拟 WorldForge 世界,而不会被墙壁遮住。在您创建的世界中,墙壁高度是您在世界模板中指定的高度。

对于由版本 2 或更高版本模板生成的世界,门模型在世界映像中不会被截断。世界映像中门的高度与您创建的世界中门的高度相同。