Проект РобоКомп

На этой странице содержится подробная информация о проекте технического написания, принятом для участия в Google Season of Docs.

Краткое описание проекта

Организация с открытым исходным кодом:
РобоКомп
Технический писатель:
Ле Тай Ан
Название проекта:
Основные компоненты РобоКомпа
Длина проекта:
Стандартная продолжительность (3 месяца)

Описание проекта

Мотивация

RoboComp — одна из известных платформ робототехники для исследований и практического применения. Репозиторий robocomp включает в себя широкий спектр компонентов (хранящихся в меньшем репозитории под названием robocomp-robolab) для различных робототехнических приложений, таких как управление двигателем, локализация и картографирование, навигация, распознавание и т. д. Однако в репозитории компонентов отсутствует подробная документация для компиляции. или использование каждого компонента, что ограничивает удобство использования для новых разработчиков. Настоящее предложение направлено на решение этой проблемы путем документирования важнейших компонентов RoboComp, а также составления примера документа об использовании для объединения различных компонентов для решения конкретной задачи робототехники. Подробности процесса документирования будут обсуждаться в следующем разделе, а затем последует раздел об основных этапах планирования сроков завершения проекта. Наконец, упоминаются некоторые замечания о процессе документирования.

Описание

Как уже упоминалось, этот проект преследует две основные цели:

  • Подробное описание документа, компиляция и установка, настройка, использование и известные проблемы, касающиеся каждого компонента RoboComp.
  • Напишите пример руководства, в котором различные компоненты среды RoboComp используются для решения конкретной задачи робототехники, то есть локализации.

Для большинства базовых компонентов в репозитории robocomp-robolab в настоящее время отсутствуют подробные инструкции по компиляции и использованию в различных конфигурациях параметров. Это создает огромное препятствие для новых разработчиков, которые хотят использовать компоненты в своем проекте или внести свой вклад в структуру. Причина в том, что многие компоненты представляют собой оболочки внешних драйверов или библиотек, имеющих множество зависимостей, что усложняет задачу компиляции и установки. Более того, многие компоненты оборачивают сложный драйвер устройства (например, универсальный hokuyoComp) для обеспечения интерфейса сообщений в RoboComp, что требует специальных знаний об устройстве для настройки параметров.

Следовательно, необходимость в подробной документации, которая включает в себя описания устройств, разрешение зависимостей и использование, важна для вклада в открытый исходный код. Пример моей работы с документом компонента hokuyoComp можно найти по ссылке:

https://github.com/anindex/robocomp-robolab/tree/master/comComponents/hokuyoComp

Чтобы написать конкретную и подробную документацию по компонентам, используя нисходящий подход, необходимо, по крайней мере, иметь возможность ознакомиться с содержимым, написанным в этом документе, поскольку конечная цель документации — передача рабочих знаний унаследованным разработчикам. Предлагаемая структура для каждого компонента документа представлена ​​следующим образом:

  • Описание
  • Компиляция и установка
  • Параметры конфигурации
  • Запуск компонента (использования)
  • Известные проблемы

В этом примере сначала собирается информация о спецификации датчика Hokuyo, считывается код компонента, чтобы понять картину функциональных возможностей компонента, а затем написать описания компонентов. Далее, понимание среды RoboComp и знание конкретных параметров устройства, а также зависимостей библиотеки помогут документировать процесс компиляции, установки и настройки компонента. Например, для компиляции hokuyoComp требуется старый пакет deb liburg0-dev из Ubuntu 14.04, но пакет deb удален из Ubuntu PPA в более поздней версии, поэтому мы должны выполнить обходной путь для компиляции, как указано в документе. В этом процессе мы также можем записывать известные проблемы, чтобы ускорить отладку для новых разработчиков. Наконец, документируется использование компонентов для различных сценариев использования, что позволяет легко интегрировать компонент в среду RoboComp для различных задач робототехники.

Вехи

В этом разделе планируются первоначальные сроки достижения упомянутых целей проекта. Мы выберем документацию по компонентам для написания по категориям (например, компоненты камеры, компоненты лазера). Текущая оценка времени завершения документации компонентов основана на времени завершения примера документации hokuyoComp. Расписание следующее:

  • 1 августа – 1 сентября: Сплочение сообщества:

    1. Организация еженедельных встреч для определения масштабов проекта, а также ожиданий как от автора, так и от наставников.
    2. Получение глубокого понимания структуры RoboComp.
  • 2 сентября – 2 ноября: Написание документации для каждого компонента в репозитории robocomp-robolab с итеративными уточнениями между наставниками и автором посредством встреч (ожидается, что будет завершена большая часть недокументированной документации).

  • 2–26 ноября: Написание общей документации в качестве примера использования различных компонентов для решения задачи робототехники.

  • 27–29 ноября: Завершение отчетов по проекту.

  • После GSoD 2019: Я хотел бы оставаться на связи с RoboComp для дальнейшего улучшения и поддержки своих работ.

Заключительные замечания

Очень важно написать общий пример того, как интегрировать различные компоненты в среду RoboComp, чтобы пользователи могли понять общую картину функциональных возможностей RoboComp. Этот пример документа будет далее обсуждаться с наставниками, чтобы решить, какая задача робототехники подходит в зависимости от текущей реализации RoboComp.