Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Desenvolvimento de um Robô Aspirador Autônomo em Simulação Real-Time

Este repositório contém o código-fonte para o projeto da disciplina de Sistemas de Tempo Real (2025/01) da Universidade de Brasília.

Autores: Gabriel Rabelo, Aysamake Ribeiro e Pedro Brum.

1. Descrição do Projeto

Este projeto consiste na simulação e controle de um robô aspirador autônomo. O objetivo é desenvolver um sistema reativo com comportamento determinístico, aplicando conceitos de sistemas de tempo real. A arquitetura é modular, implementada em

C++ com o middleware ROS 2, e o robô opera em um ambiente de simulação Gazebo.

As tarefas críticas de controle são gerenciadas com PThreads (POSIX Threads) e a integridade de dados concorrentes é garantida pelo uso de mutexes, assegurando que os requisitos temporais do sistema sejam atendidos.

Principais Funcionalidades

  • Navegação Autônoma: O robô é projetado para navegar em ambientes desconhecidos.
  • Detecção e Desvio de Obstáculos: Utiliza dados de um sensor LIDAR simulado para identificar e desviar de obstáculos em tempo real.
  • Controle de Tempo Real: Emprega uma arquitetura multithread com PThreads para gerenciar tarefas com diferentes prioridades e períodos.
  • Mapeamento (SLAM): A arquitetura prevê a integração com um nó de SLAM para construção de mapa em tempo real.
  • Gerenciamento de Bateria: Uma thread dedicada monitora o nível de bateria simulado para acionar um comportamento de retorno à base.

2. Configuração do Ambiente

Pré-requisitos

  • Ubuntu 22.04 LTS

  • ROS 2 Humble Hawksbill instalado

  • Gazebo e pacotes de integração com ROS 2:

    sudo apt update
    sudo apt install ros-humble-gazebo-ros-pkgs ros-humble-gazebo-plugins ignition-fortress
    

Instalação

  1. Clone este repositório para o diretório src do seu workspace ROS 2:

    cd ~/ros2_ws/src
    git clone https://github.com/GRabelo23/TrabalhoSTR.git
    
  2. Navegue para a raiz do workspace e compile o projeto:

    cd ~/ros2_ws
    colcon build
    

Como Executar a Simulação

Para executar o projeto, você precisará de dois terminais.

  1. Terminal 1: Iniciar a Simulação do Gazebo

    # Navegue até a pasta do seu workspace
    cd ~/ros2_ws
    
    # Ative o ambiente do ROS 2
    source install/setup.bash
    
    # Inicie a simulação (Gazebo com o mapa e o robô)
    ros2 launch trabalhoSTR gazebo_world.launch.py
    
  2. Terminal 2: Iniciar o Nó de Controle do Robô

    # Navegue até a pasta do seu workspace
    cd ~/ros2_ws
    
    # Ative o ambiente do ROS 2 neste novo terminal
    source install/setup.bash
    
    # Inicie o seu nó de controle
    ros2 run trabalhoSTR controller_node
    

About

Desenvolvimento de uma simulação de um robô aspirador autônomo com ROS

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages