Arquitetura ROS (três) sistema de arquivos

Arquitetura ROS (três) sistema de arquivos

Visão geral

Como todos sabemos, o ROS é semelhante a um sistema operacional, todos os arquivos são organizados de acordo com certas regras e os arquivos com funções diferentes são colocados em pastas diferentes. Pacote : O pacote é a unidade básica do software ROS, incluindo nós ROS, bibliotecas, arquivos de configuração, etc. Manifesto do pacote : cada pacote de funções contém um manifesto do pacote de funções denominado package.xml, que é usado para registrar as informações básicas do pacote de funções, incluindo informações do autor, informações de licença, opções dependentes, sinalizadores de compilação, etc. Meta Package : Na nova versão do ROS, o conceito do pacote de funções original (Stack) é atualizado para um "meta pacote". A principal função é organizar vários pacotes de funções para o mesmo propósito. Por exemplo, um pacote de metafunções de navegação ROS conterá vários pacotes de funções, como modelagem, posicionamento e navegação. Lista de pacotes de metafunções : a lista de pacotes de metafunções pode conter pacotes de funções que precisam ser confiáveis ​​em tempo de execução ou declarar algumas tags de referência. Tipo de mensagem : Mensagem é a informação de comunicação publicada / assinada entre nós ROS. Você pode usar o tipo de mensagem fornecido pelo ROS ou pode usar o arquivo .msg para personalizar o tipo de mensagem necessário na pasta msg do pacote de funções. Tipo de serviço : O tipo de serviço define o tipo de dados de solicitação e resposta no modelo de comunicação cliente / servidor ROS. O tipo de serviço fornecido pelo sistema ROS pode ser usado, ou o arquivo .srv pode ser usado para definir na pasta srv do pacote de funções. Código : a pasta usada para colocar o código-fonte do nó do pacote de funções.






1. Pacote de recursos

As principais funções dessas pastas são as seguintes.
1) config: Coloque o arquivo de configuração no pacote de funções, criado pelo usuário, e o nome do arquivo pode ser diferente.
2) incluir: Coloque os arquivos de cabeçalho que precisam ser usados ​​no pacote de funções.
3) scripts: coloque scripts Python que podem ser executados diretamente.
4) src: Coloque o código C ++ que precisa ser compilado.
5) Lançamento: Coloque todos os arquivos de inicialização no pacote de funções.
6) msg: Coloque o tipo de mensagem personalizada do pacote de funções.
7) srv: Coloque o tipo de serviço personalizado do pacote de funções.
8) ação: coloque a instrução de ação personalizada do pacote de funções.
9) CMakeLists.txt: As regras para o compilador compilar pacotes de funções.
10) package.xml: lista de pacotes de funções.
Você pode ver claramente o nome, o número da versão, a descrição das informações, as informações do autor e as informações da licença do feature pack na lista do feature pack. Além disso, a tag <build_depend> </build_depend> define outros pacotes de funções dos quais a compilação de código no pacote de funções depende, e a tag <run_depend> </run_depend> define outras funções das quais o programa executável no pacote de funções depende quando é executado. Pacote de recursos. No processo de desenvolvimento do pacote de funções ROS, essas informações precisam ser modificadas de acordo com o conteúdo específico do pacote de funções.
O ROS projetou uma série de comandos para a criação, compilação, modificação e operação de pacotes de funções.

2. Pacote de metafunção

Um pacote de metafunções é um pacote de funções especiais que contém apenas um arquivo de manifesto de pacote de metafunções package.xml. Sua principal função é integrar vários pacotes de funções em um pacote de funções logicamente independente, semelhante ao conceito de uma coleção de pacotes de funções.
Embora o arquivo package.xml do manifesto do pacote de metafunções seja semelhante ao arquivo package.xml do pacote de funções, ele precisa incluir uma tag de referência da seguinte maneira:

<export>
    <metapackage/>
</export>

Além disso, a lista de pacotes de metafunções não requer a tag <build_depend> para declarar outros pacotes de funções dos quais o processo de compilação depende, mas só precisa usar a tag <run_depend> para declarar outros pacotes de funções dos quais o pacote de funções depende tempo de execução.
Tomando o pacote de metafunções de navegação como exemplo, você pode ver o conteúdo do arquivo package.xml no pacote de metafunções por meio do comando a seguir.

$ roscd navigation
$ gedit package.xml

Acho que você gosta

Origin blog.csdn.net/weixin_45661757/article/details/110520968
Recomendado
Clasificación