Proyecto Webots

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

Resumen del proyecto

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

Project description

Aprendizajes:

Esta serie de instructivos en video permitirá a los usuarios nuevos tener el mejor comienzo posible con Webots y les brindará a los usuarios soluciones claras paso a paso para lograr simulaciones específicas.

Objetivo:

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

Detalles de la serie de videos:

  1. Instalación de ROS 2 y configuración de un repositorio en Visual Studio Code Esto incluye la instalación de ROS2 por comando y los conceptos básicos de su funcionamiento. En segundo lugar, también se incluirá la configuración del entorno 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 usarán algunos ejemplos de ROS2 de Webots para que los usuarios comprendan qué maravillas se pueden hacer si usamos ROS2 con Webots para la simulación. Esto también incluirá teorías básicas de comunicación entre ROS2 y Webots.

  3. Usar servicios de ROS2 para interactuar con Webots Se enseñan los conceptos básicos del servicio de ROS y se explica la diferencia entre los servicios en ROS y ROS2. En segundo lugar, se muestran instructivos paso a paso para llamar a servicios y habilitar el tema de los sensores para lecturas y accionadores para movimiento.

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

  5. Recibe comentarios de un robot con un suscriptor de ROS2. En este video, nos suscribiremos a las lecturas de los sensores de distancia y detendremos el robot si está a punto de colisionar. Básicamente, este será un nodo de evitación de obstáculos con mensajes interactivos que se publicarán.

  6. robots Master(Publisher) Slave(Subscriber) con ROS2. En este video, controlaremos un robot con un teclado y haremos que otro robot huya del robot manual. Similar a una situación de ladrones y policías :) [Esta será una continuación de los videos 3, 4 y 5]. Esto permitirá que los usuarios prueben la comunicación y encontrarán fallas en la simulación si hay un problema en ROS.

  7. Configuración de Rviz (muestra diferentes salidas de sensores). En este video, agregaremos algunos otros sensores y publicaremos sus datos en Rviz. Al final de este video, el espectador podrá configurar Rviz (es decir, agregar sensores como Lidar, la cámara, etc.para visualización), guardar la configuración y generar la configuración guardada la próxima vez.

  8. Video de depuración (eco de Rostopic, información de Rostopic, RQT_graph). En este video, se incluirá una funcionalidad incorrecta deliberada de algunos temas para ayudar a comprender la técnica de depuración. Seguiremos un proceso para ver el gráfico de RQT y saber qué temas son responsables del problema. Usar rostopic echo para verificar si el tema se publica y, al final, verificar la información de rostopic para obtener nuestro problema Solucionar el problema y tener una funcionalidad normal

  9. Depuración de video(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. Este video también se extenderá para usar rqt_gui y publicar mensajes simulados para obtener la funcionalidad requerida. Este puede ser un enfoque alternativo para corregir algunos errores.

  10. Videos de temas avanzados: Sobre la integración de la biblioteca de SLAM en un entorno desconocido (caja de herramientas de SLAM o LaMa) [Parte 1] Este video comenzará con la teoría básica de los problemas de SLAM. Luego, usaremos la infraestructura de los conceptos enseñados anteriormente para comprender el quid del proyecto. Por último, crearemos 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 SLAM en un entorno desconocido (caja de herramientas de SLAM o LaMa) [Parte 2] Como continuación del video 10, en este video, enseñaré cómo crear un archivo de lanzamiento para iniciar todos los nodos juntos y examinar rqt_graph para comprender adecuadamente los conceptos del framework ROS. Al finalizar, se guardará el mapa generado por el paquete utilizando un servidor de mapas.

  12. Videos de temas avanzados: Sobre la integración de OpenCV (detección de etiquetas de RA, paquete Ar_track_alvar) [Parte 1] El video comenzará con lo que son las etiquetas de RA y su importancia en la localización con visión por computadora. Luego, analizaremos cómo funciona el paquete Alvar de la pista de RA. Esto ayudará a proporcionar una perspectiva general del proyecto. Por último, se realizará el servicio para habilitar una transmisión de fotogramas de video de Webots a un tema de ROS.

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

Conclusión:

Este proyecto de GSOD es un paquete independiente que permite comprender de forma básica 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 de temas avanzados, como SLAM y OpenCV. Esto les dará a los usuarios un paradigma de trabajo de extremo a extremo con ROS2 y Webots.