Está en la página 1de 23

AMERICAS

ROB201

Aprenda como funciona AWS RoboMaker


para hacer simulaciones de robots
Adler Oliveira
Senior Solutions Architect
AWS

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Agenda
• Introducción a AWS RoboMaker
• Probando en una simulación con AWS RoboMaker
• Construyendo un flujo CI/CD con pruebas de simulación en AWS
• Demo
¿Qué es un robot?

Sense

Un robot es una máquina autónoma capaz


de detectar su entorno, realizar cálculos
para tomar decisiones y puede ejecutar Compute
acciones en el mundo real

Act
Robot: panorama actual

Estación Espacial Internacional Andador autónomo Drones Brazos robóticos

Vehículos autónomos Robots Acuáticos

Robots Domésticos Kits de Robots Educativos Rovers


Ciclo de desarrollo de robots

2. Desarrollo de 3. Pruebas y 4. Despliegue y


1. Elección de un
la aplicación simulación de la operación de la
framework
robótica aplicación aplicación

Lanzamiento y actualización de nuevas aplicaciones


Robot Operating System (ROS)
• El framework mas utilizado para enseñar y aprender sobre robótica – más
de 16 millones de paquetes .deb (Linux Debian) descargados en 2018, con
un aumento de 400% desde el 2014
• Fundada en los laboratorios de Staford hace más de una década, y ahora
administrada por la Open Source Robotics Foundation (OSRF)
• La comunidad Global open-source soporta dos productos – ROS and Gazebo

ROS
Un conjunto de bibliotecas y herramientas de software, desde drivers hasta algoritmos,
que ayudan a los desarrolladores a crear aplicaciones de robótica

Gazebo
Robusto motor de física, gráficos de alta calidad e interfaces programáticas y gráficas para
ayudar a los desarrolladores a simular robots
Conjunto de servicios AWS RoboMaker
Un servicio que facilita a el desarrollo, prueba e implementación de
aplicaciones de robótica, así como construir funciones de robótica
utilizando servicios de la nube

Extensiones Cloud Simulaciones Manejo de Flotas


para ROS
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
¿Por qué simulación?

Escenarios Reproducibles Resultados más rápidos Cobertura de prueba ampliada


Vuelva a crear casos Ejecute pruebas Ejecute programáticamente
extremos y condiciones más rápido que en muchos escenarios que
inseguras para probar tiempo real para cubren la gran mayoría
comportamientos ciertos escenarios de las situaciones que
inesperados su robot encontraría

El uso de la simulación aumentará la velocidad de desarrollo,


reducirá la cantidad de errores y mejorará la calidad del código
¿Por qué AWS RoboMaker?

Altamente escalable Altamente fiable Costo-eficiente


Simulaciones concurrentes AWS Cloud proporciona El pago por uso reduce
a escala de la nube usando disponibilidad de el costo de las pruebas
una sola llamada API nivel empresarial de productos

Totalmente administrado Integrado con servicios AWS


El stack de Conjunto de servicios
ROS + Gazebo libera de AWS permiten crear
recursos de ingeniería soluciones end-to-end

AWS RoboMaker elimina las barreras para usar la simulación y permite pruebas automatizadas a escala
¿Quiénes usan AWS RoboMaker?

Caso de uso Caso de uso Caso de uso


Pruebas de regresión Simulación de múltiples robots Archivos de mapas generados en
automatizadas basadas en en una flota para probar navegación simulación para múltiples diseños
simulación + pipeline CI / CD y orquestación de edificios utilizando (SLAM);
mundos Gazebo creados utilizando
Resultados Resultados archivos (BIM)
Mayor velocidad de liberación Simulación que soporta multiples
de código y mejor cobertura robots para probar la interacción Resultados
de pruebas entre los robots Implemente fácilmente mapas
creados en AWS en sus robots
Más de 40 pruebas automatizadas Simulaciones de Gazebo con más de basados en construcción sin
en cada commit y más de 500 35 robots en una flota, lo que no necesidad de operar los robots
para cada release candidate era posible con robots físicos localmente primero
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Aplicación de ejemplo
Usando AWS Lambda para {

correr múltiples simulaciones


"wait": 5,
"scenarios": {
"QuickNav": {
"robotEnvironmentVariables": {
"ROS_AWS_REGION": "us-west-2"
},
"simEnvironmentVariables": {
"ROS_AWS_REGION": "us-west-2",
"TURTLEBOT3_MODEL": "waffle_pi",
"NAVIGATION_SUCCESS_COUNT": "1"
}
Escribimos una simple función AWS },
"MultiNav": {
Lambda que irá a lanzar múltiples "robotEnvironmentVariables": {
"ROS_AWS_REGION": "us-west-2"
simulaciones basadas en un conjunto },
"simEnvironmentVariables": {
definido de escenarios de prueba "ROS_AWS_REGION": "us-west-2",
"TURTLEBOT3_MODEL": "waffle_pi",
"NAVIGATION_SUCCESS_COUNT": "4"
}
}
En este ejemplo, los parámetros de },
"simulations": [
la prueba están implementados {
"scenarios": ["QuickNav","MultiNav"],
como un conjunto de variables de }
"params": {...}

entorno pasadas a la simulación }


]
Pruebas de simulación
• Cada trabajo de simulación invocado corresponde a una prueba
• Cancela automáticamente el trabajo cuando las pruebas fallan o se
completan, solo paga (hasta el minuto más cercano) por el computo
utilizado durante la simulación
• Auto etiqueta el trabajo de simulación con los resultados de la prueba
para análisis como parte del flujo de integración continua
Simulación automatizada con AWS CodePipeline
Git repository (GitHub or AWS CodeCommit)

Branch: Pull request Branch: Branch:


2
feature integration master (release)

Clone on
Git hook (merge)
1
AWS CodePipeline
ROS/ROS2
Ambiente de
Desarrollo AWS CodeBuild
Build and bundle 3
code in ROS container

Artefactos almacenados
ROS/ROS2 en Amazon S3
Ambiente de
Simulación
AWS Lambda
Simulation launcher

AWS RoboMaker
4
Simulation service
Despliegue automatizado con AWS CodePipeline
Git repository (GitHub or AWS CodeCommit)

Branch: Pull request Branch: Branch:


feature integration master (release)

Clone on
Git hook (merge) 2
1 AWS RoboMaker
AWS CodePipeline
ROS/ROS2 Fleet
Ambiente de management
Desarrollo AWS CodeBuild
Build and bundle
code in ROS container

Tests passed
Artefactos almacenados
en Amazon S3 Flota de Prueba
ROS/ROS2
Ambiente de
Simulación
AWS Lambda
Simulation launcher

Flota de producción
AWS RoboMaker
3
Simulation service
Resumen de la Arquitectura
Git repository (GitHub or AWS CodeCommit)

Branch: Pull request Branch: Branch:


2
feature integration master (release)

Clone on Clone on
Git hook (merge) Git hook (merge) 5
1 AWS RoboMaker
AWS CodePipeline AWS CodePipeline
ROS/ROS2 Fleet
Ambiente de management
Desarrollo AWS CodeBuild AWS CodeBuild
Build and bundle 3 Build and bundle
code in ROS container code in ROS container

Tests passed
Tests passed
Artefactos almacenados Artefactos almacenados
en Amazon S3 en Amazon S3 Flota de Prueba
ROS/ROS2
Ambiente de
Simulación
AWS Lambda AWS Lambda
Simulation launcher Simulation launcher

Flota de producción
AWS RoboMaker AWS RoboMaker
4 6
Simulation service Simulation service
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.
¡Gracias!

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

También podría gustarte