minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Gerenciamento de operação ROS
ROS é uma estrutura distribuída de múltiplos processos (nó), uma implementação completa do sistema ROS:
Pode incluir vários hosts;
Existem vários espaços de trabalho em cada host;
Cada área de trabalho contém vários pacotes de funções;
Cada pacote de funções contém vários nós (Nó), e diferentes nós têm seus próprios nomes de nós;
Cada nó também pode ser definido com um ou mais tópicos...
Num sistema ROS multinível, podem surgir alguns problemas na sua implementação e manutenção, tais como,
1. Como associar diferentes pacotes de funções ---- (pacote meta-função)
2. Como iniciar vários nós ROS ---- (arquivo de inicialização)
3. Como lidar com nomes duplicados de pacotes de funções, nós, tópicos e parâmetros ---- (Resolvendo o problema de nomes duplicados)
4. Como os nós em diferentes hosts se comunicam ---- (comunicação distribuída)
O conteúdo principal deste capítulo apresenta as soluções para os problemas acima em ROS (veja o índice deste capítulo). Os objetivos de aprendizagem esperados também correspondem aos problemas acima:
Cenário: A conclusão de uma função sistemática no ROS pode envolver vários pacotes funcionais, como a implementação de um módulo de navegação de robô, que possui diferentes pacotes funcionais de subnível, como mapa, posicionamento, planejamento de caminho, etc. Então, quando o chamador instala o módulo, ele precisa instalar cada pacote de funções um por um?
Obviamente, instalar pacotes de funções um por um é ineficiente. No ROS, é fornecida uma maneira de empacotar diferentes pacotes de funções em um pacote de funções. Ao instalar um determinado módulo de função, basta chamar o pacote de funções empacotado diretamente. .
MetaPackage é um conceito de sistema de gerenciamento de arquivos em Linux. É um pacote virtual em ROS. Não possui conteúdo substantivo, mas depende de outros pacotes de software. Desta forma, podemos pensar nele como um índice de diretório de um livro. -packages estão na coleção de pacotes e onde baixá-los.
Por exemplo:
Para facilitar a instalação do usuário, precisamos apenas deste pacote para organizar e instalar outros pacotes de software relacionados juntos.
passo 1: Primeiro: crie um novo pacote de funções
passo 2: Então: modifique package.xml, o conteúdo é o seguinte:
<exec_depend>Pacotes de recursos integrados</exec_depend>
…
<export>
<metapackage />
</export>
passo 3: Finalmente: modifique CMakeLists.txt, o conteúdo é o seguinte:
cmake_minimum_required (VERSÃO 3.0.2)
projeto(demonstração)
find_package(catkin OBRIGATÓRIO)
catkin_metapacote()
Apenas mantenha as quatro linhas acima e exclua o resto.
Consulte também:
http://wiki.ros.org/catkin/package.xml#Metapacotes
Não estamos mais familiarizados com o uso de arquivos de inicialização. No primeiro capítulo, apresentamos:
Um programa pode precisar iniciar vários nós, como o pequeno caso de tartaruga integrado do ROS. Se quiser controlar o movimento da tartaruga, você precisa iniciar várias janelas, iniciando o roscore, o nó de interface da tartaruga e o nó de controle do teclado. respectivamente. Se rosrun for chamado sempre para iniciar um por um, é obviamente ineficiente.
A estratégia de otimização adotada é usar o comando roslaunch para coletar o arquivo de inicialização para iniciar o nó de gerenciamento e, nos tutoriais subsequentes, o arquivo de inicialização também é usado diversas vezes.
O arquivo de inicialização é um arquivo em formato XML que pode iniciar vários nós locais e remotos e definir parâmetros no servidor de parâmetros.。
Simplifique a configuração e inicialização de nós e melhore a eficiência de inicialização de programas ROS.
Tome o Turtlesim como exemplo para demonstrar
etapa 1. Crie um novo arquivo de inicialização.
Adicione o diretório de inicialização ao pacote de funções, crie um novo arquivo xxxx.launch no diretório e edite o arquivo de inicialização
<launch>
<node pkg=“turtlesim” type=“turtlesim_node” name=“myTurtle” output=“screen” />
<node pkg=“turtlesim” type=“turtle_teleop_key” name=“myTurtleContro” output=“screen” />
</launch>
passo 2. Arquivo de inicialização
nome do pacote roslaunch xxx.launch
Nota: Quando o comando roslaunch executa o arquivo de inicialização, ele primeiro determina se o roscore foi iniciado. Se for iniciado, não será iniciado novamente, o roscore será chamado automaticamente.
Pode referir-se a:
http://wiki.ros.org/roslaunch/XML
https://www.bilibili.com/video/BV1Ci4y1L7ZZ?p=150&spm_id_from=pageDriver&vd_source=15dd2e64f0499027ca66125b65dd2de9