Neste tutorial, vamos ver como instalar o ROS2 numa máquina Linux, em particular um Raspberry Pi 4 a correr Ubuntu. O ROS2 é um framework interessante para aprender quando se trabalha com sistemas embarcados, como robôs.
Hardware
- Computador com acesso à Internet
- Cartão SD de 32 GB
- Raspberry Pi+ecrã HDMI+teclado
Este tutorial pode ser seguido para outras máquinas Linux
Descarregar o Ubuntu e configurar o cartão SD
Vamos ver como configurar o cartão SD para instalar o ROS2 (Iron Irwini) no Raspberry Pi. Esta versão do ROS2 é compatível com o Ubuntu Jammy.
Para tal, descarregue a imagem do Ubuntu (Jammy jellyfish) ou seleccione o SO em Raspberry Pi Imager > General OS > Ubuntu > Ubuntu Desktop 22.04.3 LTS (64bits)
Nota: pode encontrar a compatibilidade de versões entre o ROS e o SO e os nomes das versões do Ubuntu para verificar se está a instalar as versões correctas. Seleccione a versão de 64 bits para um melhor suporte (tier1)
Instalar a imagem do SO utilizando o Raspberry Pi Imager no cartão SD
Depois de a imagem ter sido gravada no cartão SD, pode inseri-lo no Raspberry Pi e ligá-lo.
Pode então seguir as instruções de configuração no ecrã do Raspberry Pi.
Configurar a ligação remota
Se desejar, pode configurar a ligação remota na Raspberry Pi. Este passo é opcional, mas pode facilitar-lhe a vida quando estiver a desenvolver em ROS2 no Raspberry Pi.
Nota: no Ubuntu, para se ligar remotamente sem um monitor, é necessário modificar o ficheiro
#dtoverlay=vc4-kms-v3d
hdmi_force_hotplug=1
hdmi_group=1
hdmi_mode=16
Instalar o ROS2
Para instalar o ROS2, deve primeiro verificar se o download do repositório Universe está ativado. Em Software e Actualizações > Software Ubuntu
Em seguida, adicione a chave GPG para o ROS2
sudo apt install curl -y sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
Em seguida, adicione o repositório à lista de fontes (/etc/source.list.d)
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
Para o desenvolvimento, pode instalar as seguintes ferramentas de desenvolvimento
sudo apt update && sudo apt install ros-dev-tools
Por fim, pode instalar o ROS2 em função da versão que escolheu (desktop ou base).
sudo apt install ros-iron-desktop
ou
sudo apt install ros-iron-ros-base
Para desinstalar o ROS2
Para desinstalar, é necessário remover o pacote e o repositório
sudo apt remove ~nros-iron-* && sudo apt autoremove sudo rm /etc/apt/sources.list.d/ros2.list sudo apt update
Primeiro passo com ROS2
Uma vez instalado o ROS2, é possível carregar o ambiente com
source /opt/ros/iron/setup.bash
Pode testar a instalação utilizando o exemplo do locutor
Lançar o locutor num terminal
source /opt/ros/iron/setup.bash ros2 run demo_nodes_cpp talker
Num segundo terminal, lançar o ouvinte
source /opt/ros/iron/setup.bash ros2 run demo_nodes_py listener
Para verificar a lista de variáveis de ambiente
printenv | grep -i ROS
Para obter uma lista dos objectos atualmente em execução, pode utilizar os comandos
ros2 node list ros2 topic list ros2 service list ros2 action list
Instalando o TurtleSim
Uma óptima ferramenta para aprender e compreender o funcionamento do ROS2 é o TurtleSim
Verifique a sua instalação utilizando o comando
ros2 pkg executables turtlesim
Se este não for o caso, pode instalar o turtlesim utilizando o comando
sudo apt install ros-iron-turtlesim
Num terminal, lançar o turtle sim
ros2 run turtlesim turtlesim_node
Num outro terminal, lançar o controlo do teclado
ros2 run turtlesim turtle_teleop_key
Para observar o que se está a passar, num terceiro terminal, espia o tópico com o comando
ros2 topic echo /turtle1/pose
Pode encontrar a lista de tópicos disponíveis utilizando o comando
ros2 topic list