Esta página contém os detalhes de um projeto de redação técnica aceito para a Google Season of Docs.
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
RoboComp é uma das estruturas de robótica bem conhecidas para pesquisa e aplicações práticas. O repositório robocomp inclui uma ampla gama de componentes (mantidos em um repositório menor chamado robocomp-robolab) para diferentes aplicativos robóticos, como controle de motor, localização e mapeamento, navegação, reconhecimento etc. No entanto, o repositório de componentes não tem documentação detalhada para compilação ou uso de cada componente, o que limita a usabilidade para novos desenvolvedores. Esta proposta tem como objetivo resolver esse problema documentando componentes cruciais do RoboComp, além de compilar um documento de exemplo de uso para combinar diferentes componentes e resolver uma tarefa específica de robótica. Os detalhes do processo de documentação serão discutidos na próxima seção e depois seguidos pela seção de marcos para planejar o período de conclusão do projeto. Por fim, incluímos algumas observações sobre o processo de documentação.
Descrição
Como mencionado, este projeto tem dois objetivos principais:
- Detalhes 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, por exemplo, a localização.
No momento, a maioria dos componentes básicos no repositório robocomp-robolab não tem instruções detalhadas sobre como compilar e como usar em diferentes configurações de parâmetros. Isso cria um grande obstáculo para novos desenvolvedores que querem usar componentes no projeto ou contribuir com o framework. Isso acontece porque muitos componentes são um wrapper de drivers ou bibliotecas externas que têm muitas dependências, o que dificulta a compilação e a instalação. Além disso, muitos componentes envolvem drivers de dispositivo complexos (por exemplo, hokuyoComp genérico) para fornecer a interface de mensagem no RoboComp, que requer conhecimento específico do dispositivo para ajustar os parâmetros.
Portanto, a necessidade de documentação detalhada, que inclui 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 de componente hokuyoComp de trabalho pode ser encontrado no link:
https://github.com/anindex/robocomp-robolab/tree/master/components/hokuyoComp
Para escrever uma documentação de componente concreta e detalhada usando a abordagem de cima para baixo, é preciso pelo menos experimentar o conteúdo escrito nesse documento, porque o objetivo final da documentação é transferir o conhecimento de trabalho para os desenvolvedores legados. A estrutura proposta para cada documento de componente é apresentada da seguinte forma:
- Descrição
- Compilação e instalação
- Parâmetros de configuração
- Como iniciar o componente (usos)
- Problemas conhecidos
No exemplo, primeiro são coletadas informações sobre a especificação do sensor Hokuyo, depois o código do componente é lido para entender a imagem das funcionalidades do componente e escrever descrições. Em seguida, o entendimento do ambiente RoboComp e o conhecimento de parâmetros específicos do dispositivo, bem como dependências de biblioteca, ajudariam a documentar o processo de compilação, instalação e configuração do componente. Por exemplo, a compilação de hokuyoComp precisa do pacote deb antigo de liburg0-dev do Ubuntu 14.04, mas o pacote deb é removido do Ubuntu PPA na versão mais recente. Portanto, precisamos fazer a solução alternativa para a compilação, conforme indicado no documento. Nesse processo, também podemos registrar problemas conhecidos para acelerar a depuração de novos desenvolvedores. Por fim, os usos de componentes para diferentes cenários de uso são documentados para facilitar a integração do componente ao cenário do RoboComp para diferentes tarefas de robótica.
Metas
Esta seção planeja um período inicial para concluir as metas mencionadas do projeto. Vamos selecionar os documentos dos componentes a serem escritos com base em categorias, como componentes de câmera e laser. A estimativa atual do tempo para concluir o documento de componentes é baseada no tempo de conclusão do exemplo de documentos hokuyoComp. O cronograma é o seguinte:
1º de agosto a 1º de setembro: fortalecimento da comunidade:
- Criar uma reunião semanal para estabelecer os escopos do projeto e as expectativas do roteirista e dos mentores.
- Entender a estrutura do RoboComp.
2 de setembro a 2 de novembro: criação de documentos para cada componente no repositório robocomp-robolab com refinamentos iterativos entre mentores e redatores em reuniões (espera-se que a maioria dos documentos sem documentação seja concluída)
2 a 26 de novembro: criação de um documento geral como exemplo para usar componentes diferentes para resolver uma tarefa de robótica.
De 27 a 29 de novembro: relatórios de fim de projeto.
Após o GSoD 2019: quero continuar interagindo com a RoboComp para aprimorar e manter meu trabalho.
Observações finais
É essencial escrever um exemplo geral de como integrar diferentes componentes no ambiente RoboComp para que os usuários entendam o quadro geral das funcionalidades do RoboComp. Este documento de exemplo será discutido com os mentores para decidir qual tarefa de robótica é adequada, dependendo da implementação atual do RoboComp.