Arquiteturas de Software

Documentos relacionados
Desenvolvimento de Aplicações Embarcadas

Desenvolvimento de um Protótipo e de Metodologias de Controlo de uma Cadeira de Rodas Inteligente

Disciplina de. Programação de Robôs Móveis SSC-0712

Disciplina de Programação de Robôs Móveis SSC-0712

Sistema Experimental. Figura 40: Robô original de onde foram aproveitadas a base da estrutura de alumínio, motores, rodas e eletrônica de potência.

Internet das Coisas com Intel A2 Placas IoT.

Por Sergio Genilson Pfleger PLATAFORMA ROBÓTICA GENÉRICA BASEADA EM ARDUINO.

Introdução à robótica

Sérgio de Oliveira. Novatec

CONSTRUÇÃO DE UM ROBÔ MÓVEL COMO RECURSO DIDÁTICO NOS CURSOS DE ENGENHARIA

Proposta de uma plataforma de monitoramento e acionamento remoto voltada para sistemas de hardware industriais utilizando LabVIEW

ÍNDICE. Redes de Computadores - 1º Período de Cap 12 - Fls. 1

Introdução aos Sistemas Operacionais

Redes de Comunicação de Dados

SISTEMA DE TREINAMENTO EM ROBÓTICA MODELO: ED-7255

Microprocessadores e Microcontroladores. Professor Lucas Araujo do Nascimento

Redes para Automação Industrial: Introdução às Redes de Computadores Luiz Affonso Guedes

ARDUINO. Profº. Engº. Robson Dias Ramalho

SISTEMAS DISTRIBUÍDOS

Simulação de Robôs Móveis e Articulados: Aplicações e Prática. Fernando Santos Osório Rafael Alceste Berri

Arquiteturas de Redes de Computadores Os Modelos RM-OSI e TCP/IP. Prof. M.e Helber Wagner da Silva

Objetivos MICROCONTROLADORES HARDWARE. Aula 03: Periféricos. Prof. Mauricio. MICRO I Prof. Mauricio 1. Arquitetura de um Microcontrolador

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos

Microcontroladores e Robótica

SISTEMA DE AUTOMAÇÃO RESIDENCIAL: ACESSIBILIDADE NO CONTROLE DOMÉSTICO JASON SCALCO PILOTI

Sistemas Embarcados: Arduino e PCduino

EXPERIÊNCIA 4: IMPLEMENTAÇÃO DE UM CRONÔMETRO

Sistemas Operacionais Estrutura do Sistema Operacional. Arquiteturas do Kernel

Conceitos de Sistemas Distribuídos

SOFTWARES PARA CONTROLE DE ROBÔ CÂMERA

Sistemas Embarcados. Prof. Dr. Fábio Rodrigues de la Rocha. (Apresentação) 1 / 45

ESM SISTEMA CENTRALIZADO DE GESTÃO E CONTROLO PARA ILUMINAÇÃO DE EMERGÊNCIA ESM

Scaling Up Inclusion: Robotics, a STEM focused Project. Centro de Formação de Associação de Escolas Paços de Ferreira, Paredes e Penafiel

TÍTULO: AUTOMAÇÃO COM ELETRÔNICA EMBARCA APLICADA A ACESSIBILIDADE PARA CADEIRANTES

Terminal de Operação Cimrex 90

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

0 MAR/09 EMISSÃO INICIAL GC MRC MRC REV. DATA NATUREZA DA REVISÃO ELAB. VERIF. APROV. EMPREENDIMENTO: ÁREA: ELÉTRICA

Arduino. Gilmar Aquino

Fundamentos de Sistemas Operacionais de Arquitetura Aberta. CST em Redes de Computadores

Arquitetura do Microcontrolador Atmega 328

Arduino Básico: As versatilidades desta plataforma na prática

TECNOLOGIA EDUCACIONAL

Concursos Micro-Rato. Ciber-Rato

KIT DIDÁTICO PIC-2377

ü Na década de 1920 os dispositivos mecânicos foram substituídos pelos relés; ü O uso da lógica de relés dificultava modificações do processo;

Sistemas Operacionais. Visão Geral

ARDUINO E RASPBERRY PI : UMA COMPARAÇÃO DE ESPECIFICAÇÕES E APLICAÇÕES DE MINICOMPUTADORES

Estrutura do Sistema Operacional

// Arduino {? } Mais o que é?..

Gerência de Entrada e Saída

MINICURSO - PLATAFORMA ARDUINO Eixo de Informação e Comunicação Gil Eduardo de Andrade

Sistemas Operacionais Aula 3

Kit didático para controle de velocidade e posição de um motor de corrente contínua

KIT DIDÁTICO PARA MICROCONTROLADORES ARM7 - FAMÍLIA LPC 214X

Barramentos. Alguns sistemas reutilizam linhas de barramento para múltiplas funções; Dados Endereços Controle

Barramento CoreConnect

Evento: XXV SEMINÁRIO DE INICIAÇÃO CIENTÍFICA

Sistemas Distribuídos

Montagem do Robô. Especificações. domingo, 28 de agosto de 11

ezap 900 Controlador Lógico Programável ezap900/901 Diagrama esquemático Apresentação Módulo ZMB900 - Características Gerais Dados Técnicos

CONTROLE DE TRAÇÃO E DIREÇÃO DE UM VEÍCULO AUTÔNOMO NÃO TRIPULADO. Carla Real Amorim Cardoso Prof. Antônio Carlos Tavares - Orientador

Introdução aos Sistemas Operacionais. Subsistema de Entrada e Saída

Cinemática de Robôs Móveis

INTRODUÇÃO À ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Função e Estrutura. Introdução Organização e Arquitetura. Organização e Arquitetura

SISTEMA CNC APLICADO À CARACTERIZAÇÃO DE ACOPLAMENTO INDUTIVO

Profª Danielle Casillo

Caracterização de Sistemas Distribuídos

Prof. Mizael Cortez Modelo em camadas Arquitetura TCP/IP Modelo ISO/OSI

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ESTRUTURA DE UM SISTEMA OPERACIONAL PROFESSOR CARLOS MUNIZ

Gerência de Dispositivos. Adão de Melo Neto

Arduino Lab 02 Sensor de luminosidade e display de LCD 16 2

A c t i o n B u s i n e s s w w w. a c t i o n b u s i n e s s. c o m. b r Página 1

GERENCIAMENTO DE PROJETOS - 20h - EaD

Robot Operating System (ROS)

Sistemas Digitais: Introdução

Sistemas Operacionais. Prof. MSc. André Yoshimi Kusumoto

Transcrição:

Arquiteturas de Software Uma arquitetura de software define os componentes (módulos) que compõem a arquitetura, como estes componentes são estruturados topologicamente (camadas, pipelines, data-centric, etc.), o mecanismo de controle empregado (centralizado, hierárquico, etc.), as interfaces que os módulos expõem para interação e os protocolos utilizados nestas interações. A arquitetura em camadas é a mais comum e provê uma estruturação onde cada camada: agrega um conjunto de componentes; provê, por meio de uma ou mais interfaces, um conjunto de serviços para a(s) camada(s) superior(es); possui controle independente das demais camadas. 1 Exemplo de Arquitetura em Camadas Aplicações-fim Manipulação de Objetos Camada de Aplicação Cliente/Servidor Camada Executiva Troca de Mensagens Camada de Controle de Tempo Real Hardware 2

Camada de Controle de Tempo Real A camada de controle de tempo real interage diretamente com o hardware, que pode ser considerado uma camada abaixo desta (mas não pertencente à arquitetura). A interação com o hardware se dá por meio de registradores, barramentos e portas, por exemplo, interface serial RS-232, barramento I2C (InterIntegrated Circuit) e barramento SPI (Serial Peripheral Interface Bus). A camada de controle de tempo real tem suas funções comumente implementadas em microcontroladores como o Arduino e executa operações com período da ordem de milisegundos. Operações típicas incluem controladores de velocidade e deslocamento, filtragem, emissão de alarmes e geração de sinais (por exemplo, PWM) Esta camada provê uma interface para a camada executiva (via porta serial RS-232, rede Ethernet, etc.), bem como define um protocolo de interação tipicamente baseado em passagem de mensagens. 3 Camada Executiva As funções da camada executiva são comumente realizadas em processadores de pequeno e médio porte tais como Intel Atom e Raspberry Pi, com sistema operacional instalado (Linux, na maioria dos casos). Esta camada executa operações com período da ordem de centenas de milisegundos. Tais operações são implementadas com processos e threads (comumente em C/C++) e utilizam as funções providas pela camada de controle de tempo real. Operações típicas da camada executiva incluem sensoriamento, estimação, atuação, proteção e fusão de dados. A camada executiva provê uma interface de mais alto nível para a camada de aplicação baseada, tipicamente, em protocolos de comunicação cliente/servidor tais como RPC (Remote Procedure Call) e REST/HTTP. 4

Camada de Aplicação A camada de aplicação oferece funções de alto nível que são utilizadas pelas aplicações-fim. Note que esta camada não implementa as aplicaçõesfim, mas sim facilidades para a implementação conveniente e eficaz destas aplicações. As funções presentes nesta camada são dependentes do domínio de aplicação. Por exemplo, para a robótica móvel, funções de movimentação, percepção, atuação e interação. Esta camada executa em processadores mais poderosos (ou mesmo em uma nuvem) e são codificadas em linguagens de alto nível como o Matlab, Python e Java. Desta forma, a interface que esta camada oferece para as aplicações-fim são baseadas em objetos das linguagens de programação suportadas. Por exemplo, um scan de laser é retornado como um vetor na linguagem Matlab. 5 Exemplo: Robôs Pioneer do Curso Aplicações-fim Notebook/Desktop Matlab/Octave Manipulação de Objetos Camada de Aplicação RestThru APIs (Matlab) REST/HTTP/JSON Intel Atom c/ Linux Camada Executiva RestThru/ARIA (C++) RS-232 Microcontrolador 16 bits Camada de Controle de Tempo Real Hardware ARCOS Pioneer P3-DX 6

Exemplo: Robôs Pioneer do Curso A Camada Executiva baseada em ARIA pode operar no modo de locomoção direta (requisição-resposta) ou no modo de comportamentos concorrentes (denominado ações). Ações são comportamentos instalados no robô. Estes comportamentos podem ser configurados com um conjunto de parâmetros e, baseado nas leituras dos sensores proprioceptivos e estereoceptivos do robô, decidem quais velocidades e orientação pretendem para o robô. As velocidades e orientações propostas são combinadas de acordo com um algoritmo baseado em prioridades. Este algoritmo de combinação dos comportamentos pode ser substituído por outro programa fornecido pelo usuário. A operação por locomoção direta e por ações são mutualmente exclusivas. 7 Exemplo: Cadeira de Rodas Robotizada Hardware Cadeira de rodas motorizada da Freedom modelo SX: Dois motores DC com imã permanente de 50 A (max). Duas baterias de 24 V. Tração por correia. Locomoção manual por meio de joystick. 8

Hardware Acrescentado ARM-based R-Pi SOC Arduino microcontroller Sparkfun 9-dof IMU Rotary encoder Axis 212 PTZ network camera Sick TIM551 laser rangefinder Electromen PWM motor driver Ethernet switch 9 Interconexão do Hardware R-Py Arduino Sick TIM-511 Laser RF AXIS 212 Camera R-Py R-Py Serial Arduino Antena WiFi Wi-Fi Router D-Link Switch Tablet/Notebook 10

Camada de Controle de Tempo Real Encoder Esquerdo Encoder Direito USB Arduino Mega I2C Serial3 IMU Modelo Cinemático Odometria Velocidades Acelerações Dimensões, constantes 11 Camada de Controle de Tempo Real Comandos Ethernet Odometria Velocidades Acelerações Serial3 USB IR Array Botões de Emergência Arduino Mega PID Orientação bateria led PID Vel. Direita PID Vel. Esquerda Acionamento Roda Esquerda PWM Dimensões, constantes, parâmetros, limites Acionamento Roda Direita Bumpers Acionamento E D Sentido de rotação E D Freio motor 12

Camada de Controle de Tempo Real Protocolo de comunicação com o microcontrolador (request e reply): Requisição Resposta 1 2 3 4 5 Campos codificados em ASCII separados por espaço em branco. Sempre 5 parâmetros (mesmo que não necessário todos). Mensagens propagadas por UDP (User Datagram Protocol). Unidades dos parâmetros: Distâncias: milímetros sem parte decimal. Ângulos: graus multiplicado por 1000 (miligraus) sem parte decimal. Tempo: segundos. 13 Camadas Executiva e de Aplicação A Camada Executiva disponibiliza o servidor RestThru (sem o ARIA) e o núcleo do ROS (Robot Operating System). Foi desenvolvido um driver do ROS para o controle da cadeira por meio deste framework robótico. Esta camada permite a execução simultânea de aplicações desenvolvidas tanto para o RestThru quanto para o ROS e executa em um processador Raspberry Pi. Oferece as seguintes funcionalidades: comandos de movimentação; acesso à odometria, velocidades e status da cadeira robótica; leitura do laser; acesso à câmera. A Camada de Aplicação executa em um notebook e oferece funções para o controle da cadeira robótica a partir as linguagens Matlab/Octave, Java e C++ (RestThru) ou C++ apenas (ROS). 14

Vista Lateral 15 Vistas Frontal e Traseira 16