终止支持通知:2025 年 9 月 10 日, AWS
将停止对的支持。 AWS RoboMaker2025 年 9 月 10 日之后,您将无法再访问 AWS RoboMaker 控制台或 AWS RoboMaker 资源。有关过渡 AWS Batch 到以帮助运行容器化仿真的更多信息,请访问此博客文章。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
故障排除 AWS RoboMaker
以下各节针对您在使用 AWS RoboMaker 仿真、或模拟时可能遇到的错误和问题提供了故障排除建议 WorldForge。 IDEs如果您发现某个问题未在此处列出,可以使用此页底部的 提供反馈 链接来报告。
您可以在日志控制台中查找模拟作业的CloudWatch 日志streamOutputToCloudWatch
设置为True
,则同样的行为适用于工具。您也可以在模拟作业中通过添加自定义上传配置配置上传。
有关更多信息,请参阅 登录和监控 AWS RoboMaker。
Sections
模拟作业
问题:模拟作业失败。
通过以下问题帮助确定根本原因,然后采取建议措施。
您的 Amazon S3 资源是否与位于同一区域 AWS RoboMaker?
您的机器人应用程序、模拟应用程序和输出位置必须位于 AWS RoboMaker 所在的同一区域内。验证您的应用程序源和模拟作业输出位置。
您的机器人应用程序是否异常退出?
设置您的机器人应用程序进行模拟时出现问题。在 Amazon 中查看模拟作业的机器人应用程序日志 CloudWatch。
从模拟作业详细信息屏幕访问日志。选择 Logs (日志),然后选择一个日志流。要查找特定问题,请使用筛选条件。例如,警告或错误。
您的应用程序是否缺少 .so
文件?
如果您的应用程序崩溃,它可能缺少一个依赖的共享对象 (.so
) 文件。在您的环境中提取应用程序包,并确认所需的共享对象库位于 /usr/lib
或 /usr/local/lib
中。确保将依赖项添加到您的软件包 .xml
文件。
是否已将角色的 ARN 用于 AWS CLI?
当您create-simulation-job
从调用时 AWS CLI,请使用角色的完整亚马逊资源名称 (ARN),而不仅仅是角色名称。
您的职位是否有针对以下方面的信任政策 AWS RoboMaker?
如果您在调create-simulation-job
用时传递了 IAM 角色的完整亚马逊资源名称 (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?
使用访问权限更新您的 IAM 角色的 CloudWatch 权限策略。
{"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
"logs:DescribeLogStreams"
],
"Resource": "*"
}
您的应用程序是否具有不匹配的实体标签?
实体标签 (ETag) 是创建模拟时提供的 Amazon S3 对象的哈希值。仅 ETag 反映对象内容的更改,而不反映其元数据的更改。如果您在使用 Amazon S3 中的机器人应用程序或模拟捆绑包之前对其内容 AWS RoboMaker 进行了更改,则会出现版本不匹配的情况。
要解决此问题,请创建一个新的机器人应用程序或模拟应用程序版本,并为更新后的应用程序包提供密钥位置。有关更多信息,请参阅 创建机器人应用程序版本或 创建模拟应用程序版本。
是否已超出子网弹性网络接口(ENI)的限制?
AWS RoboMaker 在运行模拟作业的子网中,每个并发模拟作业使用一个 ENI。必须为每个接口分配一个 IP 地址。要解决此问题,您可以:
删除未使用的 IP 地址 ENIs 以释放子网中的 IP 地址。要删除未使用的 ENI,请参阅删除网络接口。
使用 AWS Management Console,请求提高特定 AWS 区域 ENIs 的服务限额
是否已正确配置启动命令?
如果模拟很复杂或容器映像很大,模拟作业可能需要几分钟才能启动。如果准备模拟作业 AWS RoboMaker 的时间超过 25 分钟,则启动命令可能有问题。取消该作业,然后创建新的模拟作业。如果问题仍然存在,请联系 AWS 支持人员。
您可以使用 CloudWatch 日志来检查仿真和机器人应用程序执行日志中是否存在错误。您也可以添加自定义的终端工具来连接并排查正在运行的模拟作业的问题。
您的子网是否位于 AWS RoboMaker 支持的区域中?
在支持的两个 AWS 可用区中提供子网。 AWS RoboMakerAPI 响应包含支持的 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 角色的完整亚马逊资源名称 (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 模板更新到更高版本。有关更多信息,请参阅 模拟世界模板版本、功能和变更。
由于 S AWS RoboMaker imulation WorldForge 创建的世界是独一无二的、随机的,所以当你生成它时,你指定的门配置可能不存在于世界中。例如,您可以在模板中指定客厅和厨房之间的门,但这些房间之间可能有一面开放墙。因为有一面开放墙而不是门口,所以您无法在那里加一扇门。
为什么我的门挡住了房间入口?
门挡住房间入口是您可以用来挑战机器人的情况。要创建一个不会给机器人带来这种挑战的世界,可以执行以下操作之一:
用您的世界模板生成另一个世界。在新世界中生成的门可能不会挡住入口。
在世界模板中更改门的打开百分比。
为什么我世界映像中的墙比模拟作业或导出世界中的墙低?
AWS RoboMaker 允许你通过截断世界图像中的墙壁来查看你的模拟 WorldForge 世界,而不会被墙壁遮住。在您创建的世界中,墙壁高度是您在世界模板中指定的高度。
对于由版本 2 或更高版本模板生成的世界,门模型在世界映像中不会被截断。世界映像中门的高度与您创建的世界中门的高度相同。