模拟

问:什么是 AWS RoboMaker 模拟?

答:AWS RoboMaker 模拟是一项完全托管的服务,可让您轻松创建模拟世界并运行模拟作业,而无需预置或管理任何基础设施。

问:RoboMaker 模拟有哪些作用?

答:RoboMaker 模拟有多种使用案例。您可以使用 RoboMaker 模拟以自动化方式测试机器人应用程序并加速迭代开发。您可以使用它来生成合成图片或激光雷达数据以便开发算法。您还可以使用 RoboMaker 模拟通过强化学习来训练机器学习模型。

问:RoboMaker 模拟有哪些主要功能?

答:RoboMaker 模拟具有两项主要功能 – WorldForge 和模拟运行。借助 RoboMaker WordForge,可以自动创建数百个预定义的随机模拟世界,通过这些世界复制实际条件,而无需工程投入或管理世界生成基础设施。模拟运行提供完全托管的计算基础设施,可运行任何规模的模拟。

问:RoboMaker 模拟运行支持哪些模拟引擎?

答:RoboMaker 模拟运行默认支持开源 Gazebo 引擎,而 WorldForge 则支持 Gazebo 兼容的世界格式。Gazebo 的默认物理引擎为 ODE(开放动态引擎)。Gazebo 的默认渲染引擎为 OGRE(面向对象的图形渲染引擎)。

模拟 WorldForge

问:什么是模拟世界?

答:模拟世界是房屋等环境的虚拟模型。在运行模拟时需要使用模拟世界,它包括建模环境的几何、视觉和物理信息。

问:为何需要使用 WorldForge?

答:构建模拟世界可能非常困难、成本高昂且耗时,而且还需要具有 3D 建模和模拟引擎方面的专业技能。尽管有些公司具有创建一个模拟世界的时间和资源,但要想创建足够的世界来有效地针对回归测试和强化学习等工作负载扩展模拟却是极其困难且成本高昂的。

借助 RoboMaker WordForge,可以自动创建数百个预定义的随机模拟世界,通过这些世界复制实际条件,而无需工程投入、专业的设计技能或管理世界生成基础设施。

问:我如何开始使用模拟 WorldForge?

答:您可以通过创建一个世界模板来开始使用 WorldForge,在创建世界模板时可以从头开始,也可以使用 RoboMaker 提供的某个示例模板。然后,您可以借助世界模板,通过创建世界生成作业来生成一个或多个模拟世界。WorldForge 与 RoboMaker 模拟运行集成在一起,以便您可以轻松地在 RoboMaker 模拟作业中使用生成的世界。如果您要导出模拟世界以供在本地环境中使用,则可以通过创建世界导出作业来完成,该导出作业会将指定的世界作为 ROS 包以 .zip 格式导出到您的 Amazon S3 存储桶中。

问:什么是模拟世界模板?

答:模拟世界模板用于定义模拟世界的规范。例如,您可以在世界模板中定义平面图、房间和装饰,以生成一组室内居住世界。世界模板不是用来精确定义一个模拟世界。相反,世界模板可以生成具有一定随机性的多个模拟世界,例如随机的房间大小和家具。世界模板的规范定义这种随机性的范围。

问:什么是世界生成作业?

答:世界生成作业用于通过世界模板生成一个或多个模拟世界。在创建世界生成作业时,您可以通过两个维度(平面图和室内设计)指定世界版本数量。例如,如果有 2 个平面图,每个平面图有 2 种室内设计,则会形成 4 (2*2) 个独特世界。

问:什么是世界导出作业?

答:世界导出作业可以将生成的世界作为 ROS 包以 .zip 格式导出到您的 Amazon S3 存储桶。需要在本地环境使用生成的世界时,可以创建世界导出作业。如果是在 RoboMaker 模拟运行中使用生成的世界,则不需要导出。

模拟运行

问:什么是 RoboMaker 中的机器人应用程序?

答:RoboMaker 中的机器人应用程序是指要在实体机器人上运行的、基于 ROS 的应用程序。您需要将机器人应用程序源代码构建到 X86 架构中,才能使用 RoboMaker 模拟运行。

问:什么是 RoboMaker 中的模拟应用程序?

答:模拟应用程序中包含一个 3D 模拟世界和多种 Gazebo 插件,这些插件可以控制机器人在模拟世界中的运动。Gazebo 模拟世界的默认格式为 .sdf。与机器人应用程序一样,您需要将模拟应用程序源代码构建到 X86 架构中,才能使用 RoboMaker 模拟运行。

问:如何开始使用 RoboMaker 模拟运行?

答:您可以通过创建机器人应用程序和/或模拟应用程序来开始使用 RoboMaker 模拟运行。这些应用程序关联到存储在 Amazon S3 存储桶中的代码。然后,您可以创建一个模拟作业,以在 RoboMaker 的完全托管的基础设施上执行模拟应用程序和机器人应用程序。

问:什么是模拟作业?

答:模拟作业是 RoboMaker 模拟运行中的主要服务资源。您通过创建模拟作业在 RoboMaker 上运行模拟工作负载,模拟作业将自动为您配置和管理计算基础设施。在我们的文档中了解有关创建模拟作业的更多信息

问:什么是批量模拟作业?

答:批量模拟作业是模拟作业请求的集合。您可以使用 AWS RoboMaker 的 API 创建新的批量模拟作业。使用批量模拟作业功能,您可以通过一次 API 调用提交多个模拟作业请求,并为提交的所有请求提供排队功能。

问:我可以使用哪些工具来构建机器人应用程序和模拟应用程序?

答:请使用 Colcon 工具来构建和捆绑您的机器人应用程序和模拟应用程序,该工具包括在 RoboMaker 计算基础设施上成功执行应用程序所需的全部必要依赖项软件包。请参阅文档了解更多详细信息。

问:什么是应用程序版本控制?

答:RoboMaker 支持机器人应用程序和模拟应用程序的版本控制,因此您可以控制机器人和模拟使用的程序版本。版本是带有编号的机器人应用程序或模拟应用程序快照,您可以在开发工作流程的不同环节(例如开发、测试部署和生产)创建版本以便使用。

问:能否删除机器人应用程序或模拟应用程序的特定版本?

答:可以,您可以删除某个应用程序的特定版本或所有版本。

问:RoboMaker 是否会存储我的机器人应用程序和模拟应用程序?

答:否,RoboMaker 不会在服务中存储您的机器人应用程序或模拟应用程序。您自己将应用程序上传到 S3 存储桶中,然后在机器人应用程序和模拟应用程序创建过程中使用 S3 对象路径。

问:RoboMaker 模拟运行支持哪些工具?

答:RoboMaker 模拟运行支持 Gazebo 客户端(与运行中的模拟作业交互)、rviz(直观呈现传感器数据)、rqt(运行各种 GUI 工具)和命令行(与运行中的机器人应用程序交互)。

问:RoboMaker 模拟运行提供哪些日志记录和监控功能?

答:RoboMaker 模拟运行与 Amazon CloudWatch Metrics 集成,因此您可以从 CloudWatch 控制台中监控实时影响因素等服务指标。此外,您可以在机器人应用程序中利用由 RoboMaker ROS 云扩展工具提供的 Amazon CloudWatch Metrics 软件包,发布模拟作业运行过程中的实时指标,例如机器人电量、速度和碰撞。

RoboMaker 模拟运行还与 Amazon CloudWatch Logs 集成。您可以在机器人应用程序中使用标准输出语句,而 RoboMaker 模拟会在模拟运行过程中将这些消息记录到 CloudWatch 日志组中。该功能可以帮助您在应用程序开发过程中调试机器人应用程序。

您可以让 RoboMaker 模拟运行在模拟作业运行过程中记录 rosbag 文件。日志将传输到您的 S3 存储桶。您可以使用 rosbag 文件分析和调试机器人应用程序的消息传递。

问:模拟作业的故障行为是什么?

答:您可以将模拟作业的故障行为配置为失败或继续。在失败模式下,如果在模拟作业运行过程中发生故障,模拟作业会失败,并且底层基础设施会被释放。在继续模式下,如果在模拟作业运行过程中发生故障,模拟作业会失败,但底层基础设施会被保留。利用继续模式,您可以使用命令行工具进一步排除模拟作业的故障。在继续模式下,RoboMaker 模拟会继续产生费用,直到您终止作业为止。

问:在什么时候重启模拟作业?

答:重启模拟作业可以用于快速迭代开发。重启模拟作业的速度比创建新模拟作业的速度要快,因为其不需要在后台预置和配置资源。在机器人应用程序开发期间,您可以使用重启模拟作业功能在迭代代码更改时快速测试代码。

问:重启模拟作业与克隆模拟作业有什么不同?

答:重启模拟作业用于快速迭代测试,更新后的模拟作业在 RoboMaker 预置和管理的相同基础设施资源上运行。克隆模拟作业使用与现有作业相同的配置来创建新作业。其会在后台触发基础设施资源预置和配置,这可能需要几分钟时间。

问:为什么我需要在模拟作业中提供 AWS Identity and Access Management (IAM) 角色?

答:IAM 角色让 RoboMaker 模拟能够访问您在模拟作业中指定的资源。例如,RoboMaker 可以将模拟日志写入您的 S3 存储桶。

问:什么是模拟持续时间?

答:模拟持续时间定义了模拟作业在终止之前应该运行多长时间。持续时间取决于时钟时间和模拟时间。

问:模拟作业是否实时运行?

答:RoboMaker 模拟会尝试尽快运行您的模拟作业。您也可以使用 Gazebo 世界配置中的“实时更新速度”和“最大步长”设置来控制模拟作业的运行速度。请参阅定价页面了解详细信息。

问:RoboMaker 模拟如何收费?

答:模拟 WorldForge 根据您生成和导出的模拟世界数量收费。  模拟运行根据模拟作业的持续时间和模拟作业使用的 CPU/内存资源收费。请参阅定价页面了解详细信息。

问:RoboMaker 模拟运行按时钟时间收费还是按模拟时间收费?

答:模拟作业可以实时运行,也可以比实时更快或更慢。RoboMaker 模拟按时钟时间收费,因此模拟时间的快慢不会影响您的费用。请参阅定价页面了解详细信息。

适用于 ROS 的云扩展工具

问:什么是 RoboMaker 适用于 ROS 的云扩展工具?

答:RoboMaker 提供适用于 ROS 的云扩展工具,让您可以将智能机器人应用程序通常需要的资源密集型计算流程转移到云端,从而释放本地计算资源。RoboMaker 以开源 ROS 软件包的形式提供各种云服务扩展工具,因此您可以在自己熟悉的软件框架中通过云 API 来构建机器人的功能。

问:支持哪些云扩展工具?

答:目前支持的云扩展工具包括 Amazon CloudWatch Logs、Amazon CloudWatch Metrics、Amazon Polly、Amazon Lex、Amazon Kinesis Video Streams、Amazon Rekognition 和 Amazon S3。有关更多详细信息,请参阅资源页面文档

问:使用 RoboMaker 云扩展工具是否要支付费用?

答:RoboMaker 云扩展工具是 Apache 2.0 许可下的免费开源工具。但是如果您从这些扩展工具中调用 Amazon Rekognition 或 Amazon Kinesis Video Streams 等相应服务,则需要另行支付费用。请参阅定价页面了解详细信息。

队列管理

问:什么是 RoboMaker 队列管理?

答:利用 RoboMaker 队列管理功能,您可以创建机器人、将机器人注册到队列中,然后将机器人应用程序部署到队列中。

问:使用 RoboMaker 队列管理功能的最低硬件规格要求是什么?

答:RoboMaker 队列管理基于 AWS Greengrass 构建,其最低硬件规格要求与 AWS IoT Greengrass 相同。详细信息请参阅对应的 AWS IoT Greengrass 常见问题页面。

问:如何将实体机器人与 RoboMaker 队列管理关联?

答:您需要先从 RoboMaker 控制台中创建机器人,然后下载机器人对应的证书和基于 AWS Greengrass 的代理。然后在您的实体机器人上逐步安装代理和证书。安装并连接之后,您的实体机器人就会与您在 RoboMaker 控制台中创建的机器人关联。

问:什么是队列?

答:队列是一组机器人。您可以自由地将现有机器人注册到队列中或者将其从中注销。RoboMaker 队列管理功能针对具体队列定义了部署作业,一个机器人只能属于一个队列。

问:RoboMaker 队列管理功能如何收费?

答:RoboMaker 队列管理功能与 Greengrass 集成,我们按照标准 AWS Greengrass 定价收取费用。使用 RoboMaker 队列管理功能无需额外付费。请参阅定价页面了解详细信息。

开发环境

问:什么是 RoboMaker 开发环境?

答:RoboMaker 开发环境是 AWS Cloud9 中的一种自定义集成开发环境 (IDE),用于机器人开发。该 IDE 预先安装了 ROS,并附带示例应用程序。该 IDE 还集成了模拟功能等其他 RoboMaker 功能,因此您可以从 IDE 的界面中使用这些功能。

问:RoboMaker 开发环境支持哪些实例类型?

答:RoboMaker 开发环境支持所有 AWS Cloud9 实例类型,但 T2 实例除外,该实例没有足够的资源来运行 ROS。

问:使用 RoboMaker 开发环境是否需要支付费用?

答:您需要为 RoboMaker 开发环境的底层 Amazon EC2 实例和 Amazon EBS 存储支付费用,RoboMaker 不会产生额外费用。请参阅定价页面了解详细信息。

图片
了解有关定价的更多信息

AWS RoboMaker 按使用量付费,无最低费用。

了解更多 
图片
注册免费账户

立即享受 AWS 免费套餐。 

注册 
图片
开始在控制台中构建

开始使用 AWS RoboMaker 进行构建。

开始使用