AWS RoboMaker

Hello World 运行分为两部分,先是通过实例应用程序运行 Hello World 模拟作业,再就是进入实际开发环境,通过代码运行,启动模拟作业。

实例应用程序 Hello World


11选择实例应用程序-Hello world-启动模拟作业,开始创建,页面上面会出现进度条,如下图。12 等待过后,页面跳转到  模拟作业 ,如下图 13 可以看到状态是 正在准备 ,可以通过点击右边红框 查看各种配置,比如机器人应用程序、模拟应用程序。 就绪后如下图,可以通过点击查看模拟工具,比如Gazebo、Rviz、Rqt、对应的Terminal。 14 点击 GZClient 可以看到仿真世界 ,小车在旋转,如下图。 15 点击Rviz,选好相对的坐标系(Fixed Frame),添加机器人模型,即可看到旋转的机器人,如下图。 16 到此,我们的Hello World实例程序已经运行成功了,可以在各个工具中都进行探索尝试了。到此,我们也初步接触了模拟作业(simulation job),对它有了个初步的认识,模拟作业其实就是真实程序跑在仿真环境中形成的整个任务。那么如何编写代码并且生成模拟作业呢,下面就进入实际开发环境。

开发环境运行 Hello World


首先,创建 开发环境,然后 选择 并 打开开发环境 17 打开后的开发环境一片空白,我们点击 Resources - Download Samples - 1.Hello World(下图右红框),下载实例代码,当下方控制台 提示 下载成功时 ,左边目录会多出 Hello World全部源代码(下图左红框) 18 可以看到HelloWorld目录下有两个主要的子目录,robot_ws、simulation_ws,一个robot workspace即存放机器人应用程序的目录,另外一个simulation workspace存放模拟程序的目录(包括机器人模型、模拟世界模型等等) 打开robot_ws目录,找到其中一个子目录nodes,打开源文件 rotate ,这是Hello World中机器人旋转的代码,可以更改参数获得想要的动作。 23 当我们修改代码后,需要对代码进行编译(build)和打包(bundle),可以选择 Run - Build - HelloWorld Robot,Run - Build - HelloWorld Simulation,对robot_ws的内容和simulation_ws的内容分别进行编译,再点击Bundle进行分别打包,当控制台提示工作结束,并且robot_ws、simulation_ws,分别多出了一个文件夹bundle,分别有output.tar 才算成功(这里指展示了robot_wst的bundle的output.tar,对应simulation_ws应该也有),若未出现,重新进行打包工作。 22 其中提供工作流 Workflow,可以把build、bundle任务创建成一个工作流,通过点击 Run - Workflow - HelloWorld-Build and Bundle All,来一步build、bundle全部。 20当bundle任务结束,我们有了两个output.tar文件,也就是我们的机器人源码和模拟环境源码进行编译后再打包的文件,通过这两个输出文件,我们就能启动模拟作业了,点击 Run - Launch Simulation - HelloWorld,就会启动模拟作业,就是我们最开始通过实例HelloWorld文件启动模拟作业的状态。   24 那么到这里,提供的源码HelloWorld在开发环境下就真正跑起来了,对我们来说,真实可见的就是模拟作业的,通过其中打开gazebo、rviz等工具,我们获得机器人各种信息。经过这一遍整体流程,对机器人应用程序、模拟应用程序、模拟作业有了更进一步的认识。通过build、bundle,生成output.tar文件,把两个output.tar文件提供给simulation job,也就是我们的模拟作业,它就可以运行起来了。 那么问题来了,假如重新修改了代码要怎么运行,当然是重新build、bundle,然后点击 Simulation - Restart With New Bundles,其中会分别选择 output.tar文件,然后就会重启模拟作业啦。

使用感受

  • bundle太慢,打包过程需要下载很多配置文件,然后一起打包,导致速度很慢,第一次差不多25分钟,修改代码后重新bundle速度会加快,但是总体还是很慢。
  • launch simulation job也比比较慢,首先需要下载很多东西,这个环节的速度挺快能到30mb/s(假如bundle的时候下载速度能提速就好了),启动simulation job后,还要等待状态 变成 运行中,这个过程也需要很长时间。
  • 仿真效果上,gazebo和rviz拖动带有延时,由于AWS服务器在境外导致,希望能有些加速来实现比较好的效果。
  • 整体云端环境集成开发和仿真确实带来了很多便利,再进一步优化一定能带来更好的体验。