Presentaciones del segundo Meetup ROS sobre los temas: Gazebo y herramientas para robots.


El 18 de abril, se realizará el próximo ROS Meetup en línea , y continuaremos publicando grabaciones de informes del pasado ROS Meetup, que tuvo lugar el 30 de noviembre de 2019 en Moscú y reunió a más de 200 aficionados ROS que compartieron su experiencia y conocimiento.

En esta publicación, puede familiarizarse con una selección de discursos sobre el simulador de robótica
Gazebo , el comportamiento del robot y los conjuntos de datos.

¡Entonces vamos!

Usando el simulador Gazebo en robótica


Autor del informe: Alexander Bogoslovsky


Diapositivas de presentación A veces no es posible interactuar con el robot "en vivo", en cuyo caso debe recurrir a simuladores. Y si se trata de ROS, primero que nada al simulador Gazebo, ya que fue creado originalmente para usarse con ROS. Gazebo celebra muchas competiciones de robótica, incluso en organizaciones tan eminentes como DARPA y NASA. Este simulador ayudará a implementar casi cualquier robot de estado sólido, como un humanoide, un robot con ruedas, un helicóptero, un robot submarino, etc.

Los robots para Gazebo se crean en el formato URDF (formato de descripción robótica unificada): marcado XML que describe los enlaces del robot y los nodos de comunicación entre ellos. Dado que este es un formato universal, que también es necesario para posicionar robots reales en ROS (por ejemplo, paquetes robot_state_publisher y joint_state_publisher), originalmente no estaba destinado a describir todo el robot. Por lo tanto, al importar un modelo a Gazebo, el formato URDF se convierte a SDF (formato de descripción de simulación), que ya puede contener toda la información necesaria para el modelado, incluidos materiales de superficie, color, sensores, etc. El mundo de la simulación, en el que colocamos el robot, tiene esencialmente el mismo formato SDF. Y las extensiones de los nombres de dichos archivos para describir el mundo tienen la forma ".world".

Gazebo debe su versatilidad a una amplia gama de complementos creados por la comunidad, así como al código abierto. Cuando las tareas se vuelven demasiado específicas, puede escribir su propio complemento basado en la API proporcionada para completarlas. Una gran comunidad de usuarios ayudará a escribir, así como una gran cantidad de artículos de capacitación de Gazebo en el sitio web oficial del simulador. Pero no siempre es necesario escribir su propio complemento: la funcionalidad básica del simulador es muy extensa.

Este informe revisa la funcionalidad y las características de Gazebo, así como sus fortalezas y debilidades, que pueden ayudarlo a decidir sobre el uso de este simulador en su proyecto.

Árbol de comportamiento como una forma de definir un script de acción de robot


Autor del informe: Evgeny Safronov

Diapositivas de presentación
En muchos casos, el comportamiento del robot no solo debe ser complejo y diverso, sino también lo más predecible posible (preferiblemente al 100%). Los modelos de comportamiento estadístico basados ​​en métodos ML permiten simular acciones muy complejas, pero aún es difícil garantizar la seguridad y la transparencia del comportamiento del robot. En tales casos, los ingenieros recurren a varias máquinas de estado. Una alternativa para ellos es Behavior Trees / BT trees, que llegó a la robótica de la industria del juego.

En este video, comenzaremos con los conceptos básicos del Árbol de comportamiento: considere los tipos de nodos y hojas, las reglas de recorrido (ejecución) del árbol, analice los dos estilos principales de creación de BT: imperativo y reactivo, y asegúrese de que rara vez se usen en su forma pura. Discutiremos qué puede ser BT desde el punto de vista del aprendizaje automático y cómo los métodos de ML se pueden integrar en una estructura de árbol creada a mano, veremos que las plantillas de nodo, como las clases en OOP, ayudan a encapsular el comportamiento, aumentar la legibilidad de la lógica de árbol y crear bibliotecas separadas. Finalmente, una breve descripción de los marcos ya preparados para trabajar con ROS. No hay un líder claro, todos tienen enfoques diferentes para muchos aspectos clave, desde la semántica básica hasta la interacción con ROS. Sin embargo, ahora puede descargar e intentar conectar BT a su robot / simulador.

¿Qué hay en tu bolso? Cómo trabajar con archivos de bolsa y no ahogarse en datos


Autor del informe: Oleg Shipitko

Diapositivas de presentación
No es ningún secreto que los archivos de bolsa son el formato principal de registro de datos en ROS. La mayoría de los desarrolladores que al menos una vez se han encontrado con ROS saben qué son los archivos bag y cómo trabajar con ellos. Sin embargo, no todos pensaron en cuestiones como:
  • ¿Cómo está el archivo de la bolsa adentro?
  • ¿Cómo reducir su volumen?
  • ¿Qué más puedo hacer con los archivos de bolsa además de la grabación y reproducción?
  • ¿Qué debo hacer si el tipo de uno de los mensajes ha cambiado, pero no quiero expulsar todos los archivos grabados anteriormente?

Las respuestas a estas y otras preguntas están dedicadas a nuestra presentación.

En nuestro discurso, tratamos de responder a cada uno de ellos.
El informe se divide en varias partes. Al principio, se considera el formato para almacenar archivos de bolsa y su estructura interna.

La segunda parte del informe analiza las características de la grabación de archivos. Se resaltan los argumentos no obvios y raramente utilizados del comando rosbag record. Se consideran las características de escribir en un archivo de imagen de bolsa. Se describen los algoritmos utilizados para comprimir archivos de bolsa.

En la parte dedicada a la simplicidad y la inspección de los archivos grabados, se consideran comandos que le permiten ver el contenido de un archivo de bolsa, así como averiguar qué temas contiene. Se presta especial atención a la herramienta de inspección de archivos rqt_bag y sus características principales.

Los datos registrados en archivos de bolsa se pueden utilizar para probar varios algoritmos de clasificación. En este caso, surge la tarea de marcar los datos: hacer coincidir el conjunto de datos con una determinada etiqueta que define la clase que es correcta para el conjunto de datos. Como ejemplo de una herramienta para resolver este problema, el informe considera el paquete rosbag-slide-windows-annotator, que le permite utilizar datos de temas visuales como base para anotar datos numéricos. Al mismo tiempo, las clases necesarias para el marcado se cargan desde el archivo json del usuario, lo que hace que el paquete sea configurable para muchas tareas de marcado.

Al almacenar una gran cantidad de archivos de bolsa, surge la tarea de encontrar rápidamente un archivo que cumpla con algunos criterios. Para un robot móvil, dichos criterios pueden ser, por ejemplo, un clima específico, una ruta de movimiento, la presencia / ausencia de un evento específico en un archivo (por ejemplo, una persona que bloquea el camino de un robot), etc. Para buscar rápidamente un archivo que cumpla con el conjunto de criterios requeridos, los archivos se pueden anotar: asigne a cada archivo una cierta cantidad comprimida de información que contenga los datos necesarios para una búsqueda rápida. El informe analiza el enfoque de la anotación de archivos de bolsa, utilizado por la empresa Visiletlect Service, asignando cada archivo de bolsa a una imagen que le permite ver y comparar rápidamente información sobre muchos archivos.

La última parte del informe está dedicada a una descripción general de las herramientas estándar para migrar archivos bag a ROS. La migración es necesaria si uno o más mensajes en el archivo han cambiado, pero desea guardar y usar archivos bag previamente grabados. En este caso, puede sobrescribir los archivos antiguos agregando nuevos campos al mensaje anterior (o eliminando los existentes). Para simplificar este proceso, ROS proporciona herramientas estándar que se tratan brevemente en el informe.

Conclusión


Pronto, el 18 de abril, se realizará el próximo ROS MeetUp, solo que ahora lo llevaremos a cabo en el formato de un seminario web en línea. Invitamos a todos los colegas a asistir como oyentes y oradores. La participación es gratuita, el número de plazas es limitado, regístrese aquí .
¡Y también organizaremos un concurso de paquetes de código abierto en ROS!
Y le recordamos que puede encontrar desarrolladores ROS de ideas afines en Rusia, descubra las últimas noticias ROS en nuestro canal de telegramas de la comunidad ROS Rusia .

Si está interesado en desarrollar robots, módulos robóticos o componentes de software, si desea mostrar sus desarrollos o simplemente chatear con personas de ideas afines, ¡bienvenido a nuestro próximo ROS Meetup, que se realizará el 18 de abril en formato en línea !

All Articles