ROS Download 2.0: Como instalar e usar a versão mais recente do sistema operacional do robô
Se você está interessado em desenvolver aplicativos para robôs, provavelmente já ouviu falar do ROS, o Robot Operating System. O ROS é um conjunto de bibliotecas e ferramentas de software que ajudam a criar aplicativos de robô. De drivers a algoritmos de última geração e com poderosas ferramentas de desenvolvedor, o ROS tem o que você precisa para seu próximo projeto de robótica. E é tudo de código aberto.
Mas você sabia que existe uma nova versão do ROS, chamada ROS 2, que oferece muitas melhorias e recursos em relação ao ROS original? Neste artigo, explicaremos o que é o ROS 2, como ele difere do ROS, como baixá-lo e instalá-lo em seu sistema e como usá-lo em seus projetos de robô.
ros download 2.0
DOWNLOAD: https://tweeat.com/2vQPSi
O que é ROS e por que você precisa dele
ROS, ou Robot Operating System, não é realmente um sistema operacional, mas um meta-sistema operacional. Ele fornece os serviços que você esperaria de um sistema operacional, como abstração de hardware, controle de dispositivo de baixo nível, implementação de funcionalidade comumente usada, passagem de mensagens entre processos e gerenciamento de pacotes. Mas também fornece ferramentas e bibliotecas para obter, construir, escrever e executar código em vários computadores.
O ROS foi criado em 2007 pelo Willow Garage, um laboratório de pesquisa em robótica, como ambiente de desenvolvimento para o robô PR2. Desde então, tornou-se uma grande e ativa comunidade de pesquisadores, desenvolvedores, amadores e empresas que usam o ROS para uma variedade de robôs, como robôs com rodas, robôs com pernas, robôs aéreos, robôs industriais e muito mais.
Recursos e benefícios do ROS
Algumas das principais características e benefícios do uso do ROS são:
É modular e distribuído. Você pode usar o ROS para criar sistemas complexos combinando componentes menores que se comunicam entre si usando um mecanismo de publicação-assinatura.Você também pode executar esses componentes em diferentes máquinas ou dispositivos, desde que estejam conectados por uma rede.
É de código aberto e orientado para a comunidade. Você pode acessar o código-fonte do ROS e seus pacotes, modificá-los ou contribuir com eles. Você também pode encontrar milhares de pacotes que fornecem funcionalidade para vários aspectos da robótica, como percepção, navegação, manipulação, planejamento, simulação, visualização etc. Você pode usar esses pacotes como estão ou personalizá-los de acordo com suas necessidades.
É multiplataforma e independente de idioma. Você pode executar o ROS no Linux, Windows, macOS ou plataformas incorporadas (via micro-ROS). Você também pode escrever seu código em diferentes linguagens de programação, como C++, Python, Java ou Lisp.
É flexível e escalável. Você pode usar o ROS para qualquer tipo de aplicação de robô, desde tarefas simples até missões complexas. Você também pode adaptar o ROS a diferentes configurações de hardware ou requisitos de desempenho.
Limitações e desafios do ROS
No entanto, apesar de sua popularidade e utilidade, o ROS também possui algumas limitações e desafios que o tornam menos adequado para alguns cenários ou aplicações. Algumas delas são:
Ele não oferece suporte a vários robôs com o mesmo nó mestre. O nó mestre é um componente central que gerencia a comunicação entre outros nós em um sistema ROS. Se o nó mestre falhar ou ficar indisponível, todo o sistema para de funcionar.
Não suporta operação em tempo real. A operação em tempo real significa que um sistema pode garantir um determinado tempo de resposta ou prazo para suas tarefas. O ROS não fornece tais garantias, pois depende do sistema operacional subjacente e da rede para agendamento e comunicação. Isso pode levar a atrasos, instabilidade ou perda de dados, o que pode afetar o desempenho ou a segurança do robô.
Ele não oferece suporte a recursos de segurança. O ROS não fornece nenhum mecanismo para criptografar, autenticar ou autorizar a comunicação entre os nós.Isso pode expor o robô a ataques maliciosos ou acesso não autorizado, o que pode comprometer sua funcionalidade ou dados.
Essas limitações e desafios motivaram o desenvolvimento de uma nova versão do ROS, denominada ROS 2, que visa resolvê-los e fornecer uma estrutura mais robusta e confiável para aplicações de robôs.
O que é ROS 2 e como ele difere do ROS
O ROS 2 é a próxima geração do ROS projetada para superar as deficiências do ROS e oferecer suporte a novos casos de uso e requisitos. O ROS 2 não é um sucessor direto ou substituto do ROS, mas um projeto paralelo que é compatível com o ROS e pode interoperar com ele.
O ROS 2 foi anunciado pela primeira vez em 2014 e está em desenvolvimento ativo desde então. A versão estável mais recente do ROS 2 é Galactic Geochelone, lançada em junho de 2021. A próxima versão planejada é H-Turtle, prevista para maio de 2023.
ROS 2 Arquitetura e Design
A principal diferença entre o ROS e o ROS 2 é a arquitetura e o design da camada de comunicação. Enquanto o ROS usa um middleware personalizado chamado roscpp (para C++) ou rospy (para Python), o ROS 2 usa uma interface de middleware padrão chamada DDS (Data Distribution Service). DDS é uma especificação que define como os dados são trocados entre aplicativos distribuídos. O DDS fornece muitos recursos úteis para a robótica, como:
Ele oferece suporte a várias políticas de qualidade de serviço (QoS) que permitem um controle refinado sobre a confiabilidade, durabilidade, prazo e prioridade dos dados.
Ele oferece suporte a vários mecanismos de descoberta que permitem que os nós se encontrem automaticamente ou manualmente.
Ele suporta vários protocolos de transporte que permitem que os nós se comuniquem em diferentes redes ou meios.
Ele oferece suporte a vários recursos de segurança que permitem que os nós criptografem, autentiquem e autorizem os dados.
Ao usar o DDS como middleware, o ROS 2 pode aproveitar esses recursos e oferecer mais flexibilidade e desempenho para aplicativos de robô.No entanto, o DDS também apresenta alguma complexidade e sobrecarga, pois requer mais configuração e recursos do que roscpp ou rospy.
Recursos e vantagens do ROS 2
Algumas das principais características e vantagens do uso do ROS 2 são:
Ele suporta vários robôs com diferentes nós principais. Cada nó mestre é responsável por gerenciar a comunicação entre um subconjunto de nós em um sistema ROS 2. Isso permite melhor escalabilidade e tolerância a falhas, pois a falha ou indisponibilidade de um nó mestre não afeta todo o sistema.
Suporta operação em tempo real. Ao utilizar políticas DDS QoS e sistemas operacionais em tempo real (RTOS), o ROS 2 pode garantir um determinado tempo de resposta ou deadline para suas tarefas. Isso permite um comportamento mais previsível e consistente do robô.
Ele suporta recursos de segurança. Ao usar plug-ins e políticas de segurança DDS, o ROS 2 pode criptografar, autenticar e autorizar a comunicação entre os nós. Isso permite mais proteção e privacidade da funcionalidade e dos dados do robô.
Ele oferece suporte para plataforma cruzada e desenvolvimento independente de linguagem. Além de Linux, Windows, macOS e plataformas embarcadas (via micro-ROS), o ROS 2 também suporta Android, iOS, QNX, VxWorks, Zephyr, etc. Além de C++, Python, Java e Lisp, o ROS 2 também suporta C#, Go, JavaScript, Rust, etc.
Suporta compatibilidade e migração do ROS. Usando um pacote de ponte chamado ros1_bridge, o ROS 2 pode se comunicar com nós ROS e usar pacotes ROS. Isso permite uma transição gradual do ROS para o ROS 2 sem perder funcionalidade ou compatibilidade.
Compatibilidade e migração do ROS 2
No entanto, apesar de suas melhorias e recursos, o ROS 2 também possui algumas desvantagens e desafios que o tornam menos compatível ou fácil de migrar do ROS. Algumas delas são:
Ele não suporta todos os recursos ou pacotes do ROS.Alguns recursos ou pacotes do ROS ainda não foram implementados ou portados para o ROS 2, como actionlib (para definir metas de alto nível), dynamic_reconfigure (para alterar parâmetros em tempo de execução), tf (para rastrear quadros de coordenadas), etc.
Não suporta todas as plataformas ou linguagens do ROS. Algumas plataformas ou linguagens do ROS ainda não são suportadas ou disponíveis para o ROS 2, como MATLAB, R, Ruby, etc.
Ele não suporta a mesma sintaxe ou convenções do ROS. Algumas sintaxes ou convenções do ROS são diferentes ou alteradas no ROS 2, como a nomeação de nós, tópicos, serviços, parâmetros, etc., a estrutura das mensagens, o formato dos arquivos de inicialização, o uso de ferramentas de linha de comando, etc.
Essas desvantagens e desafios exigem algum esforço e adaptação para migrar do ROS para o ROS 2. No entanto, existem alguns recursos e guias que podem ajudá-lo nesse processo, como a documentação do ROS 2, o guia de migração do ROS 2, os tutoriais do ROS 2 e o fórum de discurso do ROS 2.
Como baixar e instalar o ROS 2 em seu sistema
Se você quiser experimentar o ROS 2 em seu sistema, primeiro você precisa baixá-lo e instalá-lo. Existem diferentes maneiras de fazer isso, dependendo de suas preferências e necessidades. Aqui estão algumas das opções mais comuns:
Requisitos e opções de instalação do ROS 2
Antes de baixar e instalar o ROS 2, você precisa se certificar de que seu sistema atende aos requisitos mínimos para executá-lo. Estes são:
Um sistema operacional compatível. Os sistemas operacionais recomendados para o ROS 2 são Ubuntu Linux (20.04 ou 18.04), Windows 10 ou macOS Catalina ou Big Sur. Outros sistemas operacionais podem funcionar, mas não são oficialmente suportados ou testados.
Um middleware suportado. O middleware recomendado para o ROS 2 é o Fast DDS (anteriormente Fast RTPS), que é uma implementação DDS otimizada para desempenho e escalabilidade. Outras implementações DDS podem funcionar, mas não são oficialmente suportadas ou testadas.
Uma linguagem de programação compatível.As linguagens de programação recomendadas para o ROS 2 são C++ (14 ou superior) ou Python (3.6 ou superior). Outras linguagens de programação podem funcionar, mas não são oficialmente suportadas ou testadas.
Espaço em disco e memória adequados. A quantidade exata de espaço em disco e memória necessária para o ROS 2 depende dos pacotes e recursos que você deseja usar, mas uma recomendação geral é ter pelo menos 10 GB de espaço livre em disco e 4 GB de RAM.
Depois de verificar se seu sistema atende a esses requisitos, você pode escolher uma das seguintes opções para baixar e instalar o ROS 2:
Opção 1: Use um pacote binário pré-compilado. Esta é a maneira mais fácil e rápida de instalar o ROS 2 em seu sistema. Você só precisa baixar um arquivo zip que contém todos os arquivos e dependências necessários para executar o ROS 2 e extraí-lo em uma pasta de sua escolha. Você pode encontrar os pacotes binários mais recentes para diferentes plataformas aqui.
Opção 2: Use um gerenciador de pacotes. Esta é uma maneira conveniente de instalar o ROS 2 em seu sistema se você estiver usando uma distribuição Linux que o suporte. Você só precisa adicionar o repositório ROS 2 à sua lista de fontes e usar o comando apt-get para instalar os pacotes desejados. Você pode encontrar as instruções para diferentes distribuições do Linux aqui.
Opção 3: Construir a partir do código-fonte. Esta é uma maneira flexível de instalar o ROS 2 em seu sistema se você quiser personalizá-lo ou usar a versão de desenvolvimento mais recente. Você só precisa clonar o código-fonte do ROS 2 do GitHub e usar uma ferramenta chamada colcon para compilá-lo. Você pode encontrar as instruções para diferentes plataformas aqui.
Etapas de instalação do ROS 2 para diferentes plataformas
A tabela a seguir resume as principais etapas para instalar o ROS 2 em diferentes plataformas usando diferentes opções:
Plataforma Opção Passos --- --- --- UbuntuLinux Pacote binário Baixe o arquivo zip aqui.
Extraia-o para uma pasta de sua preferência.
Crie o arquivo de configuração no seu terminal: fonte /caminho/para/ros2/setup.bash
UbuntuLinux Gerenciador de pacotes Adicione o repositório ROS 2 à sua lista de fontes: sudo apt update && sudo apt install curl gnupg2 lsb-releasecurl -s sudo apt-key add -sudo sh -c 'echo "deb [arch=$(dpkg --print-architecture)] $(lsb_release -cs) main" > /etc/apt/sources.list.d/ros2-latest.list'
Instale os pacotes que você deseja usando o comando apt-get: sudo apt updatesudo apt install ros-galactic-desktop
Crie o arquivo de configuração no seu terminal: source /opt/ros/galactic/setup.bash
UbuntuLinux Construir a partir da fonte Instale os pré-requisitos: sudo apt update && sudo apt install curl gnupg2 lsb-releasecurl -s sudo apt-key add -sudo sh -c 'echo "deb [arch=$(dpkg --print-architecture)] $(lsb_release -cs) main" > /etc/apt/sources.list.d/ros2-latest.list'sudo apt update && sudo apt install -y python3-colcon-common-extensions python3-rosdep2
Crie um espaço de trabalho e clone o código-fonte: mkdir -p /ros2_ws/srcCD /ros2_ws/srcgit clone as dependências: CD /ros2_wsatualização do rosdeprosdep install --from-paths src --ignore-src --rosdistro galactic -y --skip-keys "console_bridge fastcdr fastrtps rti-connext-dds-5.3.1 urdfdom_headers"
Crie os pacotes: colcon build --symlink-install
Crie o arquivo de configuração no seu terminal: source /ros2_ws/install/setup.bash
Janelas 10 Pacote binário Baixe o arquivo zip aqui.
Extraia-o para uma pasta de sua preferência.
Adicione a pasta à sua variável de ambiente PATH.
Janelas 10 Construir a partir da fonte Instale os pré-requisitos: Visual Studio 2019, Python 3.8, Chocolatey e colcon.
Crie um espaço de trabalho e clone o código-fonte: mkdir c:\dev\ros2_ws\srccd c:\dev\ros2_ws\srcvcs import src
Instale as dependências: c:\dev\ros2_ws\src\ament\ament_tools\scripts\windows_install_prerequisites.bat
Crie os pacotes: c:\dev\ros2_ws\src\ament\ament_tools\scripts\windows_build.bat
mac OS Pacote binário Baixe o arquivo tar aqui.
Extraia-o para uma pasta de sua preferência.
Adicione a pasta à sua variável de ambiente PATH.
mac OS Construir a partir da fonte Instale os pré-requisitos: XCode, Homebrew, Python 3.8 e colcon.
Crie um espaço de trabalho e clone o código-fonte: mkdir -p /ros2_ws/srcCD /ros2_ws/srcvcs import src
Instale as dependências: bash ros2_ws/src/ros2/rosdep/install_rosdep.sh
Crie os pacotes: bash ros2_ws/src/ament/ament_tools/scripts/build_and_install.sh ros2_ws/
Como usar o ROS 2 para seus projetos de robôs
Agora que você instalou o ROS 2 em seu sistema, você pode se perguntar como usá-lo para seus projetos de robôs. Nesta seção, apresentaremos alguns dos conceitos básicos e terminologia do ROS 2, bem como algumas das ferramentas e pacotes que podem ajudá-lo a criar e executar seus aplicativos de robô.
Conceitos básicos e terminologia do ROS 2
Alguns dos conceitos básicos e terminologia do ROS 2 são:
Um nó é um processo que executa uma função específica em um sistema ROS 2. Por exemplo, um nó pode ler dados de um sensor, controlar um motor ou realizar uma computação.
Um tópico é um canal que os nós usam para trocar mensagens. Uma mensagem é uma estrutura de dados que contém informações relevantes para a função do nó. Por exemplo, uma mensagem pode conter leituras de sensores, comandos ou atualizações de status.
Um serviço é um mecanismo de solicitação-resposta que os nós usam para realizar comunicação síncrona. Um serviço consiste em um par de mensagens: uma para a solicitação e outra para a resposta. Por exemplo, um serviço pode ser usado para obter a posição atual de um robô ou para definir um valor de parâmetro.
Uma ação é um mecanismo orientado a um objetivo que os nós usam para realizar comunicação assíncrona.Uma ação consiste em três mensagens: uma para o objetivo, uma para o feedback e uma para o resultado. Por exemplo, uma ação pode ser usada para mover um robô para um local de destino ou para executar uma tarefa complexa.
Um parâmetro é uma variável que os nós usam para armazenar e modificar valores de configuração. Um parâmetro pode ter diferentes tipos, como string, integer, float ou boolean. Por exemplo, um parâmetro pode armazenar o nome de um robô ou a velocidade de um motor.
Esses conceitos são ilustrados no diagrama a seguir:
Ferramentas e pacotes do ROS 2
Algumas das ferramentas e pacotes que podem ajudá-lo a usar o ROS 2 são:
A ferramenta de linha de comando ros2 é uma ferramenta que permite realizar diversas tarefas com o ROS 2, como criar nós, tópicos, serviços, ações e parâmetros, listá-los e inspecioná-los, enviar e receber mensagens, etc.
A ferramenta gráfica rqt é uma ferramenta que permite visualizar e interagir com o ROS 2 usando uma interface gráfica do usuário (GUI). Você pode usar o rqt para monitorar e depurar seu sistema ROS 2, bem como criar plugins personalizados para suas necessidades específicas.
A ferramenta gráfica rviz é uma ferramenta que permite visualizar e interagir com dados 3D no ROS 2, como nuvens de pontos, imagens, mapas, poses, etc.
O simulador Gazebo é uma ferramenta que permite simular seu robô e seu ambiente no ROS 2. Você pode usar o Gazebo para testar e avaliar o comportamento e desempenho de seu robô em cenários realistas, sem risco de danos ou lesões.
O pacote navigation2 é um pacote que fornece funcionalidade para navegação autônoma de robôs móveis no ROS 2. Você pode usar o navigation2 para planejar e executar caminhos para seu robô, evitar obstáculos, recuperar-se de falhas, etc.
O pacote moveit2 é um pacote que fornece funcionalidade para planejamento de movimento e controle de robôs manipuladores no ROS 2.Você pode usar o moveit2 para gerar e executar trajetórias para as articulações do seu robô, evitar colisões, agarrar objetos, etc.
Tutoriais e exemplos do ROS 2
Se você quiser aprender mais sobre como usar o ROS 2 para seus projetos de robôs, pode seguir alguns dos tutoriais e exemplos disponíveis online. Alguns deles são:
Os tutoriais oficiais do ROS 2 são uma série de tutoriais que abordam os fundamentos do desenvolvimento do ROS 2, como a criação de nós, tópicos, serviços, ações, parâmetros, etc. Você pode encontrar os tutoriais aqui.
Os exemplos do ROS 2 são uma coleção de exemplos que demonstram como usar o ROS 2 para vários aplicativos de robô, como navegação, manipulação, percepção, etc. Você pode encontrar os exemplos aqui.
As demos do ROS 2 são um conjunto de demos que mostram alguns dos recursos e capacidades do ROS 2, como QoS, segurança, tempo real, etc. Você pode encontrar as demos aqui.
Conclusão
Neste artigo, apresentamos o ROS 2, a próxima geração do ROS projetada para superar as limitações e desafios do ROS e oferecer suporte a novos casos de uso e requisitos para aplicações de robôs. Explicamos o que é o ROS 2, como ele difere do ROS, como baixá-lo e instalá-lo em seu sistema e como usá-lo em seus projetos de robô.
Esperamos que este artigo tenha lhe dado uma visão clara e abrangente do ROS 2 e seus benefícios e recursos. Se você estiver interessado em aprender mais sobre o ROS 2 ou experimentá-lo, recomendamos que verifique os recursos e links que fornecemos ao longo do artigo.
Obrigado por ler e boa robótica!
perguntas frequentes
Aqui estão algumas das perguntas mais frequentes sobre o ROS 2:
Qual é a diferença entre ROS e ROS 2?
O ROS 2 é a próxima geração do ROS projetada para superar as limitações e desafios do ROS e oferecer suporte a novos casos de uso e requisitos para aplicações de robôs. A principal diferença entre o ROS e o ROS 2 é a arquitetura e o design da camada de comunicação.Enquanto o ROS usa um middleware personalizado chamado roscpp ou rospy, o ROS 2 usa uma interface de middleware padrão chamada DDS.
Como posso migrar do ROS para o ROS 2?
Você pode migrar do ROS para o ROS 2 gradualmente usando um pacote de ponte chamado ros1_bridge que permite que você se comunique com os nós do ROS e use os pacotes do ROS do ROS 2. Você também pode seguir o guia de migração e os tutoriais que fornecem instruções e dicas para migrar seu código e pacotes do ROS para o ROS 2.
Quais são as vantagens de usar DDS para ROS 2?
DDS é uma especificação que define como os dados são trocados entre aplicativos distribuídos. O DDS fornece muitos recursos que são úteis para a robótica, como várias políticas de qualidade de serviço, vários mecanismos de descoberta, vários protocolos de transporte e vários recursos de segurança. Ao usar o DDS como middleware, o ROS 2 pode aproveitar esses recursos e oferecer mais flexibilidade e desempenho para aplicativos de robô.
Quais são algumas das ferramentas e pacotes que posso usar com o ROS 2?
Algumas das ferramentas e pacotes que você pode usar com o ROS 2 são a ferramenta de linha de comando ros2, a ferramenta gráfica rqt, a ferramenta gráfica rviz, o simulador Gazebo, o pacote navigation2 e o pacote moveit2. Você também pode encontrar milhares de outros pacotes que fornecem funcionalidade para vários aspectos da robótica no índice oficial ou no GitHub.
Onde posso encontrar mais informações ou ajuda sobre o ROS 2?
Você pode encontrar mais informações ou ajuda sobre o ROS 2 no site oficial, na documentação oficial, no fórum de discurso oficial ou no repositório oficial do GitHub. Você também pode ingressar nos canais da comunidade no Slack ou no IRC.
0517a86e26
Comments