O que é ROS?
ROS (Robot Operating System) é uma estrutura projetada para a construção de sistemas robóticos. Não é um sistema operacional real no sentido tradicional, mas sim um meta-sistema operacional executado em cima de um sistema operacional host (como o Linux).
Ele fornece uma camada de middleware que abstrai o hardware e oferece um conjunto de serviços, ferramentas e bibliotecas para facilitar o desenvolvimento do software do robô.
Quais são os principais componentes do ROS?
A estrutura do ROS é composta por vários componentes, incluindo:
- Núcleo ROS é o componente central que fornece serviços essenciais para a comunicação entre os nós ROS em um sistema distribuído, como passagem de mensagens, gerenciamento de parâmetros e nomenclatura.
- Nós ROS são programas individuais que se comunicam entre si através do ROS Core usando um sistema de mensagens de publicação-assinatura.
- Tópicos ROS habilitar a comunicação entre os nós ROS. Eles são chamados de ônibus através dos quais os nós trocam mensagens. Um nó pode publicar mensagens em um tópico e qualquer nó interessado pode se inscrever nesse tópico para receber as mensagens. Os tópicos seguem um padrão de mensagens de publicação-assinatura, permitindo comunicação assíncrona.
- Mensagens ROS são as estruturas de dados usadas para comunicação entre os nós do ROS e definem as informações trocadas em um tópico.
- Serviços ROS fornecem uma maneira para os nós enviarem solicitações e receberem respostas. Eles usam um padrão de solicitação-resposta, garantindo uma troca direta de mensagens. Um nó pode oferecer um serviço, especificando um tipo de serviço que define os formatos de mensagem de solicitação e resposta. Outros nós podem chamar o serviço para fazer solicitações e receber respostas.
- Arquivos de inicialização do ROS simplificar o processo de iniciar vários nós e configurar seus parâmetros. Um arquivo de inicialização é um arquivo XML que descreve os nós a serem executados, seus parâmetros e as conexões entre eles. Ao usar arquivos de inicialização, você pode iniciar vários nós com um único comando, facilitando o gerenciamento de sistemas robóticos complexos.
No contexto do ROS, o Receptores RTK pode ser tratado como um nó ROS e pode se comunicar com outros nós em um sistema ROS usando tópicos, mensagens e serviços ROS.
Qual plataforma para o ROS Core escolher?
O ROS Core pode ser executado em um PC, um laptop, um computador ou uma variedade de plataformas embarcadas: NVIDIA Jetson, Raspberry Pi, BeagleBone, Intel NUC, Odroid etc.
A escolha entre eles para rodar o ROS depende de diversos fatores, que estão listados a seguir. Aqui estão algumas recomendações para ajudá-lo a escolher entre eles para executar o ROS Core:
- Requisitos computacionais: se seu aplicativo de robótica requer computação de alto desempenho, NVIDIA Jetson ou um PC pode ser a melhor escolha. Ambos oferecem CPUs e GPUs de alto desempenho, ideais para tarefas computacionais intensivas, como visão computacional e aprendizado de máquina.
- Consumo de energia: se o seu aplicativo de robótica for alimentado por bateria ou exigir baixo consumo de energia, Raspberry Pi ou NVIDIA Jetson podem ser a melhor escolha. Ambos oferecem opções de baixo consumo de energia, e o Raspberry Pi é conhecido por sua eficiência energética.
- Custo: se o custo é um fator importante, o Raspberry Pi é a opção mais econômica e é amplamente usado para prototipagem e projetos de hobby. NVIDIA Jetson e PC são opções mais caras, mas oferecem recursos de computação mais poderosos.
- Fator de forma: NVIDIA Jetson ou Raspberry Pi são as plataformas mais compactas e leves. Ambos oferecem fatores de forma pequenos e são adequados para construir sistemas robóticos compactos.
Então, escolha Raspberry Pi se você precisa de uma opção econômica (aprenda como conectar simpleRTK2B/3B placas para um Raspberry Pi) ou NVIDIA Jetson se as capacidades de computação são mais importantes (confira o passo a passo tutorial como conectar o receptor RTK ao NVIDIA Jetson).
Qual ambiente de desenvolvimento para o ROS escolher?
Os ambientes de desenvolvimento mais comumente usados são Ubuntu, ROS development studio (ROSDS), Visual Studio Code, Eclipse, CLion etc.
Ubuntu é um sistema operacional bem suportado e amplamente utilizado com uma grande comunidade de usuários que contribuem para o desenvolvimento e suporte do ROS.
O próprio ROS é desenvolvido e testado principalmente no Ubuntu, o que significa que ele é otimizado para esta plataforma e a maioria dos pacotes e bibliotecas do ROS estão disponíveis como pacotes pré-construídos para o Ubuntu. Basta lembrar que:
- ROS Melódico é compatível com o Ubuntu 18 (verifique Guia de instalação melódico)
- ROS Noético é compatível com o Ubuntu 20 (verifique Guia de instalação Noetic)
Quais receptores e antenas RTK são adequados para uso em ROS?
Todos ArduSimple Receptores RTK e antenas são compatíveis com ROS.
Ao escolher específico Receptores RTK e antenas, considere os requisitos de sua aplicação, como precisão de posicionamento, opções de conectividade e fatores ambientais, para selecionar o equipamento mais adequado.
Para agilizar a integração dos dados GPS em seu projeto ROS, preparamos tutorial de como usar ArduSimple produtos em ROS.