Proyecto Webots

Esta página contiene los detalles de un proyecto de redacción técnico aceptado para Google Season of Docs.

Resumen del proyecto

Organización de código abierto:
Webots
Redactor técnico:
Canal de ilusiones suaves
Nombre del proyecto:
Serie de instructivos de video para Webots (integración con ROS2)
Duración del proyecto:
Duración estándar (3 meses)

Project description

Aprendizajes:

Esta serie de tutoriales en video permitirá que los usuarios nuevos empiecen de la mejor manera posible con Webots y les brindará a los espectadores soluciones claras paso a paso para lograr simulaciones específicas.

Objetivo:

Al final de esta serie, los usuarios podrán crear nodos ROS2 básicos, interactuar con Webots y ganar la confianza para trabajar en proyectos avanzados con robots para dispositivos móviles. Esta serie de videos también brindará buenas explicaciones teóricas de varios conceptos vitales en el campo de la robótica.

Detalles de la serie de videos:

  1. Instalación y configuración de un repositorio en ROS 2 en Visual Studio Code Esto incluye la instalación de ROS2 con inteligencia de comandos y los conceptos básicos de su funcionamiento. En segundo lugar, también se incluirá la configuración del espacio de trabajo de ROS en VS Code y la funcionalidad de las pestañas básicas en VS Code.

  2. Ejemplo básico de ROS2 y Webots. Se utilizarán algunos ejemplos de Webots ROS2 para lograr que los usuarios comprendan las maravillas que se pueden hacer si usamos ROS2 con Webots para la simulación. También se incluirán teorías básicas de la comunicación entre ROS2 y Webots.

  3. Cómo usar servicios de ROS2 para interactuar con Webots Enseñanza de los conceptos básicos del servicio de ROS en la que se explica la diferencia entre los servicios en ROS y ROS2. En segundo lugar, se muestran instructivos graduales para llamar a servicios y habilitar temas de sensores para lecturas y accionadores de movimiento.

  4. Controla un robot personalizado con ROS2 Publisher. Aprende a publicar mensajes con publicadores de ROS2 en Webots. Podemos implementar un ejemplo de control de movimiento de robots publicando la salida del teclado en un tema que luego los servicios de ROS pueden usar para el movimiento en Webots.

  5. Recibe comentarios de un robot con el suscriptor de ROS2. En este video, nos suscribiremos a las lecturas de los sensores de distancia y deteneremos el robot si está a punto de colisionar. Básicamente, será un nodo para evitar obstáculos con mensajes interactivos publicados.

  6. Robots maestro(publicador) secundario(suscriptor) con ROS2 En este video, controlaremos un robot con un teclado y haremos que otro robot se aleje del robot manual. Es similar a una situación de ladrón y policía :) [Esta será una continuación de 3,4,5 videos]. Esto permitirá que los usuarios prueben las comunicaciones y encontrarán fallas en la simulación si hay un problema en el ROS.

  7. Configurando Rviz (Muestra diferentes resultados de sensores). En este video, agregaremos algunos sensores más y publicaremos sus datos en Rviz. Al final de este video, el usuario podrá configurar Rviz (es decir, agregar sensores como Lidar, Cámara, etc.) para visualizar los datos, lo que guardará la configuración y generará la configuración guardada la próxima vez.

  8. Depuración de video (eco de Rostopic, información de Rostopic, RQT_graph). Este video incluirá una funcionalidad incorrecta intencional de algunos temas para ayudar a comprender la técnica de depuración. Seguiremos un proceso de visualizar el gráfico de RQT y conocer los temas que son responsables del problema. Uso de rostopic echo para verificar si el tema se está publicando y, al final, verificando la información de rostopic para obtener el problema. Resolver el problema y tener una funcionalidad normal

  9. Video de depuración(rqt_console, rqt_gui) En este video, se usarán mensajes Ros(información, depuración, error, etc.) en el nodo y se explorará el uso de rqt_console. También extenderemos este video para usar rqt_gui y publicar mensajes ficticios y obtener la funcionalidad requerida. Este puede ser un enfoque alternativo para corregir algunos errores.

  10. Videos temáticos avanzados: Sobre la integración de la biblioteca de SLAM en un entorno desconocido (caja de herramientas de SLAM o LaMa) [parte 1] En este video, se comenzará con la teoría básica de los problemas de SLAM. Luego, usaremos los conceptos de infraestructura que se mencionaron anteriormente para comprender el punto clave del proyecto. Por último, generaremos los nodos necesarios a través de la terminal y veremos el resultado de la asignación en Rviz.

  11. Videos temáticos avanzados: Sobre la integración de la biblioteca de SLAM en un entorno desconocido (caja de herramientas de SLAM o LaMa) [Parte 2] Como continuación del 10o video, en este video enseñaré cómo crear un archivo de inicio para iniciar todos los nodos juntos y examinar rqt_graph para lograr una comprensión adecuada de los conceptos en el framework de ROS. Al final, guardaremos el mapa generado por el paquete usando un servidor de mapas.

  12. Videos temáticos avanzados: Sobre la integración de OpenCV (detección de etiquetas de RA, paquete Ar_track_alvar) [Parte 1] El video comenzará con qué son las etiquetas de RA y su importancia en la localización con visión artificial. Luego, nos basaremos en el funcionamiento del paquete Alvar de la pista de RA. Esto ayudará a proporcionar una perspectiva general del proyecto. Por último, se creará el servicio para habilitar la transmisión de fotogramas de video de Webots a un tema de ROS.

  13. Videos temáticos avanzados: Sobre la integración de OpenCV (detección de etiquetas de RA, paquete Ar_track_alvar) [Parte 2] Este video será la continuación del video 12, en el que el paquete usará la transmisión de imágenes anterior y se publicará un tema de transformación entre el robot y la etiqueta de RA, que puede verse en Rviz. Por último, a medida que movamos el robot, veremos que se ubican diferentes etiquetas y cambia su posición en Rviz y en los mensajes de rostopic.

Conclusión:

Este proyecto de GSOD es un paquete autosuficiente para permitir una comprensión básica de la integración de ROS2 con Webots. Este paquete también incluirá la implementación práctica de los conceptos en ROS2, como temas, servicios, nodos, archivos de lanzamiento, publicador, suscriptor, diferentes herramientas de depuración y el uso de VS Code. Esto también incluirá proyectos temáticos avanzados como SLAM y OpenCV. Esto les dará a los usuarios un paradigma de un trabajo de extremo a extremo con ROS2 y Webots.