Quadrirrotor UFABC - ROS/Gazebo

Overview

Quadrirrotor UFABC - ROS/Gazebo

O principal objetivo deste repositório é perpetuar o trabalho que vem sido realizado durante meu projeto de mestrado no programa de pós-graduação em Engenharia Mecânica pela Universidade Federal do ABC. O tema do meu trabalho é "Estimação de Posição e Atitude de um Quadrirrotoro Utilizando Visão Computacional", e tem como principal objetivo realizar a navegação de um veículo quadrirrotor, em ambientes fechados que não possuem sinal de GPS, utilizando visão computacional. Para realizar a estimação dos estados foi utilizado um Filtro de Kalman dos Erros de Estado (Error State Kalman Filter [1]) e a partir deles um sistema de controle em cascata foi implementado para que o quadrirrotor seguisse uma trajetória pré-definida. Um vídeo contendo algumas simulações pode ser visto em: https://youtu.be/_FUcOvvbstQ.

O ambiente de simulação é configurado no sistema Gazebo/ROS, visto que são ferramentas amplamente utilizadas pela comunidade robótica e, portanto, oferecem muitas aplicações que satisfazem a necessidade desse trabalho.

A seguir serão expostas algumas informações de como configurar o ROS/Gazebo e também instruções para realizar a simulação. Caso hajam dúvidas contatar os colaboradores desse projeto.

Instalação e configuração do ambiente ROS/Gazebo

A versão do ROS utilizada nesse trabalho foi a Noetic. As instruções para instalação dos ROS/Gazebo estão disponíveis em: http://wiki.ros.org/noetic/Installation/Ubuntu. Recomenda-se que, no tópico 1.4 - Installation, execute a instalação Desktop-Full Install, pois já instala todos os pacotes necessários do ROS, além de instalar o simulador Gazebo.

OBS: O link acima oferece as informações para instalação no sistema operacional Ubuntu 20.04 LS. Para outros sistemas operacionais consultar: http://wiki.ros.org/noetic/Installation.

Após a instalação do ROS/Gazebo, é necessário criar um workspace. No prompt de comando, siga as seguintes instruções:

Crie um workspace no diretório home/username/quad_ufabc_ws, e em ~/quad_ufabc_ws/src serão armazenados os pacotes utilizados:

~$ mkdir -p ~/quad_ufabc_ws/src
~$ cd ~/quad_ufabc_ws/src
~$ source /opt/ros/noetic/setup.bash
~$ catkin_init_workspace 

Compile o workspace:

~$ cd ..
~$ catkin_make

Configure o bash (Mude o username pelo seu nome de usuário utilizado no Ubuntu):

> ~/.bashrc ~$ source ~/.bashrc">
~$ echo "source /home/username/quad_ufabc_ws/devel/setup.bash" >> ~/.bashrc
~$ source ~/.bashrc
  • Após ter configurado o workspace, realize o download ZIP desse repositório;
  • Copie a pasta "/src";
  • Cole a pasta "/src" em "/quad_ufabc_ws" substituindo a pasta "/quad_ufabc_ws/src" criada por padrão.

Execução da simulação

Tendo configurado o ambiente ROS/Gazebo, já é possível executar a simulação.

Para abrir o simulador Gazebo, dê o seguinte comando no terminal:

~$ roslaunch quad_ufabc quad.launch

Ao executar esse código, o simulador Gazebo será aberto. Na simulação serão encontrados o quadrirrotor, os marcadores artificiais, as câmeras e um cone.

Para executar os comandos de simulação utilizando o ROS, é necessário que os seguintes pacotes Python estejam instalados na sua máquina:

  • Numpy v.1.19.5;
  • Pickle v.4;
  • Scipy v.1.5.0;
  • Matplotlib v.3.2.2;
  • OpenCV v.4.2.0;
  • Statistics v.1.0.3.5;

Obs: Caso haja algum problema na execução, favor contatar os contribuidores desse repositório.

Tendo todos os pacotes instalados, execute o seguinte comando:

~$ rosrun quad_ufabc main.py

Ao executar esse código, o ROS irá inicializar os nós de visão computacional, estimação dos estados e controle do veículo. O quadrirrotor seguirá uma trajetória pré-definida e serão mostradas as visualização das duas câmeras.

Referências

[1] SOLÀ, J. Quaternion kinematics for the error-state kalman filter. 2017.

Owner
Mateus Ribeiro
Mestrando em Engenharia Mecânica. Atualmente realizando pesquisa na área de visão computacional e controle de VANTs.
Mateus Ribeiro
Herramienta para transferir eventos de Sucuri WAF hacia Azure Data Tables.

Transfiere eventos de Sucuri hacia Azure Data Tables Script para transferir eventos del Sucuri Web Application Firewall (WAF) hacia Azure Data Tables,

CSIRT-RD 1 Dec 22, 2021
TrollWare 🤡 is the most advanced Discord Malware & RAT

TrollWare 🤡 TrollWare is the most advanced Discord Malware, with a built-in RAT which can be controlled through a Discord Bot Pinned Note: Please giv

doop 74 Jun 09, 2022
Projeto do segundo módulo da Resilia

@ Projeto Resilia : Módulo 2 Vamos jogar Forca ! O jogo da forca é um jogo em que o jogador tem que acertar qual é a palavra proposta, tendo como dica

Mateus Sartorio 2 Feb 24, 2022
Telegram Bot for updating ongoing matches of Fotmob.com in channel by @AbirHasan2005

Fotmob-Bot A very simple Telegram Bot which will update ongoing matches of Fotmob in a channel. Demo Channel Configs API_ID - Get this from @TeleORG_B

Abir Hasan 22 Oct 21, 2022
Yes, it's true :heartbeat: This repository has 337 stars.

Yes, it's true! Inspired by a similar repository from @RealPeha, but implemented using a webhook on AWS Lambda and API Gateway, so it's serverless! If

512 Jan 01, 2023
GUI Pancakeswap2 and Uniswap3 trading client (and bot)

GUI Pancakeswap2 and Uniswap3 trading client (and bot) (MOST ADVANCE TRADING BOT SUPPORT WINDOWS LINUX MAC) (AUTO BUY TOKEN ON LUNCH AFTER ADD LIQUIDI

16 Dec 23, 2021
Automatically gets clips from twitch streams and uploads them to a YouTube channel.

Twitch Stream Highlights to YT Automatic Uploader (AutoBot Clipper) This script can be used to automatically extract highlights (or clips) from a twit

Teja Swaroop 57 Dec 12, 2022
Discord Token Creator 🥵

Discord Token Creator 🥵

dropout 304 Jan 03, 2023
NiceHash Python Library and Command Line Rest API

NiceHash Python Library and Command Line Rest API Requirements / Modules pip install requests Required data and where to get it Following data is nee

Ashlin Darius Govindasamy 2 Jan 02, 2022
Python binding for Terraform.

Python libterraform Python binding for Terraform. Installation $ pip install libterraform NOTE Please install version 0.3.1 or above, which solves the

Prodesire 28 Dec 29, 2022
TikTok channel bulk ripper based on TikTok-Api and Youtube-dl. Some assembly may be required.

RipTok Script provided as is. Absolutely no guarantee. A TikTok ripper based on TikTokApi and YouTube-dl. Some assembly may be required. positional ar

32 Dec 24, 2022
Open Source Discord bot with many cool features like Weather, Balance, Avatar, User, Server, RP-commands, Gif search, YouTube search, VK post search etc.

Сокобот Дискорд бот с открытым исходным кодом. Содержит в себе экономику, полезные команды (!аватар, !юзер, !сервер и тд.), рп-команды (!обнять, !глад

serverok 2 Jan 16, 2022
Mventory is an API-driven solution for Makerspaces, Tinkerers, and Hackers.

Mventory is an API-driven inventory solution for Makers, Makerspaces, Hackspaces, and just about anyone else who needs to keep track of "stuff".

Make Monmouth 107 Dec 21, 2022
Qbittorrent / Aria2 Mirror & Leech Telegram Bot

This is a Telegram Bot written in Python for mirroring files on the Internet to your Google Drive or Telegram. Based on python-aria-mirror-bot Feature

Hüzünlü Artemis [HuzunluArtemis] 81 Jul 15, 2022
Send pm to Admin - Telegram

Send pm to Admin - Telegram

Ahoora 3 Nov 17, 2022
Kanata Bot - a modular bot running on python3 with anime theme and have a lot features

Kanata Bot Kanata Bot is a modular bot running on python3 with anime theme and have a lot features. Easiest Way To Deploy On Heroku This Bot is Create

Rikka-Chan 2 Jan 16, 2022
Morpheus is a telegram bot that helps to simplify the process of making custom telegram stickers.

😎 Morpheus is a telegram bot that helps to simplify the process of making custom telegram stickers. As you may know, Telegram's official Sti

Abhijith K S 1 Dec 14, 2022
Chatbot construido com o framework Rasa para responder dúvidas referentes ao COVID-19.

Racom Chatbot Chatbot construido com o framework Rasa. Como executar Necessário instalar Docker e Docker Compose. Para inicializar a aplicação, basta

Vinícius Souza 4 Jul 28, 2022
Estimate the total emissions for popular CryptoArt platforms.

cryptoart-footprint Estimate the total CO2 footprint for popular CryptoArt platforms. The goal is to accurately quantify the ecological damage of Ethe

Kyle McDonald 182 Oct 12, 2022
An automated bot for twitter using Tweepy!

Tweeby An automated bot for twitter using Tweepy! About This bot will look for tweets that contain certain hashtags, if found. It'll send them a messa

Ori 1 Dec 06, 2021