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
A simple, fast, and awesome discord nuke bot! The only thing you need to add is your bot token.

SimpleNukeBot A simple, fast, and awesome discord nuke bot! The only thing you need to add is your bot token. Instructions: All you need to do is crea

Bisc 1 Apr 18, 2022
SimpleTelegramScraper - A python script scrapes accounts from public groups via Telegram API and saves them in a CSV file

SimpleTelegramScraper - the best scraper on GitHub This simple python script scr

Deniz Shabani 12 Oct 06, 2022
A telegram bot to monitor the latest NFT price on BSC.

NFT_Monitor This is a telegram bot for monitoring price and ranking of NFT on Binance Smart Chain. Can fetch latest ranking and price in real time. .P

Niko Pang 10 Oct 09, 2022
Nonebot2 简易群管

简易群管 ✨ NoneBot2 简易群管 ✨ _ 踢 改 禁 欢迎issue pr 权限说明:permission=SUPERUSER 安装 💿 pip install nonebot-plugin-admin 导入 📲 在bot.py 导入,语句: nonebot.load_plugin("n

幼稚园园长 74 Dec 22, 2022
Creating a Python API, for the MakeMyTrip Flight Schedules.

MakeMyTripAPI Creating a Python API, for the MakeMyTrip Flight Schedules. Source: MakeMyTrip is an Indian online travel company founded in 2000. Headq

Aman Priyanshu 0 Jan 12, 2022
Oussama has taken his first dose of vaccine D days ago

Oussama has taken his first dose of vaccine D days ago. He may take the second dose no less than L days and no more than R days since his first dose. Determine if Oussama is too early, too late, or i

INDIA - ENSAM Rabat 2 Feb 01, 2022
This bot will automatically like and follow users that post under a specified hashtag

Instagram-bot This bot will automatically like and follow users that post under a specified hashtag Dependencies Java JDK Selenium Updated version of

Makana Edwards 1 Nov 04, 2021
Archive tweets and make them searchable

Tweeter Archive and search your tweets and liked tweets using AWS Lambda, DynamoDB and Elasticsearch. Note: this project is primarily being used a tes

Kamil Sindi 8 Nov 18, 2022
Hydro Quebec API wrapper.

HydroQC Hydro Quebec API wrapper. This is a package to access some functionalities of Hydro Quebec API that are not documented. Documentation https://

Olivier BEAU 9 Dec 02, 2022
Program that automates the bump of the Disboard Bot. Done 100% in Python with PyAutoGUI library

Auto-Discord-Bump Program that automates the bump of the Disboard Bot done 100% in python with PyAutoGUI How to configue You will need 3 things before

Mateus 1 Dec 19, 2021
OpenSource bot for control groups ...

⭕️ کمک به افراد برای اداره هرچه فان تره گروه 📟 همه گروه های بزرگ نیاز به یه بات خفن دارن تا از گروه مراقبت کنه این بات کارش همینه سعی کرده فیچر خیلی

Mehran Alam Beigi 2 Nov 26, 2021
this is a telegram torrent bot

owner of this repo :- AYUSH contact me :- AYUSH Slam Mirror Bot This is a telegram bot writen in python for mirroring files on the internet to our bel

AYUSH 237 Dec 16, 2021
Pydapper - A pure python port of the NuGet library dapper

pydapper A pure python library inspired by the NuGet library dapper. pydapper is

Zach Schumacher 38 Jan 02, 2023
Discord bot written in discord.py

Orion Discord bot written in discord.py Installation Installation of code is supported for macOS only currently First open the terminal. If incase you

Zeus 3 May 19, 2022
Streaming Finance Data with AWS Lambda

A data pipeline consisting of an AWS lambda function reading data from yfinance API, an AWS Kinesis stream to receive & store data in S3 buckets and AWS Glue crawler & Athena to run SQL queries.

Aarif Munwar Jahan 4 Aug 30, 2022
LavaAPI - A simple library for accepting payments and using the LAVA Wallet

This library was created to simplify the LAVA api provided on the official websi

Vlad Baccara 8 Dec 18, 2022
Hermes Bytecode Reverse Engineering Tool (Assemble/Disassemble Hermes Bytecode)

hbctool A command-line interface for disassembling and assembling the Hermes Bytecode. Since the React Native team created their own JavaScript engine

Pongsakorn Sommalai 216 Jan 03, 2023
A qq bot based on nonebot2 and go-cqhttp

Asoul-bot A qq bot based on nonebot and go-cqhttp 你可以将bot部署在本地,也可以加入bot测试群:784280070(全体禁言) 你可以通过临时会话的方式向bot发送指令,输入help获取帮助菜单 本地部署请参考:https://zhuanlan.

11 Sep 23, 2022
This is a Telegram video compress bot repo. By Binary Tech💫

This is a Telegram Video Compress Bot. Prouduct By Binary Tech 💫 Features Compresse videos and generate screenshots too.You can set custom video name

silentz lk 2 Jan 06, 2022
An open-source, multipurpose, configurable discord bot that does it all

Spacebot is an open source discord bot that is designed to be fun, easy to use, and replace every other discord bot out there!! Feel free to add a star ⭐ to the repository to promote the project!

Dhravya Shah 41 Dec 10, 2022