Proyecto Ignition Robotics

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:
Ignition Robotics
Escritor técnico:
Un tailandés le
Nombre del proyecto:
Instructivos de Ignition Physics y documentación de la API
Duración del proyecto:
Duración estándar (3 meses)

Project description

Motivación

La biblioteca de Ignition Physics permite un uso flexible de los motores físicos que se transfieren al backend de la simulación Ignition Gazebo. Muchos motores físicos externos se pueden adaptar a la biblioteca como complementos que constan de diferentes conjuntos de funciones según sus capacidades y contextos de aplicación, para potenciar la simulación de la glorieta. Sin embargo, la etapa actual de la biblioteca no proporciona lo siguiente:

  • instructivos integrales sobre la creación de complementos de física personalizados que usan motores físicos personalizados para potenciar la simulación.
  • documentación de la API coherente

El objetivo de esta propuesta es solucionar estos problemas para mejorar el mantenimiento del proyecto y guiar a los nuevos colaboradores y usuarios de una manera más recta. Los detalles del proceso de documentación se analizarán en la siguiente sección y, luego, se seguirá con la sección de hitos para planificar el marco de tiempo necesario para completar el proyecto. Por último, se mencionan algunas notas sobre la documentación actual.

Descripción

Este proyecto tiene dos objetivos principales:

  • Crear instructivos detallados sobre la creación de complementos de física personalizados que interactúen con la API de la biblioteca actual
  • Se mejoró la documentación actual de la API de la biblioteca con fines de mantenimiento y colaboración.

Actualmente, DART es el único motor de física de compatibilidad de esta biblioteca. Por lo tanto, los tutoriales girarán en torno a DART. Consideraremos estos instructivos iniciales:

  1. Introducción: Se describe la arquitectura de alto nivel de la biblioteca de Ignition Physics, los motores físicos compatibles y los objetivos.
  2. Instalación: Guía al usuario para que instale opcionalmente los motores físicos necesarios según los contextos de la aplicación. En este instructivo, también se muestran configuraciones de ejemplo para cada complemento de motor de física para adaptar una simulación específica.
  3. Uso del complemento de Dart: Se describe un ejemplo de uso del motor de física de DART en la simulación de Gazebo. El instructivo consiste en una secuencia de ejecuciones y configuraciones para iniciar esta biblioteca como el backend para la simulación de Gazebo en un entorno de ejemplo específico.
  4. Crear complemento personalizado: Guía al nuevo usuario o desarrollador para que cree un complemento personalizado basado en un motor de física personalizado a través de algunos tipos de archivos de configuración (posiblemente plantillas de clase) y desarrolla una interfaz entre la API de Physical Engine y esta API de la biblioteca. Se pueden observar algunas verificaciones de estado al final del instructivo.
  5. Cómo usar varios complementos en una simulación (se necesita análisis): Se describe cómo usar varios complementos de forma simultánea durante el tiempo de ejecución para una simulación de ejemplo.

En el período de vinculación con la comunidad, se analizará la planificación adicional de las estructuras, las descripciones y el contenido de los instructivos. De hecho, el autor de estos instructivos debe garantizar la validez de los pasos del instructivo antes de combinarlos con el repositorio.

Para la documentación de la API, es posible adaptar esta biblioteca al estilo de documentación de C++ de Google. Por ejemplo, todas las clases deben tener una descripción a nivel de la clase. Además, todas las funciones públicas deben documentarse con una descripción, todos sus argumentos y posibles valores de retorno y excepciones. Es conveniente que las clases más importantes (p. ej., dartsim::RetrieveWorld, Feature, etc.) se documenten primero como un enfoque descendente más sencillo. En el período de vinculación con la comunidad, analizaremos el estilo de documentación más a fondo y la identificación importante de la clase.

Milestones

En esta sección, se planifica un plazo inicial para completar los objetivos mencionados del proyecto. La planificación del tiempo funciona de la siguiente manera:

  • Del 17 de ago al 13 de sep: Vinculación con la comunidad:

    1. Organiza reuniones para establecer el alcance del proyecto y la planificación de tutoriales, así como las expectativas del redactor y los mentores.
    2. Comprende el panorama general del código fuente de Ignition Physics.
  • Del 14 de septiembre al 31 de oct: Redacta los instructivos mencionados con ajustes iterativos entre los mentores y el redactor a través de reuniones.

  • 1 a 30 de noviembre: Escribe documentación de API para las clases más importantes y compila la documentación con Doxygen.

  • Del 1 al 5 de diciembre: Escribe el informe del proyecto.

  • Después de GSoD 2020: Me gustaría mantenerme en contacto con Ignition Robotics para seguir mejorando y mantener mis trabajos.

Notas finales

Es esencial revisar el archivo README.md actual de la página principal de Ignition Physics, ya que la instalación de objetos binarios con apt-get no funciona en Ubuntu 18.04. La sección de instalación de código fuente también necesita revisión debido al formato incorrecto.