Projeto RoboComp

Esta página contém os detalhes de um projeto de escrita técnica aceito para a temporada de documentos do Google.

Resumo do projeto

Organização de código aberto:
RoboComp
Redator técnico:
Le Thai An
Nome do projeto:
Componentes básicos do RoboComp
Duração do projeto:
Duração padrão (3 meses)

Project description

Motivação

O RoboComp é uma das estruturas de robótica conhecidas para aplicações práticas e pesquisa. O repositório robocomp inclui uma ampla variedade de componentes (mantidos em repositórios menores chamados robocomp-robolab) para diferentes aplicações robóticas, como controle motor, localização e mapeamento, navegação, reconhecimento etc. No entanto, o repositório de componentes não tem documentações detalhadas para compilação ou uso de cada componente, por isso a usabilidade limitada para novos desenvolvedores. Esta proposta tem como objetivo resolver esse problema documentando componentes cruciais do RoboComp, além de compilar um exemplo de documento de uso para combinar diferentes componentes e resolver uma tarefa robótica específica. Os detalhes do processo de documentação serão discutidos na próxima seção e seguido pela seção de marcos para planejar o prazo para a conclusão do projeto. Por fim, citamos algumas observações sobre o processo de documentação.

Descrição

Como mencionado, este projeto tem duas metas principais:

  • Descrição detalhada do documento, compilação e instalação, configuração, usos e problemas conhecidos relacionados a cada componente no RoboComp
  • Escreva um guia de exemplo que utilize diferentes componentes no ambiente RoboComp para resolver uma tarefa específica de robótica, ou seja, localização.

Atualmente, a maioria dos componentes básicos no repositório robocomp-robolab não tem instruções detalhadas sobre como compilar e usar em diferentes configurações de parâmetros. Isso cria um enorme obstáculo para novos desenvolvedores que desejam usar componentes em seus projetos ou contribuir com a estrutura. Isso porque muitos componentes são wrappers de drivers ou bibliotecas externas que possuem muitas dependências, o que dificulta a compilação e a instalação de tarefas. Além disso, muitos componentes unem o driver do dispositivo complexo (ou seja, hokuyoComp genérico) para fornecer uma interface de mensagem no RoboComp, que exige conhecimento específico do dispositivo para ajustar os parâmetros.

Por isso, a necessidade de documentação detalhada, que inclua descrições de dispositivos, resolução de dependências e usos, é essencial para a contribuição de código aberto. Um exemplo do meu documento do componente de trabalho hokuyoComp pode ser encontrado no link:

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

Para escrever uma documentação concreta e detalhada de componentes usando a abordagem de cima para baixo, é preciso pelo menos ter a experiência do conteúdo escrito nesse documento, porque o objetivo final da documentação é transferir conhecimento de trabalho para desenvolvedores herdados. A estrutura proposta para cada documento componente é apresentada da seguinte maneira:

  • Descrição
  • Compilação e instalação
  • Parâmetros de configuração
  • Como iniciar o componente (usos)
  • Problemas conhecidos

No exemplo, primeiro reúne informações sobre a especificação do sensor Hokuyo e lê o código do componente para entender a imagem das funcionalidades e escrever descrições dos componentes. Depois, entender o ambiente RoboComp e o conhecimento dos parâmetros específicos do dispositivo, assim como as dependências da biblioteca, ajudaria a documentar o processo de compilação, instalação e configuração do componente. Por exemplo, a compilação de hokuyoComp precisa do antigo pacote deb liburg0-dev do Ubuntu 14.04, mas o pacote deb é removido do Ubuntu PPA em uma versão posterior. Por isso, precisamos resolver a questão da compilação conforme indicado no documento. Nesse processo, também podemos registrar problemas conhecidos para acelerar a depuração para novos desenvolvedores. Por fim, o uso de componentes para diferentes cenários de uso é documentado para facilitar a integração do componente ao cenário do RoboComp para diferentes tarefas de robótica.

Marcos

Esta seção planeja um prazo inicial para concluir as metas mencionadas do projeto. Selecionaremos documentos de componentes para escrever com base em categorias (por exemplo, componentes de câmera, componentes a laser). A estimativa atual de tempo para concluir o documento de componentes é baseada no tempo de conclusão de documentos de exemplo hokuyoComp. A tabela de horários é a seguinte:

  • 1o de agosto a 1o de setembro: vínculo com a comunidade:

    1. Marcar reuniões semanais para definir os escopos do projeto, bem como as expectativas dos redatores e mentores.
    2. Conhecimento profundo do framework RoboComp.
  • 2 de setembro a 2 de novembro: redação de documentos para cada componente no repositório robocomp-robolab com ajustes iterativos entre mentores e redatores em reuniões (com previsão de preencher a maioria dos documentos não documentados)

  • 2 a 26 de novembro: redação de um documento geral como um exemplo de utilização de diferentes componentes para resolver uma tarefa de robótica.

  • 27 a 29 de novembro: fim dos relatórios do projeto.

  • Após a GSoD 2019: gostaria de manter contato com a RoboComp para melhorar e manter meus trabalhos ainda mais.

Observações finais

É essencial escrever um exemplo geral de como integrar diferentes componentes no ambiente do RoboComp para que os usuários entendam a visão geral das funcionalidades da RoboComp. Neste documento de exemplo, vamos conversar mais com os mentores para decidir qual tarefa de robótica é adequada dependendo da implementação atual do RoboComp.