Esse tutorial tem como objetivo ensinar a rodar a simulação Gazebo junto com o Framework Clover e ROS
Para Prosseguir com esse tutorial antes se deve cumprir certos Requisitos:
- Ubuntu 20.04
- Git clone por ssh (Recomendado)
- 7 Gigas Livres em Disco
Note
Voce pode Clicar para seguir esses links para poder ser redirecionado para o tópico
Primeiro se deve configurar os repositórios "restricted", "universe" e "multiverse" rodando os seguintes comandos.
sudo add-apt-repository universe
sudo add-apt-repository multiverse
sudo add-apt-repository restricted
sudo apt update- Caso o comando retorne esse erro:
add-apt-repository: command not foundtente os seguintes comandos:
sudo apt-get update
sudo apt-get install software-properties-common- e em seguida rode os comandos do índice 1
- Agora devemos configurar seu computador para aceitar software dos packages.ros.org:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'- Adicionar as Chaves
sudo apt install curl # Se você ainda não tiver o curl baixado
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -- Instalar ROS
primeiro, tenha certeza que seus indices de pacotes estão atualizados:
sudo apt updateRode o comando para instalação do ROS:
- Desktop-Full Install: (Recomendado): Tudo na versão desktop mas as ferramentas 2d/3d de simulação e pacotes de percepção
sudo apt install ros-noetic-desktop-full- Dependências extras do MAVROS: O
GeographicLibprecisa para converter altitudes e coordenadas.
sudo apt install ros-noetic-mavros ros-noetic-mavros-extras- Pacote que permite a comunicação entre o ROS e interfaces externas como o navegador ou scripts que usam JSON.
sudo apt install ros-noetic-rosbridge-servermais informações em wiki.ros.org
- Configuração do seu ambiente O seguinte comando irá escrever no caminho de configuração do seu terminal o source do ROS, para que toda vez que o for aberto o terminal ele inicie junto.
bash
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrcZsh
echo "source /opt/ros/noetic/setup.zsh" >> ~/.zshrc
source ~/.zshrc-
Dependências para compilar os pacotes:
Até agora você instalou o que precisa para executar os pacotes ROS principais. há várias ferramentas e requisitos que são distribuídos separadamente. Por exemplo, rosinstall é uma ferramenta usada com frequência que permite que você baixe facilmente árvores de origem para pacotes ROS.
Para instalar esta ferramenta e outras dependências para compilar pacotes ROS, execute em seu terminal:
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
- Inicialização do rosdep
O rosdep permite-lhe instalar facilmente as dependências do sistema para o código fonte que pretende compilar e é necessário para executar alguns componentes principais no ROS. Se você ainda não instalou o rosdep, faça-o da seguinte forma.
sudo apt install python3-rosdep
Com o seguinte, é possível inicializar o rosdep.
sudo rosdep init rosdep update
- Os Seguintes comandos na seguinte ordem:
-
cria um diretório chamado
catkin_wsno diretóriohome (~)e, dentro dele, cria um subdiretóriosrc -
muda o diretório de trabalho atual para o diretório
catkin_wsque acabamos de criar -
compila um espaço de trabalho Catkin no ROS,adiciona uma linha ao final do arquivo
~/.bashrc, que é o script de inicialização do bash -
E recarrega o arquivo
~/.bashrcpara que as alterações feitas sejam aplicadas :
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin_make
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrcAgora vamos clonar as fontes do Clover:
cd ~/catkin_ws/src
git clone --depth 1 https://github.com/CopterExpress/clover
git clone --depth 1 https://github.com/CopterExpress/ros_led
git clone --depth 1 https://github.com/ethz-asl/mav_commImportant
Caso esteja sofrendo erros ao clonar os repositórios leia o tópico Git_config
- Instale todas as dependências usando
rosdep:
cd ~/catkin_ws
sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src -y- Instale as dependências do Python:
sudo apt install pip
sudo /usr/bin/python3 -m pip install -r ~/catkin_ws/src/clover/clover/requirements.txt- O PX4 será compilado juntamente com os outros pacotes no nosso espaço de trabalho. Você pode cloná-lo diretamente no espaço de trabalho ou colocá-lo em algum lugar e fazer um link simbólico para
~/catkin_ws/src. Nós precisaremos colocar seus submódulossitl_gazeboemavlinkem~/catkin_ws/srctambém.
Clonar as fontes do PX4 na home e criar as ligações simbólicas necessárias:
cd ~
git clone --recursive --depth 1 --branch v1.12.3 https://github.com/PX4/PX4-Autopilot.git ~/PX4-Autopilot
ln -s ~/PX4-Autopilot ~/catkin_ws/src/
ln -s ~/PX4-Autopilot/Tools/sitl_gazebo ~/catkin_ws/src/
ln -s ~/PX4-Autopilot/mavlink ~/catkin_ws/src/Tip
Você pode tentar utilizar uma versão mais recente do PX4, mas nesse caso, algo pode não funcionar como esperado.
Warning
Caso esteja sofrendo erros ao clonar os repositórios é imprescindível que se leia o tópico Git_config
O PX4 vem com o seu próprio script para a instalação de dependências. Podemos também aproveitá-lo:
cd ~/catkin_ws/src/PX4-Autopilot/Tools/setup
sudo ./ubuntu.shIsto irá instalar tudo o que é necessário para compilar o PX4 e o seu ambiente SITL.
Instalar mais pacotes Python necessários:
pip3 install --user tomlAdicionar o Frame do Drone Clover ao PX4 utilizando o comando:
ln -s ~/catkin_ws/src/clover/clover_simulation/airframes/* ~/PX4-Autopilot/ROMFS/px4fmu_common/init.d-posix/airframes/O pacote mavos requer que os conjuntos de dados da geographiclib estejam presentes:
sudo /opt/ros/noetic/lib/mavros/install_geographiclib_datasets.shInstalar bibliotecas Jinja2 (usado no ROS e no Gazebo para gerar arquivos de configuração dinamicamente) e packaging:
sudo apt install python3-jinja2
pip3 install --user packagingCompilar a sua área de trabalho:
cd ~/catkin_ws
catkin_make -j1Para ter a certeza de que tudo foi compilado corretamente, tente executar o simulador pela primeira vez:
roslaunch clover_simulation simulator.launchTeste voos autônomos utilizando scripts de exemplo no diretório ~/catkin_ws/src/clover/clover/examples.
Atalho opcional para executar o programa sem precisar executar o comando acima
Crie o script:
mkdir ~/.local/share/scripts
nano ~/.local/share/scripts/clover_simulation.shCole dentro de clover_simulation.sh:
#!/bin/bash
source /opt/ros/noetic/setup.bash
source ~/catkin_ws/devel/setup.bash
roslaunch clover_simulation simulator.launchTorne o script executável:
chmod +x ~/.local/share/scripts/clover_simulation.shCrie o arquivo clover_simulation.desktop:
nano ~/.local/share/applications/clover_simulation.desktop
chmod +x ~/.local/share/applications/clover_simulation.desktopCole dentro dele:
- Lembre-se de trocar
SEU_USUARIOpelo usuário correto.
[Desktop Entry]
Version=1.0
Type=Application
Name=Clover Simulation
Comment=Roda o script de simulação do Clover
Exec=/home/SEU_USUARIO/.local/share/scripts/clover_simulation.sh
Icon=gazebo
Terminal=trueConfigurar icone (dispensável):
-
Baixe o ícone desejado dentro de
~/Downloadse renomeie comogazebo.png -
Depois de baixado e renomeado execute:
mkdir ~/.local/share/icons
mv ~/Downloads/gazebo.png ~/.local/share/icons
chmod +x ~/.local/share/icons/gazebo.pngPronto! Agora você tem um aplicativo chamado Clover Simulation que executa a simulação em apenas um clique. Fixe-o a sua barra de favoritos.
Chegamos ao fim de nosso tutorial, caso ele te ajudou, peço que também ajude nosso projeto seguindo as páginas do Instagram:
Caso deseje ver a documentação original clique aqui para ver as referencias
Feito por: @msantos7gabriel, @R-Nhan, @andreasgunther
Editado a última vez por: @msantos7gabriel 17/03/2025