Proyecto Webots

Esta página contiene los detalles de un proyecto de redacción técnica aceptado para la temporada de Documentos de Google.

Resumen del proyecto

Organización de código abierto:
Webots
Escritor técnico:
Canal de ilusiones suaves
Nombre del proyecto:
Serie de videos instructivos 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 proporcionará a los usuarios soluciones claras paso a paso para realizar 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 fundamentales en el campo de la robótica.

Detalles de la serie de videos:

  1. Instalación y configuración de un repositorio de ROS 2 en Visual Studio Code Esto incluye la instalación de ROS2 con comandos inteligentes y los conceptos básicos de su funcionamiento. En segundo lugar, también se incluirá la configuración del lugar 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 atraer a los usuarios a fin de que 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 los servicios de ROS2 para interactuar con Webots Enseña los conceptos básicos del servicio de ROS en el que se explica la diferencia entre los servicios en ROS y ROS2. En segundo lugar, se muestran instructivos graduales sobre cómo llamar a servicios y habilitar temas de sensores para lecturas y accionadores de movimiento.

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

  5. Obtén comentarios de un robot con el 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 para evitar obstáculos con mensajes interactivos publicados.

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

  7. Configura Rviz (muestra diferentes resultados de sensores). En este video, agregaremos otros sensores 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.), 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). Este video incluirá una funcionalidad deliberada incorrecta de algunos temas para ayudar a comprender la técnica de depuración. Seguiremos un proceso de visualización del gráfico de RQT y saber qué temas son responsables del problema. Uso de rostopic echo para verificar si el tema se está publicando y, al final, verifica la información de rostopic para obtener nuestro problema. Resuelve el problema y ten una funcionalidad normal.

  9. Depuración de video(rqt_console, rqt_gui) En este video, se usarán mensajes de Ros(información, depuración, error, etc.) en el nodo y se explorará el uso de rqt_console. También extenderemos el video para usar rqt_gui a fin de publicar mensajes ficticios y 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 ANSM 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 ANSM. Luego, usaremos los conceptos de infraestructura que se enseñaron anteriormente para comprender el punto crucial 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 LAM en un entorno desconocido (la caja de herramientas de SLIM 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 comprender de manera adecuada los conceptos del 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 AR, paquete Ar_track_alvar) [Parte 1] El video comenzará con qué son las etiquetas de RA y su importancia para la localización mediante visión artificial. Luego, ampliaremos el funcionamiento del paquete de Alvar para la pista de RA. Esto ayudará a proporcionar una perspectiva general del proyecto. Por último, se creará un 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 de arriba 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 movamos el robot, veremos que se ubican diferentes etiquetas y cambia su posición en Rviz y en los mensajes de rostopic.

Conclusion:

Este proyecto de GSOD es un paquete autosuficiente que permite comprender los aspectos básicos 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 involucrará proyectos temáticos avanzados como ANSM y OpenCV. Esto les brindará a los usuarios un paradigma de un trabajo de extremo a extremo con ROS2 y Webots.