非常感谢古月居提供的这次参与内测的机会。
AWS RoboMaker
概述
AWS RoboMaker 提供基于云端的机器人应用程序(包括ROS2)开发环境、模拟环境,可以方便的通过浏览器在云端进行开发和测试服务。提供了Simulation WorldForge 服务,可以通过该服务来建立虚拟世界从而让机器人在其中进行测试。提供了AWS机器学习服务、监控服务、分析服务,提供了队列管理服务,支持OTA,可以在机器人整个生命周期部署、执行OTA更新以及管理机器人技术应用程序。 (本系列测试学习笔记主要围绕ROS1程序开发、模拟,模拟世界建立、实际使用)
基本介绍
如果想要使用AWS RoboMaker,先需要注册AWS(Amazon Web Services)账户,其中已经包括robomaker服务,只需要在实际使用时根据消耗的资源进行付费,在使用前,需要先创建IAM(Identity and Access Management)用户,分配不同的权限,再根据IAM登陆进行实际使用。详细使用细节请查看官网文档(https://docs.aws.amazon.com/robomaker/latest/dg/what-is-robomaker.html),可选中文。 打开看到AWS RoboMaker界面如下
- 开发
- Simulation WorldForge
- 模拟运行
- 队列管理
- 资源
开发
为ROS程序提供开发环境,可以进行实际程序开发,设置模拟环境进行测试。
- 开发环境
- 机器人应用程序
- 模拟应用程序
开发环境
创建实际使用的开发环境,在其中进行开发。
机器人应用程序
定义:机器人应用程序是使用机器人操作系统 (ROS) 构建的、在物理机器人上运行的应用程序。它针对机器人硬件和架构进行自定义。
可以看到右上角有一个按钮叫创建机器人应用程序,可以通过点击按钮,图形化界面的方式创建程序。同时也可以在开发环境中手动编写代码来开发程序,通过运行程序来留下记录。这里所记录的每一条,都是可以实际在模拟作业中使用的机器人程序。
模拟应用程序
定义:模拟应用程序在机器人开发中用来模拟不同的环境。它包含机器人、机器人的传感器、地形以及填充环境的物体的视觉和物理模型。它还负责模拟重力和碰撞等物理特性。
右上角有一个按钮创建模拟应用程序,可以通过图形化界面方式创建程序,也可以通过在开发环境中手动编写模拟环境的相关代码,通过运行来留下记录,所有的模拟应用程序记录是可以在模拟作业中实际使用的程序。模拟应用程序就是模拟环境,也就是机器人模型,加上各种所需物理模型,加上仿真环境的世界模型。有了这个模拟环境,我们所编写的机器人应用程序就可以在其中的模拟机器人身上运行,和模拟世界进行交互。
Simulation WorldForge
通过图形化界面操作创建模拟世界。
- 效果图模版
- 效果图
- 生成作业
- 到处作业
效果图模版
效果图模板即创建模拟世界模版的地方,可以看到右上角创建模版的按钮,通过图形化界面来创建模拟世界。其中提供一些示例模版,可以基于其示例模版、已保存的模版记录来创建模版,或者从头开始创建模版。(图上是我创建的一个模版)
效果图、生成作业、导出作业
三者放在一起进行说明。 在效果图模版中,我们生成了一个模版,然后想要生成模拟世界(即生成模拟世界的代码),通过在上图选择 模版-生成效果图,所以效果图即我们的模拟世界,如下图,并且可以看到右上角,可以选择进行创建导出作业。
当我们上一步选择 生成效果图时,这个生成任务的触发即生成作业,如下图,可以看到操作记录与任务完成状态。
在上上图片中,即效果图页面,可以选择创建导出作业,即把我们的模拟世界打包下载。(内测未开放这个流程,没能体验)。 RoboMaker做了内部集成,我们不需要下载模拟环境的源码放到我们的开发环境,也可以通过代码调用来方便的使用模拟环境,在后面的学习笔记中会写WorldForge功能的尝试。
模拟运行
即进行模拟仿真。
- 模拟作业
- 模拟作业批处理
模拟作业
模拟任务将机器人应用程序和模拟应用程序进行配对以生成模拟数据。在运行时,可以可视化来自模拟的传感器数据和其他数据。它还将捕获模拟数据,以便检查并于稍后回放。 简单的说模拟作业就是把我们编写的机器人应用程序和模拟应用程序结合,也就是把我们的机器人代码和仿真环境代码结合,真的跑起来,如下图。
可以看到每一个模拟作业都有自己的机器人应用程序和模拟应用程序。我们可以通过模拟作业,查看机器人的状态和各种数据,可以使用gazebo、rviz、rqt、terminal等等工具,如下图。
模拟作业批处理
定义:模拟作业批处理是模拟作业请求的集合。 您可以使用 AWS RoboMaker 的 API 创建新模拟批处理作业,也可以克隆预先存在的批处理,方法是通过选择操作下拉菜单下的克隆来克隆 AWS 控制台内的批处理。
队列管理
- 机器人
- 队组
- 部署
未开放测试,通过官方文档,我的理解是云端程序通过模拟测试完毕,需要部署到实际机器人,先创建机器人(配置机器人硬件),可以创建多个机器人形成队组,然后通过部署来进行单个或多个机器人部署。
资源
- 实例应用程序
- 机器人软件
看到文章开头的图片,即选择了实例应用程序,开放了Hello world 模拟作业体验,未开放机器人监控。机器人软件即各种文档支持。 这次的初步介绍就到这里,对整体操作界面初步了解,接触了一些概念,那么实际该如何进行开发呢,下一次我们就从编程传统 Hello World 开始。