Estudo Sobre Localização de Robôs Móveis com Rodas para Fins de Navegação Local

Tamanho: px
Começar a partir da página:

Download "Estudo Sobre Localização de Robôs Móveis com Rodas para Fins de Navegação Local"

Transcrição

1 UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE CENTRO DE TECNOLOGIA CURSO DE ENGENHARIA MECATRÔNICA BACHARELADO EM ENGENHARIA MECATRÔNICA Estudo Sobre Localização de Robôs Móveis com Rodas para Fins de Navegação Local Delano Augusto Lucena de Medeiros Costa Orientador: Prof. Dr. Marcelo Borges Nogueira Trabalho de Conclusão de Curso apresentado ao Curso de Engenharia Mecatrônica da Universidade Federal do Rio Grande do Norte como requisito parcial para a obtenção do grau de bacharel em Engenharia Mecatrônica. Natal, RN, Dezembro de 2016

2 Estudo Sobre Localização de Robôs Móveis com Rodas para Fins de Navegação Local Delano Augusto Lucena de Medeiros Costa Trabalho de Conclusão de Curso apresentado ao Curso de Engenharia Mecatrônica da Universidade Federal do Rio Grande do Norte como requisito parcial para a obtenção do grau de bacharel em Engenharia Mecatrônica. Prof. Dr. Marcelo Borges Nogueira (orientador) ECT/UFRN Prof. Dr. Pablo Javier Alsina DCA/UFRN Prof. Dr. Diogo Pinheiro Fernandes Pedrosa DCA/UFRN

3 A minha mãe por todo o incentivo e suporte durante toda a minha vida acadêmica

4 Agradecimentos Em primeiro lugar agradeço a Deus. Agradeço a toda minha família, por toda a ajuda que recebir durante todos esses anos, em especial ao meu avô Manoel de Afro (in menorian) e ao meu Tio Geraldo. Agradeço a minha mãe Maria Daguia e minhã irmã Tâmara Stephanie pelo apoio incondicional. Aos amigos que fiz durante a vida e no Curso, em especial a todos do DCA pelos inúmeros projetos juntos. Aos professores que tive durante toda a minha vida. Ao meu orientador, Professor Dr. Marcelo Borges Nogueira, sou grato pela orientação. Ao Professor Dr. Pablo Javier Alsina por todo o suporte oferecido pela coordenação do curso. A Gutemberg Santiago por todos os ensinamentos no laboratório de robótica do DCA. E a todo o quadro de funcionários do DCA da UFRN.

5 "Por ser estreita a senda - eu não declino, Nem por pesada a mão que o mundo espalma; Eu sou o senhor de meu destino; Eu sou o comandante de minha alma." (William Ernest Henley)

6 Resumo Este trabalho tem como objetivo realizar um estudo sobre localização de robôs móveis, uma área importante para a navegação em robótica, muitas vezes utilizada em conjunto com técnicas de mapeamento, para que seja possível realizar a Localização e Mapeamento Simultâneos (SLAM). O trabalho foi realizado inicialmente em simulações com o MATLAB e em seguida realizando experimentos com uma plataforma baseada em Arduino, com os resultados obtidos comprovando o funcionamento do sistema sendo demonstrados. O problema consiste em um robô móvel inserido em um ambiente em que ele conhece a sua posição inicial e as posições dos obstáculos desse local, dessa forma com o auxílio de sensores ele será capaz de se locomover nesse ambiente sabendo a sua localização com base na sua localização anterior e na localização dos obstáculos identificados. Para realizar essa navegação, o robô precisa processar os dados obtidos nos sensores, por isso optou-se por utilizar o Filtro de Kalman Estendido (EKF), que é um método matemático que produz estimativas dos valores reais de uma grandeza a partir de medições realizadas ao longo de um período, as quais podem conter ruídos. Trata-se de um método que realiza essas estimativas a cada iteração, comparando os dados medidos pelos sensores com os resultados esperados, fazendo assim uma atualização aproximada da localização do robô. Palavras-chave: SLAM, EKF, Localização, Mapeamento, MATLAB, Navegação, Robótica Móvel, Arduino.

7 Abstract This work aims to perform a study on the location of mobile robots, used for navigation in mobile robotics, often used together with mapping techniques, so that it is possible to perform the Simultaneous Localization and Mapping (SLAM). Initially applying in simulations with MATLAB and then performing practical tests, with results obtained proving the operation of the system being demonstrated. The problem consists of a mobile robot inserted in an environment that he knows its initial position and the positions of the obstacles of that place, so with the help of sensors, it will be able to move around in this environment, knowing its location based on its previous location and the location of the obstacles identified. In order to perform this navigation, the robot needs to process the data obtained in the sensors, so we opted to use the Extended Kalman Filter (EKF), which is a mathematical method that produces estimates of the actual values of measurements performed over a period, which may contain noise. It is a method that performs these estimates at each iteration, comparing the measured data in the sensors with the expected results, thus it makes an approximate update of the robot location. Keywords: SLAM, EKF, Location, Mapping, MATLAB, Navigation, Mobile Robotics, Arduino.

8 Sumário Sumário Lista de Figuras i iii 1 Introdução Objetivo Motivação Organização do Trabalho Localização, Mapeamento e SLAM Localização Mapeamento SLAM Método Desenvolvido neste Trabalho Algoritmos Utilizados para SLAM Considerações Finais Filtro de Kalman e Filtro de Kalman Estendido Filtro de Kalman Predição Observação Atualização Características do Filtro de Kalman Filtro de Kalman Estendido Predição Observação Atualização Considerações Finais Materiais e Métodos Simulações com o MATLAB Algoritmos Desenvolvidos Modelo do Veículo Hardware Plataforma móvel Arduino i

9 4.4.3 Acionamento dos Motores Sensor de Distância Joystick Encoder Notebook Visão geral do Hardware Considerações Finais Resultados e Discussões Testes de Odometria Experimentos com o Problema da Localização Considerações Finais Conclusões Trabalhos Futuros Referências Bibliográficas 35 A Código do algoritmo de Localização 37

10 Lista de Figuras 2.1 Problema da Localização: Um robô inserido em um mapa conhecido calculando sua localização ao longo do tempo Problema do mapeamento: Um robô inserido em um ambiente desconhecido, mas sabendo sua localização realizando o mapeamento Problema de SLAM: k é o tempo de execução, x k é a posição atual do robô, u k é o vetor de controle aplicado em k-1, m i é a posição atual do i-ésimo landmark e z k,i é a distância entre o robô e o i-ésimo landmark Filtro de Kalman: Resumo do seu funcionamento Algoritmo no MATLAB - Localização, onde o triângulo vermelho representa a posição real do robô, o triângulo azul a sua posição dada pelo Filtro de Kalman, as elipses vermelhas representam a incerteza e os asteriscos verdes representam os obstáculos Fluxograma de funcionamento do algoritmo desenvolvido Chassi utilizado CI L293D utilizado para acionamento dos motores HC-SR04 - Sensor de distância utilizado Joystick utilizado para controlar os motores DC Encoder utilizado para obter informações sobre odometria Diagrama de Blocos Ligações no Arduino Veículo Montado Veículo Para Frente Veículo de Ré Veículo Para Frente e Depois Ré Veículo Fazendo uma Curva Veículo Percorrendo um Quadrado Veículo com o Método da Localização Funcionando Erro calculo para X na matriz de covariância do EKF Erro calculo para Y na matriz de covariância do EKF Veículo percorrendo trajetória pré-estabelecida Erro calculo para X na matriz de covariância do EKF Erro calculo para Y na matriz de covariância do EKF Veículo e obstáculo iii

11 Capítulo 1 Introdução Nos últimos anos vem ocorrendo um grande avanço na área da robótica móvel. Com o desenvolvimento de hardwares e softwares cada vez mais potentes, esses sistemas robóticos vem a cada ano ficando mais robustos, realizando tarefas que antes seriam apenas realizadas por humanos. Esses robôs possuem a tarefa de navegar e interagir com o ambiente em que eles estão inseridos, usando para isso sensores e atuadores. Para que um robô seja capaz de movimentar-se de forma autônoma em um ambiente, é necessário utilizar alguma técnica de navegação para que não ocorra nenhum tipo de problema nessa interação. Dessa forma, o presente trabalho foi proposto para realizar o estudo sobre uma técnica que resolva o problema da localização, usando para isso o Filtro de Kalman Estendido. Utilizando essa técnica em conjunto com sensores conectados ao robô, o mesmo será capaz de localizar os obstáculos presentes no ambiente, assim os identificando e realizando a tarefa de saber onde ele se encontra atualmente nesse ambiente, mesmo que o seu ponto de partida não tenha sido definido de forma precisa. 1.1 Objetivo Este trabalho tem como objetivo realizar um estudo sobre localização de robôs móveis e como aplicá-la para realizar simulações e testes em situações reais. Para isso, serão introduzidos Landmarks (obstáculos) no ambiente para que ele possa investigar e processar os dados obtidos com os sensores utilizando o Filtro de Kalman Estendido, de forma a realizar a aproximação entre os valores lidos e os esperados, diminuindo assim os possíveis erros de leitura. 1.2 Motivação Com o avanço cada vez maior da tecnologia e consequentemente da robótica móvel, ficam ainda mais em evidência atividades realizadas por robôs autônomos, como as tarefas que devem ser feitas em locais que são de difícil acesso para humanos, por exemplo. Para isso, é necessário desenvolver formas cada vez mais robustas de navegação autônoma, de forma que esses robôs sejam capazes de irem onde sejam solicitados e realizem a tarefa desejada. Com base nisso, realizou-se este estudo com o objetivo de demonstrar para o

12 CAPÍTULO 1. INTRODUÇÃO 2 público em geral, de uma maneira simples, uma forma de utilizar a Localização como ponto de partida para realizar esse tipo de atividade. 1.3 Organização do Trabalho Este documento foi dividido nos seguintes capítulos e assuntos: No capítulo 2 será apresentada uma explicação geral sobre Localização, Mapeamento e SLAM; No capítulo 3 irá ser demonstrado o motivo da utilização e uma abordagem teórica sobre o Filtro de Kalman Estendido; No capítulo 4 será mostrado como foram realizadas as simulações, assim como o desenvolvimento das ferramentas utilizadas; O capítulo 5 traz os testes experimentais e resultados; O capítulo 6 será sobre a conclusão e a perspectiva de trabalhos futuros.

13 Capítulo 2 Localização, Mapeamento e SLAM Neste capítulo será apresentado uma visão geral sobre os métodos de navegação na robótica móvel, mostrando o problema de SLAM, como ele pode ser dividido e serão citados algoritmos capazes de resolver o problema. 2.1 Localização A posição em que se encontra o robô que navega por um determinado ambiente é a sua localização. Ela é dada com base nas informações que são obtidas do mapa e da distância para outros landmarks. É calculada geralmente utilizando a sua localização e/ou orientação anterior, as informações passadas pelo vetor de controle e a leitura obtida dos sensores. Para obter a localização de forma mais confiável, costuma-se usar as informações de sensores como sonares, sensores infravermelhos, com a odometria. O problema da localização é exemplificado por Newman[3] da seguinte forma: "é dado um mapa M contendo um conjunto de obstáculos e um fluxo de observações de medições entre o veículo e os obstáculos. Partimos do princípio que as associações entre as medições e os obstáculos observados são verdadeiras. Assumimos que o veículo que estamos navegando está equipado com um sensor de distância que retorna a distância para os obstáculos". O robô é inserido no ambiente em qualquer ponto, então ele começa a navegar identificando os obstáculos através dos sensores e calculando a distância que os separa de forma que sempre terá a sua posição atual no mapa. Podemos observar na figura 2.1 a resolução de um típico problema da localização. Os obstáculos estão representados pelos asteriscos verdes. O robô, representado pelo triângulo azul, é inserido no ambiente e faz sua primeira observação obtendo a sua localização e a incerteza dessa medição que é representada pelo círculo vermelho. Ao longo do tempo ele realiza mais observações e essa incerteza diminui cada vez mais, porém ao parar de realizar observações (esse momento é representado na figura conforme a elipse vermelha cresce) a sua incerteza volta a aumentar. Em seguida o robô volta a realizar novas observações dos obstáculos e a incerteza volta a diminuir novamente.

14 CAPÍTULO 2. LOCALIZAÇÃO, MAPEAMENTO E SLAM 4 Figura 2.1: Problema da Localização: Um robô inserido em um mapa conhecido calculando sua localização ao longo do tempo. Fonte: Disponível em EKF Based Navigation and SLAM: Background Material, Notes and Example Code[3] 2.2 Mapeamento Mapeamento de ambientes são realizados em várias áreas como geografia, geologia, construção civil, entre outras. Essa técnica é usada quando é necessário representar uma área previamente conhecida e geralmente é feito em uma escala diferente do ambiente representado, existindo dois tipos de mapeamento que são o topológico e o métrico. Neste trabalho iremos utilizar o mapeamento métrico, que consiste na representação métrica do ambiente, onde são respeitados o tamanho e as distâncias entre os objetos inserido nele. Podemos exemplificar o problema do mapeamento em robôs da seguinte forma: imagine um robô equipado com um GPS, de forma que mesmo que ele não tenha um mapa do local, saberá a sua localização aproximada. Portanto, a partir da sua localização atual ele fará leituras dos seus sensores e passará a identificar os obstáculos e a partir disso dará início a construção do mapa. A figura 2.2 demonstra o problema, onde os asteriscos verdes representam os obstáculos. O veículo é inserido em um ambiente desconhecido onde ele conhece a sua localização. Com isso ele navega pelo ambiente e realiza observações dos obstáculos para formar o mapa do ambiente, que de início possuem grandes

15 CAPÍTULO 2. LOCALIZAÇÃO, MAPEAMENTO E SLAM 5 incertezas representadas pelas elipses pretas. Quanto mais ele navegar por esse ambiente, mais observações irão ser realizadas e as incertezas desse mapa irão diminuir. Figura 2.2: Problema do mapeamento: Um robô inserido em um ambiente desconhecido, mas sabendo sua localização realizando o mapeamento. Fonte: Disponível em EKF Based Navigation and SLAM: Background Material, Notes and Example Code[3] 2.3 SLAM A navegação de robôs é um problema difícil de ser resolvido e é definido por Latombe[1] da seguinte forma: "A construção autônoma de modelo é uma questão fundamental na robótica móvel. Basicamente o problema é: depois de inserido em um ambiente desconhecido, um robô, ou uma equipe de robôs, deve executar operações com os sensores em vários locais e integrar os dados adquiridos em uma representação do ambiente. No entanto, na prática, este problema acaba por ser difícil. Primeiro, é preciso escolher uma representação adequada do ambiente - por exemplo, mapas topológicos, layouts poligonais, grades de ocupação, modelos tridimensionais ou mapa baseados em obstáculos. Em segundo lugar, essa representação deve ser extraída das leituras imperfeitas de sensores. Finalmente, para ser verdadeiramente autônomo, o robô deve decidir por si próprio os movimentos necessários para construir o modelo".

16 CAPÍTULO 2. LOCALIZAÇÃO, MAPEAMENTO E SLAM 6 A Localização e Mapeamento Simultâneos (Simultaneous Localization and Mapping - SLAM) é o problema que pergunta se é possível que um robô movél seja colocado em um local desconhecido que faz parte de um ambiente desconhecido e ele construa incrementalmente um consistente mapa deste ambiente, ao mesmo tempo que determina a sua localização dentro deste mapa [2]. Basicamente, ele consiste na possibilidade de um robô móvel sem nenhuma informação anterior ser capaz de movimentar-se em um ambiente e, a partir disso, ser capaz de construir um mapa com as informações obtidas. Além disso, ele deve ser capaz de saber qual a sua localização nesse mapa e assim planejar sua trajetória durante o processo de mapeamento [3]. Portanto, é um processo que ocorre de forma paralela, a medida que o robô vai obtendo informação para construir um mapa do ambiente em que ele se encontra, é necessário usar essas informações para saber em que ponto ele estar inserido nesse ambiente. Para que o veículo seja capaz de obter os dados para realizar o mapeamento e localização é necessário que ele obtenha isso do ambiente. Ou seja, o veículo deverá ser equipado com atuadores e sensores, para que seja capaz de encontrar e identificar obstáculos, se locomover e coletar as informações de odometria geradas e processar todos esses dados. Figura 2.3: Problema de SLAM: k é o tempo de execução, x k é a posição atual do robô, u k é o vetor de controle aplicado em k-1, m i é a posição atual do i-ésimo landmark e z k,i é a distância entre o robô e o i-ésimo landmark. Fonte: Durrant-Whyte e Bailey [2] Podemos definir o processo da seguinte forma: o veículo móvel é colocado em um ambiente desconhecido, sem nenhuma informação prévia. Em seguida, ele faz uma busca por obstáculos pelo local para obter informações deles como, por exemplo, distância e orientação e assim ir formando o mapa. Com base nas informações obtidas dos obstáculos

17 CAPÍTULO 2. LOCALIZAÇÃO, MAPEAMENTO E SLAM 7 ele encontra sua própria localização nesse mapa e por fim se movimenta no ambiente e volta a procurar obstáculos reiniciando o ciclo. Esse exemplo pode ser conferido na figura 2.3 de Durrant-Whyte e Bailey [2], onde é feita a comparação entre as posições reais (branco) e estimadas (amarelo e azul). 2.4 Método Desenvolvido neste Trabalho Para uma boa introdução no estudo sobre navegação, foi escolhido para ser desenvolvido neste trabalho uma resolução para o problema da localização, já que o esforço computacional utilizado para esse problema não é grande e por apresentar uma menor complexidade em relação ao SLAM. O grande problema encontrado neste trabalho foi a identificação dos obstáculos que ainda não funciona de forma satisfatória, porém no futuro com a adição de melhores ferramentas para fazer essa identificação, o SLAM poderá ser implementado. 2.5 Algoritmos Utilizados para SLAM Ao longo do tempo foram desenvolvidos alguns algoritmos com base no filtro de Bayes para que fosse possível utilizar o SLAM em robôs móveis. Dentre eles podemos citar o Extended Information Form SLAM (EIF SLAM), Filtro de partículas, Filtro de Kalman e o Filtro de Kalman Estendido[16]. Abordaremos sobre uma variação bastante utilizada do filtro de Bayes no próximo capítulo, o Filtro de Kalman Estendido (EKF), algoritmo utilizado nesse trabalho que foi escolhido por ser simples de aplicar e funcionar bem, tanto para localização como mapeamento, e por consequência no SLAM também. Apesar de exigir um grande esforço computacional conforme o número de landmarks aumenta, esse algoritmo é muito utilizado por apresentar bons resultados e foi desenvolvido a partir do Filtro de Kalman, pois ele só trabalha com sistemas lineares. 2.6 Considerações Finais Ao longo desse capítulo, vimos uma explicação sobre o que é SLAM e quais os problemas que precisam ser resolvidos para que a técnica seja aplicada em um veículo. Costuma-se dividir o problema em dois (localização e mapeamento) como foi apresentado para que sejam entendidos e resolvidos de forma isolada e assim a sua aplicação seja feita de forma mais rápida, pois a dificuldade é bem maior quando é utilizado o SLAM em vez da localização ou mapeamento isolados. Ao final do capítulo podemos notar a importância do tema na área da robótica, pois com o desenvolvimento de sistemas cada vez mais autônomos, como robôs que são enviados para explorar outros planetas, ou submarinos para acessar áreas remotas do oceano, é cada vez mais necessário que os sistemas de navegação desses robôs sejam robustos e capazes de fornecer dados para tomadas de decisões importantes.

18 Capítulo 3 Filtro de Kalman e Filtro de Kalman Estendido Neste capítulo será mostrado uma explicação sobre como funcionam o Filtro de Kalman e o Filtro de Kalman Extendido. 3.1 Filtro de Kalman O Filtro de Kalman foi desenvolvido por Rudolf Kalman, e trata-se de um método matemático recursivo que trabalha com a realização de medições de sistemas dinâmicos lineares[17]. O algoritmo é dividido em três partes: predição, observação e atualização. Ele utiliza um modelo dinâmico de um sistema, os sinais de controle enviados e os valores obtidos nos sensores para realizar suas estimativas. Vamos definir um modelo para o Filtro de Kalman de um sistema linear como: x(k) = Fx(k 1) + Bu(k) + Gv(k) (3.1) z = Hx + w (3.2) Onde: x(k): é o vetor de estado que descreve a localização e a orientação do veículo; F: é a matriz de transição de estados; B: é o modelo das entradas de controle; u(k): é o vetor de controle com as entradas; Gv(k): é o ruído do processo com covariância Q k ; z: é o vetor de observação; H: é o modelo de observação; w: é o ruído da observação com covariância R k.

19 CAPÍTULO 3. FILTRO DE KALMAN E FILTRO DE KALMAN ESTENDIDO Predição O algoritmo primeiro realiza a predição do estado antes da próxima observação. As equações que definem essa etapa são dadas por: ˆx(k k 1) = F ˆx(k 1 k 1) + Bu(k) (3.3) P(k k 1) = FP(k 1 k 1)F T + GQG T (3.4) Onde a primeira equação calcula o valor do estado e a segunda a sua covariância, que significa a incerteza do veículo em sua localização Observação A observação é feita usando as seguintes equações: v(k) = z(k) H ˆx(k k 1) (3.5) S = HP(k k 1)H T + R (3.6) Onde a primeira equação calcula a inovação, a segunda sua covariância e R representa a covariância do ruído de observação Atualização Por último é feita a atualização. É necessário deixar claro que caso o robô não faça nenhuma observação no período atual, não é necessário que o passo da atualização seja realizado. As equações que definem esse passo são: W(k) = P(k k 1)H T S 1 (3.7) ˆx(k k) = ˆx(k k 1) + W(k)v(k) (3.8) P(k k) = P(k k 1) W(k)SW(k) T (3.9) Onde a primeira é o ganho ótimo de Kalman, a segunda representa o estado atualizado e a terceira a sua covariância estimada Características do Filtro de Kalman Paul Michael Newman cita em EKF Based Navigation and SLAM[3] as características desse algoritmo, que são: Ele é recursivo, ou seja, a saída de uma iteração entra na próxima;

20 CAPÍTULO 3. FILTRO DE KALMAN E FILTRO DE KALMAN ESTENDIDO 10 Terão que ser fornecidas as estimativas iniciais em ˆx(0 0) e P(0 0), ou seja, a localização e as incertezas iniciais; A inovação é a diferença entre a observação real e a observação prevista; A atualização não precisa ser feita se nenhuma observação for realizada, logo a melhor estimativa para aquele momento é a predição; Os elementos da diagonal da matriz de covariância P são as principais incertezas em cada um dos elementos do vetor de estado. Podemos ver abaixo um resumo de como funciona o algoritmo também presente em EKF Based Navigation and SLAM[3]. Figura 3.1: Filtro de Kalman: Resumo do seu funcionamento

21 CAPÍTULO 3. FILTRO DE KALMAN E FILTRO DE KALMAN ESTENDIDO Filtro de Kalman Estendido O Filtro de Kalman Estendido foi desenvolvido com base no Filtro de Kalman por causa que a maioria das aplicações requerem o uso de modelo não lineares. É definido como um método matemático que produz estimativas dos valores reais de medições realizadas ao longo de um período, as quais podem conter ruídos. Assim como no Filtro de Kalman, este algoritmo também é dividido em três partes: predição, observação e atualização. Vamos começar definindo o sistema não-linear como: x(k) = f(x(k 1),u(k),k) + v(k) (3.10) z(k) = h(x(k),u(k),k) + w(k) (3.11) Onde: x(k): é o vetor de estado que descreve a localização e a orientação do veículo; f(): é o modelo de transição de estados; u(k): é o vetor de controle com as entradas; v(k): é o vetor de erro de ruído do processo com covariância Q k ; z(k): é o vetor de observação; h(): é o modelo de observação; w(k): é o vetor de ruído da observação e com covariância R k Predição O primeiro passo do algoritmo é a predição. A mesma é calculada com base nas seguintes equações, onde a primeira faz a predição do estado e a segunda a predição da covariância: ˆx(k k 1) = f( ˆx(k 1 k 1),u(k),k) (3.12) P(k k 1) = F x P(k 1 k 1) F T x + G V Q G T V (3.13) Onde: f 1 f 1 F x = f x = x 1 x m..... f n f n. x 1 x m

22 CAPÍTULO 3. FILTRO DE KALMAN E FILTRO DE KALMAN ESTENDIDO Observação Após a predição, o algoritmo inicia a observação com base nas seguintes equações, onde primeiro calcula a inovação e em seguida a sua covariância: v(k) = z(k) H(k) ˆx(k k 1) (3.14) Onde: R é a covariância do ruído de observação; h 1 h 1 H x = h x = x 1 x m..... h n h n. x 1 x m S = H x P(k k 1) H T x + R (3.15) Atualização Por último ocorre a etapa de atualização, definido pelas seguintes equações: W = P(k k 1) H T x S 1 (3.16) ˆx(k k) = ˆx(k k 1) + Wv(k) (3.17) P(k k) = P(k k 1) WSW T (3.18) Onde a primeira é o ganho ótimo de Kalman, a segunda representa o estado do sistema atualizado e a terceira a sua covariância estimada Considerações Finais Neste capítulo foi explicado como funcionam o Filtro de Kalman e o Filtro de Kalman Estendido. Vimos as características presentes no Filtro de Kalman e consequentemente também presentes no EKF. Com base nisso, podemos notar que a sua implementação não é tão complicada como foi dito anteriormente, além de se tratar de uma ferramenta bastante útil para resolver o problema de SLAM.

23 Capítulo 4 Materiais e Métodos Neste capítulo irá ser mostrado o desenvolvimento do trabalho. Para isso, o problema da localização foi escolhido para ser desenvolvido e utilizado no restante do trabalho, pois ele exemplifica como funciona parte do SLAM, podendo ser adaptado posteriormente para funcionar dessa maneira. 4.1 Simulações com o MATLAB Para compreender melhor como funciona a Localização, foi utilizado o algoritmo para MATLAB desenvolvido em EKF Based Navigation and SLAM[3]. Como demonstrado anteriormente, na Localização é fornecido o mapa com a localização dos obstáculos ao veículo para que ele seja capaz de fazer as observações desses obstáculos e assim obter a sua localização no ambiente. Essa é a localização obtida tratando o ambiente como 2D e o vetor de estados é composto pela sua posição X, Y e pela orientação θ. Podemos ver um exemplo do algoritmo sendo executado na figura 4.1. Ainda observando a figura 4.1, a posição inicial do veículo foi definida em [ ] T, onde o primeiro valor representa o eixo X, o segundo o eixo Y, ambos em centímetro, e o terceiro o ângulo θ em graus. Podemos ver que tanto a posição real representada pelo triângulo de cor vermelha como a posição estimada pelo Filtro de Kalman representada pelo triângulo azul coincidem bastante, mesmo que no código sejam introduzidos ruídos na leitura da odometria e no sensor que faz as observações dos obstáculos. Em determinado momento essas posições começam a divergir e as incertezas representadas pelas elipses vermelhas crescem, pois o algoritmo para propositalmente de fazer observações, porém ao recomeçar a observação dos obstáculos representados pelos asteriscos verdes, nota-se que a posição real e estimada voltam a se aproximar bastante. Com base nesse algoritmo, podemos ver que o Filtro de Kalman funciona muito bem para a situação em estudo, onde o mapa com os seus obstáculos são conhecidos. Mesmo ele simulando essa falha no sensor de distância, uma situação que pode realmente acontecer em situações práticas, o veículo consegue obter novamente sua localização com as observações posteriores e assim ter valores bem próximos dos valores reais.

24 CAPÍTULO 4. MATERIAIS E MÉTODOS 14 Figura 4.1: Algoritmo no MATLAB - Localização, onde o triângulo vermelho representa a posição real do robô, o triângulo azul a sua posição dada pelo Filtro de Kalman, as elipses vermelhas representam a incerteza e os asteriscos verdes representam os obstáculos. Fonte: Elaborado pelo autor 4.2 Algoritmos Desenvolvidos Com base no algoritmo para MATLAB desenvolvido por Newman, foi desenvolvido um algoritmo em C++ afim de ser utilizado para o trabalho. Enquanto que no MATLAB se tem uma facilidade para trabalhar com matrizes e vetores, isso não acontece em C++. Então foi necessário encontrar uma forma de utilizá-los no código desenvolvido sem que fosse algo complexo. Para isso a biblioteca Eigen[4] foi escolhida para auxiliar nessa tarefa. Essa biblioteca permite criar variáveis, sejam matrizes ou vetores, e realizar operações com elas através de funções já implementadas. Resolvendo os problemas que possam aparecer de álgebra linear, trata-se de uma ferramenta bastante poderosa e versátil que foi usada para resolver várias questões neste trabalho e que pode ser aplicada em diversos outros sem muita complexidade. Com isso o código pôde ser desenvolvido de forma eficiente e pode ser visto no apêndice. Podemos ver de que forma ele funciona na figura 4.2. No primeiro bloco são fornecidas as informações iniciais para realizar a localização. Em seguida, o segundo bloco é onde ocorre a comunicação do computador com o Arduino para receber as informa-

25 CAPÍTULO 4. MATERIAIS E MÉTODOS 15 ções obtidas dos sensores para odometria e de possíveis observações. Essa comunicação acontece via porta serial e é programada para que o Arduino acumule as informações de odometria enquanto não for solicitado. Com as informações de odometria obtidas, é realizada a etapa de predição do EKF no terceiro bloco. No quarto bloco temos a verificação se alguma observação válida de algum obstáculo foi feita. Caso ocorra uma observação válida, o algoritmo identifica qual o obstáculo observado para que as etapas de observação e atualização do EKF sejam aplicadas e assim seja possível obter um novo valor para a posição estimada do robô. No bloco seguinte, caso nenhuma observação tenha sido feita na iteração atual e não tenha ocorrido a atualização da posição estimada do robô no passo anterior, a posição estimada do robô é a que foi calculada na etapa de predição e o laço reinicia com o algoritmo pedindo novamente os dados ao Arduino. Figura 4.2: Fluxograma de funcionamento do algoritmo desenvolvido. Fonte: Elaborado pelo autor Durante o desenvolvimento do algoritmo, surgiu o problema da identificação dos obstáculos. Como iria ser utilizado o sensor ultrassônico para fazer essa identificação, foi necessário desenvolver uma estratégia para que funcionasse da maneira correta. Então foi implementada no código uma função que calcula as distâncias entre a posição estimada atual do veículo com a posição de cada obstáculo. Feito esse cálculo, o algoritmo escolhe o obstáculo que possui a menor distância do veículo. Para que essa solução funcionasse corretamente, foi necessário restringir a distância que o veículo faz uma observação e não deixar obstáculos próximos uns dos outros, pois o principal problema que poderia surgir seria se uma observação fosse feita com a mesma distância para dois obstáculos. Além de medir a distância para o obstáculo, também seria necessário medir o ângulo de observação, no entanto como o sensor ultrassônico foi colocado na frente do robô, este ângulo sempre será constante e igual a zero. A equação usada para calcular essa distância

26 CAPÍTULO 4. MATERIAIS E MÉTODOS 16 para cada obstáculo é mostrada a seguir, onde PosX e PosY são as coordenadas em X e Y da posição estimada do veículo e ObsX e ObsY são as coordenadas em X e Y de cada obstáculo. distancia = (PosX ObsX) 2 + (PosY ObsY ) 2 (4.1) Também foi necessário desenvolver um algoritmo para o Arduino, já que ele é responsável por todos os sensores e atuadores do veículo. Foi necessário o uso de interrupções para contar cada pulso dos encoders, pois assim o código é interrompido em qualquer parte do laço de repetição e nenhuma informação de odometria é perdida. A cada laço ele checa se existe algum obstáculo a frente do veículo para também armazenar o valor da distância entre eles e enviar para o computador, caso seja solicitado os dados nessa iteração. Outro dado armazenado pelo algoritmo é o tempo decorrido desde a última comunicação via serial com o computador, pois essa informação é necessária para os cálculos de odometria. Em razão da forma que o modelo foi construído, ao ser solicitado pelo computador via porta serial para enviar os dados armazenados e assim os enviar, o algoritmo zera os pulsos dos encoders armazenados para recomeçar a contagem. 4.3 Modelo do Veículo O veículo utilizado neste trabalho possui 4 rodas. Para facilitar, foi considerado que as duas rodas da esquerda são uma só, assim como as duas da direita, representando assim um modelo uniciclo. Para o caso desenvolvido neste trabalho, a localização é feita em 2D, portanto seu vetor de estado é definido como: X v = [x v y v θ v ] T (4.2) O modelo de uniciclo mais comum encontrado na literatura é mostrado na próxima equação, onde v é a velocidade linear do veículo e v θ a velocidade angular[17]. ẋ v vcos(θ v ) ẏ v = vsin(θ v ) (4.3) θ v v θ Fazendo algumas considerações e decompondo a equação anterior, chegamos na seguinte equação para esse modelo: x v y v θ v = v x cosθ v v y sinθ v v x sinθ v + v y cosθ v v θ (4.4) Podemos ver a seguir a equação que nos fornece a função de movimento discreto do veículo: X v (k + 1) = f v (X v (k),u(k)) (4.5)

27 CAPÍTULO 4. MATERIAIS E MÉTODOS 17 Os Jacobianos dessa função para as variáveis de estado e de controle são respectivamente: 1 0 v x (k)sinθ v (k) v y (k)cosθ v (k) D Xv f = 0 1 v x (k)cosθ v (k) v y (k)sinθ v (k), (4.6) cosθ v (k) sinθ v (k) 0 D u f = sinθ v (k) cosθ v (k) 0. (4.7) Como foi considerado que as duas rodas da esquerda são uma só, assim como as da direita, foram utilizados dois encoders, um em cada roda dianteira. Com esse modelo adotado, foi notado a existência de um problema. O problema notado foi que os motores, apesar de serem semelhantes, não possuem rotações idênticas, portanto as duas rodas do mesmo lado do veículo não giram na mesma velocidade, o que pode acabar gerando uma discrepância nos dados da odometria. Uma implicação deste problema é que as rodas da direita e da esquerda também não possuem as mesmas rotações, fazendo com que o veículo não se movimente totalmente em linha reta, porém a odometria é capaz de fornecer essa diferença. 4.4 Hardware Plataforma móvel Foi escolhido o Kit Chassi 4WD que pode ser visto na figura 4.3 para utilizar como veículo móvel. Suas especificações são: 02 - Chassi em acrílico; 04 - Motores DC (3-6v); 04 - Rodas de Borracha; 04 - Discos de Encoder Arduino O Arduino é uma plataforma eletrônica de código livre que pode ser usado em projetos variados. Sua linguagem de programação é de fácil aprendizado, além de comunicar-se facilmente com computadores, sensores e atuadores. Foi escolhido para este trabalho pela facilidade em utilizá-lo como intermediário entre os sensores, os atuadores e o computador para o qual os valores lidos serão enviados para a realização da localização Acionamento dos Motores Para simplificar, foi definido que os dois motores da esquerda recebem o mesmo sinal de controle, assim como os dois da direita. Para realizar esse controle foi utilizado o

28 CAPÍTULO 4. MATERIAIS E MÉTODOS 18 Figura 4.3: Chassi utilizado. Fonte: Elaborado pelo autor CI L293D [6] que pode ser visto na figura 4.4. O mesmo foi escolhido pelos seguintes motivos: Possui duas pontes H em um único CI, onde uma foi utilizada para os motores da direita e outra para os da esquerda; Suporta até 1,2A; Suporta dois motores de até 36V; Já vem com os diodos de proteção. Figura 4.4: CI L293D utilizado para acionamento dos motores. Fonte:

29 CAPÍTULO 4. MATERIAIS E MÉTODOS Sensor de Distância Para realizar as medições da distância que o veículo está dos obstáculos, foi utilizado o sensor ultrassônico HC-SR04 [7] similar ao mostrado na figura 4.5. O mesmo permite medir distâncias de 2 centímetros até 5 metros, no entanto é recomendável utilizá-lo para medições abaixo de 1 metro para que sejam medidos valores mais precisos. Este sensor emite um sinal ultrassônico (trigger) que reflete em um objeto e retorna ao sensor (echo). Com esse sinal de retorno captado é possível medir a distância para o objeto através do tempo que o sinal levou entre ser emitido e refletido. Depois de realizar algumas medidas com o sensor, foi notado que o erro aumentava cada vez mais conforme a distância medida fosse maior. Para corrigir esse problema, foram feitos alguns testes com distâncias variadas para que fosse possível traçar um gráfico composto de um eixo com as distâncias esperadas e de outro com as distâncias medidas, e a partir dos pontos de interseção existentes foi traçado uma reta para descobrir a equação que passava o mais próximo possível de todos esses pontos, método conhecido como Método dos Mínimos Quadrados (MMQ). A equação obtida e inseria no código em C++ para dar a distância corrigida foi: D = dmedida; (4.8) Onde D é a distância aproximada e dmedida é a distância medida no sensor. Figura 4.5: HC-SR04 - Sensor de distância utilizado. Fonte: Joystick Os motores do veículo são acionados pelo módulo Joystick Arduino 3 Eixos [8] que pode ser observado na figura 4.6. O mesmo possui dois potenciômetros que são referenciados para o eixo X e Y, além do botão que pode ser pressionado e é utilizado para o eixo Z que não foi utilizado neste trabalho. Para utilizar esse módulo, é necessário ligar seus pinos X e Y em portas analógicas e o Z em uma digital Encoder Para termos controle sobre a odometria do veículo, que é uma informação necessária para este trabalho, utilizou-se o sensor de velocidade LM393[9]. Ele é acoplado no carrinho, de forma que o disco de encoder que está girando junto com o eixo do motor passe

30 CAPÍTULO 4. MATERIAIS E MÉTODOS 20 Figura 4.6: Joystick utilizado para controlar os motores DC. Fonte: entre ele e interrompa o feixe de luz infravermelha e assim ele possa contar a quantidade de pulsos. Com essa quantidade de pulsos, juntamente com o número de pulsos por volta do disco, o tempo gasto e o raio do disco, calcula-se a velocidade por segundo do veículo. Figura 4.7: Encoder utilizado para obter informações sobre odometria. Fonte: Notebook Responsável por executar o algoritmo da Localização recebendo os dados dos sensores via porta serial pelo Arduino. É onde os dados enviados pelo arduino são tratados, utilizando os mesmos no algoritmo da Localização e assim obtendo a posição atual do veículo. O programa é executado no notebook com um Sistema Operacional Linux, portanto pode ser utilizado em outras máquinas com esse mesmo tipo de sistema sem precisar de adaptação no código, além de poder ser substituído por uma placa Raspberry ou Beagleboard, por exemplo. Para realizar a comunicação serial entre o Arduino com um Linux, foi utilizado a biblioteca arduino-serial[10]. 4.5 Visão geral do Hardware Na figura 4.8 é apresentada uma visão geral de como os componentes do Hardware interagem. O Arduino atua recebendo informações do sensor ultrassônico, do joystick e

31 CAPÍTULO 4. MATERIAIS E MÉTODOS 21 dos encoders, ao mesmo tempo que envia os sinais para o CI L293D controlar os motores do veículo. Também está representado a comunicação via porta serial entre o Arduino e o computador, pois ao solicitar as informações do Arduino, o computador envia um sinal para que a comunicação seja liberada e o Arduino responde enviando os dados. Já a figura 4.9 apresenta o diagrama elétrico do trabalho com todas as ligações que foram feitas entre o Arduino e os componentes utilizados na montagem do veículo. Por último, na figura 4.10 temos o veículo pronto para a realização dos testes. Figura 4.8: Diagrama de Blocos. Fonte: Elaborado pelo autor 4.6 Considerações Finais Neste capítulo, foram mostradas as ferramentas utilizadas para desenvolver o trabalho. Vimos a importância da biblioteca Eigen para o código desenvolvido em C++, assim como todo o hardware utilizado para a parte prática, com breve explicações da motivação para o uso de cada componente. Com base no que foi desenvolvido e utilizado neste capítulo, podemos passar para o capítulo seguinte que trata de testes e resultados.

32 CAPÍTULO 4. MATERIAIS E MÉTODOS 22 Figura 4.9: Ligações no Arduino. Fonte: Elaborado pelo autor

33 CAPÍTULO 4. MATERIAIS E MÉTODOS 23 Figura 4.10: Veículo Montado. Fonte: Elaborado pelo autor

34 Capítulo 5 Resultados e Discussões Neste capítulo serão mostrados e comentados todos os testes feitos com o software e hardware desenvolvidos. 5.1 Testes de Odometria Depois do protótipo de robô montado, os primeiros testes realizados foram para ver se a odometria estava funcionando de forma aceitável. O algoritmo desenvolvido foi alterado para que trabalhasse apenas com as informações de odometria. Para isso foi realizado testes com o robô andando apenas para frente, depois apenas para trás e por último para frente e para trás. Todos os testes de odometria foram realizados partindo da posição [ ] T, onde as posições X e Y estão em centímetros e a posição θ é dada em graus. Os gráficos obtidos foram os seguintes, mostrados nas figuras 5.1, 5.2 e 5.3: Figura 5.1: Veículo Para Frente. Fonte: Elaborado pelo autor

35 CAPÍTULO 5. RESULTADOS E DISCUSSÕES 25 Figura 5.2: Veículo de Ré. Fonte: Elaborado pelo autor Figura 5.3: Veículo Para Frente e Depois Ré. Fonte: Elaborado pelo autor Na figura 5.1 podemos observar a trajetória do veículo para frente, onde o ponto de chegada ideal seriam os valores de 10 cm no eixo X e 80 cm no eixo Y. Foi verificado antes de realizar os testes, que as rodas tem uma diferença na velocidade como mencionado anteriormente, portanto o veículo acaba não indo totalmente reto. Porém existiu uma maior diferença neste figura, onde foi verificado o que causou esse problema. As conexões

36 CAPÍTULO 5. RESULTADOS E DISCUSSÕES 26 que conectam o Arduino aos sensores parecem causar um pouco de ruído umas nas outras, o que ocasiona o problema de que quando as rodas estão indo nessa direção, um encoder conta alguns pulsos a mais do que o outro por volta, levando a pensar que o veículo estava fazendo uma curva. No entanto, ao trocarmos alguns conectores de lugares, esse efeito foi contornado. Portanto, em vez da figura mostrar uma curva suave que seria resultado da pequena diferença entre as velocidades de rotações dos motores, acabou mostrando uma curva maior, pois os dados da odometria foram contaminados com o problema mencionado. Em relação ao eixo Y, a odometria obteve a coordenada 82.6 cm no ponto de chegada, obtendo assim um erro relativo de 3.25%. Já em relação ao eixo X que obteve a coordenada cm, devido ao problema relatado acima, o erro relativo foi de 271%, mostrando que o mesmo comprometeria o sistema caso não fosse solucionado. Na figura 5.2, o ponto de chegada ideal seriam os valores 10 cm no eixo X e -60 cm no eixo Y. O erro relativo ao eixo X, onde a informação de odometria forneceu a coordenada -2.1, foi de 121%. Já em relação ao eixo Y, onde a coordenada final foi de -67.6, o erro foi de 12.6%. É importante ressaltar que esses valores calculados para os erros acima estão contaminados pelo problema detectado, portanto acabou gerando valores altos, já que esses dados acabam dando a informação que o robô esta fazendo uma curva, e não em linha reta. Já na figura 5.3, com o problema mencionado acima já resolvido, foi realizado um teste onde o objetivo era ir para frente e para trás com o veículo e parar no ponto de partida, para ver como a odometria se comportava. No eixo X tivemos um erro relativo de 16%, enquanto que no eixo Y o erro foi de 40%. Por se tratar de um teste mais completo, este resultado pode ser considerado positivo devido a limitação de hardware existente. Depois desses testes iniciais, foram realizados mais dois para testarem a funcionalidade tanto do eixo Y como do eixo X do robô. Para isso, primeiro foi feito um teste para realizar uma curva, e em seguida o teste para ver como ficaria o gráfico ao mover-se para formar um quadrado. Os resultados obtidos foram: Ao realizar o primeiro teste fazendo uma curva em "L", notou-se que tanto o eixo Y como o eixo X estão funcionando, pois com base na informação de odometria obtida e mostrada no gráfico, o veículo realizou uma boa curva. Já em relação ao quadrado, foi observado que realmente a odometria fornece uma primeira curva de forma bastante suave, no entanto, ao realizar as outras o veículo começa a se perder, ocasionando assim que o mesmo não consiga fornecer o gráfico corretamente do quadrado. No entanto, levando em consideração que para realizar essa tarefa ele está usando apenas as informações obtidas nos encoders, o resultado é satisfatório. 5.2 Experimentos com o Problema da Localização Com a odometria funcionando, foi possível implementar o código no Arduino para a leitura dos dados do sensor ultrassônico, além de habilitar novamente todo o algoritmo desenvolvido em C++. Assim, foram realizados os testes para saber o funcionamento desse algoritmo. Para mostrar que a solução é válida, optou-se por fazer o teste partindo com o veículo da coordenada [0 0 0] T e foi colocado um obstáculo (copo reutilizável) com a posição [0 60] T. Feito isso, o gráfico obtido é mostrado na figura 5.6.

37 CAPÍTULO 5. RESULTADOS E DISCUSSÕES 27 Figura 5.4: Veículo Fazendo uma Curva. Fonte: Elaborado pelo autor Figura 5.5: Veículo Percorrendo um Quadrado. Fonte: Elaborado pelo autor Analisando a figura citada, onde a posição do obstáculo está marcada pelo quadrado vermelho e as posições do robô estão marcadas pelos asteriscos azuis, podemos notar que o veículo tem um comportamento dentro do esperado para o hardware utilizado, e que para um obstáculo os testes realmente funcionaram. Podemos notar na figura que existe um salto na localização do veículo de uma iteração pra outra. Isto ocorre por causa que

38 CAPÍTULO 5. RESULTADOS E DISCUSSÕES 28 Figura 5.6: Veículo com o Método da Localização Funcionando. Fonte: Elaborado pelo autor até aquele momento o mesmo estava usando apenas as informações da odometria para obter a sua localização, porém após realizar a primeira observação, o veículo obtém a sua localização com maior precisão graças ao algoritmo que utiliza o Filtro de Kalman Estendido para calcular um valor estimado mais próximo. Figura 5.7: Erro calculo para X na matriz de covariância do EKF. Fonte: Elaborado pelo autor

39 CAPÍTULO 5. RESULTADOS E DISCUSSÕES 29 Figura 5.8: Erro calculo para Y na matriz de covariância do EKF. Fonte: Elaborado pelo autor Na figura 5.7 e 5.8, temos os erros calculados pelo Filtro de Kalman Estendido em sua matriz de covariância que é dado pelo Desvio Padrão, medido em centímetros, ao quadrado, onde o erro na coordenada X é dado pelo primeiro elemento da diagonal principal desta matriz, e o erro em Y pelo seu segundo elemento. A primeira figura demonstra o erro na coordenada X do veículo e a segunda o erro na coordenada Y. A medida que o tempo vai passando, e consequentemente o veículo vai navegando no ambiente ao longo das iterações do algoritmo, os erros calculados aumentam. Também é importante notar que este erro praticamente desaparece sempre que o veículo faz uma observação, pois o EKF fornece uma estimativa mais aproximada da localização do veículo. Em seguida, foi realizado um teste onde a trajetória do veículo era conhecida. Novamente partindo da posição [0 0 0] T e com o obstáculo na posição [60 40] T, o veículo percorreu a trajetória pré-estabelecida em forma de "L"e os resultados são mostrados nas figuras 5.9, 5.10 e Podemos mais uma vez notar na figura 5.9 um salto na posição do veículo, devido a imprecisão da odometria como ocorreu no teste anterior, ao realizar a primeira observação do obstáculo e assim fornecer a sua localização estimada usando o Filtro de Kalman Estendido com uma precisão melhor. Nas figuras 5.10 e 5.11 temos os erros nas coordenadas X e Y, respectivamente, calculados da mesma forma que no exemplo anterior. Já a figura 5.12 traz uma foto do veículo e obstáculo. Confirmado que a parte de software e hardware estavam funcionando, tentamos realizar testes com múltiplos obstáculos, porém eles não funcionaram de acordo com o esperado. O problema é que o sensor ultrassom pode ser facilmente influenciado por ruídos ou outra interferência, além da precisão dos sensores que fazem a odometria não serem tão confiáveis, assim quando tentamos sair de um obstáculo para ir tentar identificar outro, o algoritmo sempre entendia que se tratava do primeiro e acabava dando a posição em relação a ele. A identificação do obstáculo observado foi feita determinando-se qual obstáculo

40 CAPÍTULO 5. RESULTADOS E DISCUSSÕES 30 Figura 5.9: Veículo percorrendo trajetória pré-estabelecida Fonte: Elaborado pelo autor Figura 5.10: Erro calculo para X na matriz de covariância do EKF. Fonte: Elaborado pelo autor estava mais próximo da posição prevista do veículo no momento da observação, então por causa do erro de odometria, essa identificação não é feita corretamente. Depois de tentar-

41 CAPÍTULO 5. RESULTADOS E DISCUSSÕES 31 Figura 5.11: Erro calculo para Y na matriz de covariância do EKF. Fonte: Elaborado pelo autor mos outras formas e analisarmos o código para ver se não existia algum erro que estava causando isso e percebermos que não havia nenhum, podemos concluir que a limitação existente realmente é de hardware. Ao pensarmos mais sobre a estratégia de identificação de obstáculos, percebemos que ela tem uma falha, pois quando o robô faz uma observação de um obstáculo mais próximo, para em seguida observar um mais distante, ele vai identificar esse obstáculo como sendo o mais próximo dele por possuir a menor distância para a posição estimada do veículo, gerando assim um erro na observação. No futuro, para identificar os obstáculos de uma forma melhor e assim obter resultados para situações com mais de um obstáculo, uma forma interessante seria a utilização de uma câmera ou um kinect, por exemplo. 5.3 Considerações Finais Ao longo deste capítulo foram mostrados os testes realizados com o veículo desenvolvido para o trabalho. Os testes de odometria realizados tiveram resultados positivos. Já em relação a localização, podemos analisar que os resultados obtidos dentro das limitações foram bons e que o algoritmo desenvolvido para o problema da localização foi feito de forma correta.

42 CAPÍTULO 5. RESULTADOS E DISCUSSÕES Figura 5.12: Veículo e obstáculo. Fonte: Elaborado pelo autor 32

Implementação do Filtro de Kalman Estendido

Implementação do Filtro de Kalman Estendido UNIVERSIDADE FEDERAL DA GRANDE DOURADOS UFGD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA FACET DISCIPLINA: Tópicos em Robótica Móvel PROFESSORA: Drª Valguima Odakura ACADÊMICOS: Aline Izida e Diogo Fernando

Leia mais

SSC5887 SSC5887. Histórico. Grupo de Sistemas Embarcados Evolutivos e Robóticos - SEER. Grupo de Sistemas Embarcados Evolutivos e Robóticos - SEER

SSC5887 SSC5887. Histórico. Grupo de Sistemas Embarcados Evolutivos e Robóticos - SEER. Grupo de Sistemas Embarcados Evolutivos e Robóticos - SEER Grupo de Sistemas Embarcados Evolutivos e Robóticos - SEER Áreas de atuação: SSC5887 Introdução aos Sistemas Robóticos Denis Fernando Wolf 1º semestre 2010 Sistemas embarcados Computação reconfigurável

Leia mais

Occupancy grid based graph-slam using the distance transform, SURF features and SGD

Occupancy grid based graph-slam using the distance transform, SURF features and SGD Occupancy grid based graph-slam using the distance transform, SURF features and SGD Autores: Arturo Gil, Miguel Juliá, Óscar Reinoso Artur Segal Kaim Agenda Introdução Arquitetura Resultados Trabalho futuro

Leia mais

Relatório de Estágio Supervisionado UFRN

Relatório de Estágio Supervisionado UFRN UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE Universidade Federal do Rio Grande do Norte Centro de Tecnologia Coordenação de Engenharia Mecatrônica Relatório de Estágio Supervisionado UFRN Aluno(a): Delano

Leia mais

2.1. Construção da Pista

2.1. Construção da Pista 2 Malha de Controle Para que se possa controlar um dado sistema é necessário observar e medir suas variáveis de saída para determinar o sinal de controle, que deve ser aplicado ao sistema a cada instante.

Leia mais

4 Análise de Dados. 4.1.Procedimentos

4 Análise de Dados. 4.1.Procedimentos 4 Análise de Dados 4.1.Procedimentos A idéia inicial para a comparação dos dados foi separá-los em series de 28 ensaios, com a mesma concentração, para depois combinar esses ensaios em uma única série.

Leia mais

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

CONSTRUÇÃO DE UM ROBÔ MÓVEL COMO RECURSO DIDÁTICO NOS CURSOS DE ENGENHARIA CONSTRUÇÃO DE UM ROBÔ MÓVEL COMO RECURSO DIDÁTICO NOS CURSOS DE ENGENHARIA 1. INTRODUÇÃO A robótica é uma ciência que se dedica a desenvolver dispositivos capazes de realizar tarefas automaticamente empregando

Leia mais

APLICAÇÃO DO FILTRO DE KALMAN A UM SISTEMA DE POSICIONAMENTO DE VEÍCULO AQUÁTICO

APLICAÇÃO DO FILTRO DE KALMAN A UM SISTEMA DE POSICIONAMENTO DE VEÍCULO AQUÁTICO APLICAÇÃO DO FILTRO DE KALMAN A UM SISTEMA DE POSICIONAMENTO DE VEÍCULO AQUÁTICO André TEIXEIRA DE AQUINO; André LUIZ CARNEIRO DE ARAÚJO (1) Instituto Federal de Educação, Ciência e Tecnologia do Ceará,

Leia mais

1 RESUMO. Palavras-chave: Controle, encoders, motor CC. 2 INTRODUÇÃO

1 RESUMO. Palavras-chave: Controle, encoders, motor CC. 2 INTRODUÇÃO 1 RESUMO Na sociedade moderna se tornou cada vez mais presente e necessário meios de controlar dispositivos levando em consideração precisões maiores e perdas menores. Em diversos cenários o controle de

Leia mais

SLAM II Localização e Mapeamento Simulatâneos

SLAM II Localização e Mapeamento Simulatâneos SCE5880 Algoritmos de Estimação para Robótica Móvel As posições do robô ao longo do tempo e os landmarks correspondem a nós em um grafo. Filtro de Informação SLAM II Localização e Mapeamento Simulatâneos

Leia mais

Localização de robôs móveis baseados em balizas

Localização de robôs móveis baseados em balizas Faculdade de Engenharia da Universidade do Porto Localização de robôs móveis baseados em balizas Sandro Augusto Costa Magalhães Tiago José Ferreira Mendonça VERSÃO FINAL Trabalho realizada no âmbito da

Leia mais

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

Arduino Básico: As versatilidades desta plataforma na prática Arduino Básico: As versatilidades desta plataforma na prática Apresentação Kleber Rocha Bastos Luan Silva Santana Wellington Assunção Azevedo Graduado em Engenharia de Computação pela FAINOR Graduado em

Leia mais

Este capítulo descreve os testes realizados para validar a teoria proposta pela presente dissertação.

Este capítulo descreve os testes realizados para validar a teoria proposta pela presente dissertação. 6 Simulações Este capítulo descreve os testes realizados para validar a teoria proposta pela presente dissertação. 6.1. Descrição da Simulação Visando validar o equacionamento desenvolvido no Capítulo

Leia mais

Lego NXT: Navegação e Localização com sensores de distância baseados em infra-vermelhos utilizando um Extended Kalman Filter

Lego NXT: Navegação e Localização com sensores de distância baseados em infra-vermelhos utilizando um Extended Kalman Filter Lego NXT: Navegação e Localização com sensores de distância baseados em infra-vermelhos utilizando um Extended Kalman Filter Miguel Pinto Sistemas Robóticos Autónomos 1 Resumo LegoFeup Localização Cenários

Leia mais

Congresso de Inovação, Ciência e Tecnologia do IFSP

Congresso de Inovação, Ciência e Tecnologia do IFSP Congresso de Inovação, Ciência e Tecnologia do IFSP - 2016 CONTROLADOR PID APLICADO A PROGRAMAÇÃO DE ROBÔ MÓVEL THAIS JULIA BORGES RIBEIRO 1, MASAMORI KASHIWAGI 2 1 Técnico em Automação Industrial, Bolsista

Leia mais

IMPLEMENTAÇÃO DE SISTEMA DE ATITUDE EM DSP

IMPLEMENTAÇÃO DE SISTEMA DE ATITUDE EM DSP Anais do 15 O Encontro de Iniciação Científica e Pós-Graduação do ITA XV ENCITA / 2009 Instituto Tecnológico de Aeronáutica São José dos Campos SP Brasil Outubro 19 a 21 2009. IMPLEMENTAÇÃO DE SISTEMA

Leia mais

DK105 GROVE. Sonar. Radiuino

DK105 GROVE. Sonar. Radiuino DK105 GROVE Sonar Radiuino O presente projeto visa mostrar uma básica aplicação com o Kit DK 105 Grove. Utilizamos um sonar ultrassônico Grove juntamente ao nó sensor para medir distância de obstáculos.

Leia mais

EPUSP PCS 2011/2305/2355 Laboratório Digital. Frequencímetro

EPUSP PCS 2011/2305/2355 Laboratório Digital. Frequencímetro Frequencímetro Versão 2014 RESUMO Esta experiência tem como objetivo a familiarização com duas classes de componentes: os contadores e os registradores. Para isto, serão apresentados alguns exemplos de

Leia mais

ANÁLISE DE UM MANIPULADOR ROBÓTICO MÓVEL 1

ANÁLISE DE UM MANIPULADOR ROBÓTICO MÓVEL 1 ANÁLISE DE UM MANIPULADOR ROBÓTICO MÓVEL 1 Rodolfo R. dos SANTOS 2 Graduando em Engenharia de Controle e Automação, IFSP/Câmpus São Paulo Bolsista PIBIFSP Caio Igor Gonçalves CHINELATO 3 Docente do Curso

Leia mais

Rastreamento de objeto e estimativa de movimento

Rastreamento de objeto e estimativa de movimento Hiroito Watanabe Rastreamento de objeto e estimativa de movimento Brasil 2015 Hiroito Watanabe Rastreamento de objeto e estimativa de movimento Relatório do trabalho 2 da disciplina de Processamento Digital

Leia mais

Introdução. Introdução. Introdução. Introdução. Introdução. Introdução à Robótica Robótica Móvel Localização. Principais questões na Robótica

Introdução. Introdução. Introdução. Introdução. Introdução. Introdução à Robótica Robótica Móvel Localização. Principais questões na Robótica à Robótica Robótica Móvel Localização Prof. Douglas G. Macharet douglas.macharet@dcc.ufmg.br Principais questões na Robótica Onde estou? (localização) Aonde vou? (objetivo) Como vou? (planejamento)? à

Leia mais

Prof. Daniel Hasse. Robótica Industrial

Prof. Daniel Hasse. Robótica Industrial Prof. Daniel Hasse Robótica Industrial Robótica Industrial Aula 5 - Componentes III Sensores Controlador / Eletrônica de Controle Software / Programação IHM Eletrônica de Potência Classificação dos Sensores

Leia mais

Robótica Móvel. Simuladores de Robôs Móveis. Player/Stage/Gazebo. Localização Mapeamento SLAM Navegação. CSBC JAI # 3 Fundamentos

Robótica Móvel. Simuladores de Robôs Móveis. Player/Stage/Gazebo. Localização Mapeamento SLAM Navegação. CSBC JAI # 3 Fundamentos Robótica Móvel Inteligente: Da Simulação às Aplicações no Mundo Real Denis Fernando Wolf Eduardo do Valle Simões Fernando Santos Osório Onofre Trindade Junior Universidade de São Paulo USP - ICMC Grupo

Leia mais

UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO CURSO DE ENGENHARIA ELETRÔNICA DISCIPLINA DE INSTRUMENTAÇÃO ELETRÔNICA. Trena Ultrassônica

UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO CURSO DE ENGENHARIA ELETRÔNICA DISCIPLINA DE INSTRUMENTAÇÃO ELETRÔNICA. Trena Ultrassônica UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO CURSO DE ENGENHARIA ELETRÔNICA DISCIPLINA DE INSTRUMENTAÇÃO ELETRÔNICA Trena Ultrassônica Desenvolvido por Thiago Ferreira Pontes Relatório Final da

Leia mais

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

Desenvolvimento de um Protótipo e de Metodologias de Controlo de uma Cadeira de Rodas Inteligente Desenvolvimento de um Protótipo e de Metodologias de Controlo de uma Cadeira de Rodas Inteligente Discente: Marcelo Roberto Petry Orientador: Professor Doutor Luís Paulo Reis Co-orientador: Mestre Rodrigo

Leia mais

Trabalho de iniciação científica CTI (Centro de tecnologia da informação Renato Archer)

Trabalho de iniciação científica CTI (Centro de tecnologia da informação Renato Archer) Trabalho de iniciação científica CTI (Centro de tecnologia da informação Renato Archer) Por Mariana Rodrigues Souza (Bolsista de iniciação científica no CTI-DRVC) Roteiro para experimento de movimento

Leia mais

INFORMAÇÕES GERAIS DO TRABALHO

INFORMAÇÕES GERAIS DO TRABALHO INFORMAÇÕES GERAIS DO TRABALHO Título do Trabalho: Desenvolvimento de Módulo Didático para a Utilização em Plataforma Arduino Autor (es): Marielle Jordane da Silva, Corina Fonseca de Carvalho Macedo, Deborah

Leia mais

15/05/2013. Localização I. Localização. Localização: classificação. Localização: classificação. Tipo de ambiente. Ambiente dinâmico - soluções

15/05/2013. Localização I. Localização. Localização: classificação. Localização: classificação. Tipo de ambiente. Ambiente dinâmico - soluções SCE5880 Algoritmos de Estimação para Robótica Móvel Localização Estimar a posição de um robô a partir de um mapa e de informações obtidas por sensores. Localização I Localização: classificação Tipo de

Leia mais

Aula 4: Gráficos lineares

Aula 4: Gráficos lineares Aula 4: Gráficos lineares 1 Introdução Um gráfico é uma curva que mostra a relação entre duas variáveis medidas. Quando, em um fenômeno físico, duas grandezas estão relacionadas entre si o gráfico dá uma

Leia mais

10/11/ : Navegação Robótica. .: Sistema de Localização

10/11/ : Navegação Robótica. .: Sistema de Localização Localização Relativa de um Robô Humanóide Utilizando Filtro de Kalman Estendido André M. Santana 1, Kelson R. T. Aires 1, Adelardo A. D. Medeiros 2 1 Departamento de Informática e Estatística (DIE) Universidade

Leia mais

Controle a Distância de um Barco com Arduino+Bluetooth

Controle a Distância de um Barco com Arduino+Bluetooth Controle a Distância de um Barco com Arduino+Bluetooth Wagner Y. Nishi [Voluntário PIBIC/UTFPR], Marcio Mendonça [orientador] Coordenação de Engenharia Elétrica Campus Cornélio Procópio Universidade Tecnológica

Leia mais

Aplicação de um Processador Digital de Sinais em um Sistema de Nível de Líquido

Aplicação de um Processador Digital de Sinais em um Sistema de Nível de Líquido PR UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Ministério da Educação Universidade Tecnológica Federal do Paraná Pró-Reitoria de Pesquisa e Pós-Graduação Relatório Final de Atividades Aplicação de um Processador

Leia mais

TÍTULO: TESTE DE CONTROLADOR PARA UM ROBÔ DE EQUILÍBRIO DINÂMICO CATEGORIA: CONCLUÍDO ÁREA: CIÊNCIAS EXATAS E DA TERRA. SUBÁREA: Engenharias

TÍTULO: TESTE DE CONTROLADOR PARA UM ROBÔ DE EQUILÍBRIO DINÂMICO CATEGORIA: CONCLUÍDO ÁREA: CIÊNCIAS EXATAS E DA TERRA. SUBÁREA: Engenharias TÍTULO: TESTE DE CONTROLADOR PARA UM ROBÔ DE EQUILÍBRIO DINÂMICO CATEGORIA: CONCLUÍDO ÁREA: CIÊNCIAS EXATAS E DA TERRA SUBÁREA: Engenharias INSTITUIÇÃO(ÕES): CENTRO UNIVERSITÁRIO DO NORTE PAULISTA - UNORP

Leia mais

7 Experimentos. Figura 2 Sensor Inercial (Xsens) Figura 3 Sensor GPS (Garmin) Figura 1 Robô Ambiental Híbrido

7 Experimentos. Figura 2 Sensor Inercial (Xsens) Figura 3 Sensor GPS (Garmin) Figura 1 Robô Ambiental Híbrido 7 Experimentos Foram realizados dois experimentos distintos com o sensor GPS da marca Garmin e o sensor inercial da marca Xsens, Fig. 83 e 84 respectivamente: Na floresta amazônica, onde os sensores foram

Leia mais

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.

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. 73 5 Sistema Experimental O transportador robótico aproveitou a estrutura e motores de um robô móvel préexistente no Laboratório de Robótica, vide Figura 40. Foram aproveitados principalmente a estrutura

Leia mais

Prof. Dr. Paulo Eigi Miyagi, Coordenador Prof. Dr. José Reinaldo Silva Prof. Dr. Fabrício Junqueira Prof. Dr. Marcos Ribeiro Pereira Barretto

Prof. Dr. Paulo Eigi Miyagi, Coordenador Prof. Dr. José Reinaldo Silva Prof. Dr. Fabrício Junqueira Prof. Dr. Marcos Ribeiro Pereira Barretto PMR 3100 - Introdução à Engenharia Mecatrônica Prof. Dr. Paulo Eigi Miyagi, Coordenador Prof. Dr. José Reinaldo Silva Prof. Dr. Fabrício Junqueira Prof. Dr. Marcos Ribeiro Pereira Barretto Unidade IV:

Leia mais

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

Por Sergio Genilson Pfleger PLATAFORMA ROBÓTICA GENÉRICA BASEADA EM ARDUINO. Por Sergio Genilson Pfleger PLATAFORMA ROBÓTICA GENÉRICA BASEADA EM ARDUINO. PROBLEMÁTICA: Plataforma Robótica que satisfaça requisitos desejados Problema Asimo - Honda SOLUÇÕES Utilizar o que está disponível

Leia mais

CONTROLE DA TEMPERATURA DE SECAGEM ARTIFICIAL DE GRÃOS 1

CONTROLE DA TEMPERATURA DE SECAGEM ARTIFICIAL DE GRÃOS 1 CONTROLE DA TEMPERATURA DE SECAGEM ARTIFICIAL DE GRÃOS 1 Saul Vione Winik 2, Vanessa Faoro 3, Rodolfo França De Lima 4, Oleg Khatchatourian 5, Cristiano Osinski 6. 1 Projeto de Iniciação Científica 2 Bolsista

Leia mais

MP-208: Filtragem Ótima com Aplicações Aeroespaciais

MP-208: Filtragem Ótima com Aplicações Aeroespaciais MP-208: Filtragem Ótima com Aplicações Aeroespaciais Capítulo 7: Filtro de Kalman Estendido Discreto Davi Antônio dos Santos Departamento de Mecatrônica Instituto Tecnológico de Aeronáutica davists@ita.br

Leia mais

TÍTULO: FUZZY TAKAGI-SUGENO PARA IDENTIFICAÇÃO E CONTROLE INERCIAL DE UM ROBÔ MÓVEL

TÍTULO: FUZZY TAKAGI-SUGENO PARA IDENTIFICAÇÃO E CONTROLE INERCIAL DE UM ROBÔ MÓVEL Anais do Conic-Semesp. Volume 1, 2013 - Faculdade Anhanguera de Campinas - Unidade 3. ISSN 2357-8904 TÍTULO: FUZZY TAKAGI-SUGENO PARA IDENTIFICAÇÃO E CONTROLE INERCIAL DE UM ROBÔ MÓVEL CATEGORIA: EM ANDAMENTO

Leia mais

4 Desenvolvimento de Algoritmos de controle

4 Desenvolvimento de Algoritmos de controle 4 Desenvolvimento de Algoritmos de controle 4.1 Introdução Os estudos das características sensoriais e equações de movimento realizados com o robô ER1, junto com as ferramentas de simulação, permitem o

Leia mais

Estudo Dirigido - Desvendando a Geometria Analítica: Distância entre dois pontos

Estudo Dirigido - Desvendando a Geometria Analítica: Distância entre dois pontos Estudo Dirigido - Desvendando a Geometria Analítica: Distância entre dois pontos Conteúdo: Plano Cartesiano Público-alvo: Alunos de Ensino Médio Competências; Modelar e resolver problemas que envolvem

Leia mais

Programação em Linguagem C

Programação em Linguagem C Programação em Linguagem C UNIDADE 2 Unidade 2 Nesta unidade estudaremos: If/else; for; while; switch case; Comunicação serial com PC; apelidos para os pinos do Arduino. Relembrando... Caso geral da instrução

Leia mais

ROBÓTICA PLANEJAMENTO DE TRAJETÓRIAS. Prof a. Dra. GIOVANA TRIPOLONI TANGERINO Tecnologia em Automação Industrial

ROBÓTICA PLANEJAMENTO DE TRAJETÓRIAS. Prof a. Dra. GIOVANA TRIPOLONI TANGERINO Tecnologia em Automação Industrial SP CAMPUS PIRACICABA ROBÓTICA Prof a. Dra. GIOVANA TRIPOLONI TANGERINO Tecnologia em Automação Industrial PLANEJAMENTO DE TRAJETÓRIAS https://giovanatangerino.wordpress.com giovanatangerino@ifsp.edu.br

Leia mais

Técnicas de Inteligência Artificial

Técnicas de Inteligência Artificial Universidade do Sul de Santa Catarina Ciência da Computação Técnicas de Inteligência Artificial Aula 02 Representação do Conhecimento Prof. Max Pereira Para que um computador possa solucionar um problema

Leia mais

IMPLEMENTAÇÃO E ANÁLISE DE LOCALIZAÇÃO EM ROBÓTICA MÓVEL POR FILTRO DE KALMAN

IMPLEMENTAÇÃO E ANÁLISE DE LOCALIZAÇÃO EM ROBÓTICA MÓVEL POR FILTRO DE KALMAN IMPLEMENTAÇÃO E ANÁLISE DE LOCALIZAÇÃO EM ROBÓTICA MÓVEL POR FILTRO DE KALMAN Claudiney Calixto da Silva (PG), Juliano Augusto Pereira (PG) Divisão de Ciência da Computação - Instituto Tecnológico de Aeronáutica

Leia mais

Filtro de Kalman. Teoria e Aplicação para Iniciantes. Prof. Dr. Marco Antonio Leonel Caetano. M&V Consultoria e Treinamento

Filtro de Kalman. Teoria e Aplicação para Iniciantes. Prof. Dr. Marco Antonio Leonel Caetano. M&V Consultoria e Treinamento Filtro de Kalman Teoria e Aplicação para Iniciantes Prof. Dr. Marco Antonio Leonel Caetano M&V Consultoria e Treinamento www.mudancasabruptas.com.br A História da Filtragem de Sinais 930 940 960 Filtro

Leia mais

SENSORES. Acelerômetro. Sensore de temperatura. Sensore de luminosidade. Chave de fim de curso. Interruptor de lâminas. Sensor potenciômetro

SENSORES. Acelerômetro. Sensore de temperatura. Sensore de luminosidade. Chave de fim de curso. Interruptor de lâminas. Sensor potenciômetro SENSORES São dispositivos que são sensíveis à um fenômeno físico (luz, temperatura, impedância elétrica etc.) e que transmitem um sinal para um dispositivo de medição ou controle. 1 SENSORES Acelerômetro

Leia mais

Pequenos Projetos com Arduino

Pequenos Projetos com Arduino Governo do Estado de Pernambuco Secretaria de Educação Secretaria Executiva de Educação Profissional Escola Técnica Estadual Professor Agamemnon Magalhães ETEPAM Pequenos Projetos com Arduino Jener Toscano

Leia mais

Introdução. Introdução Exemplo. Introdução. Representação do Ambiente Exemplo. Representação do Ambiente. Mapeamento e Localização Simultâneos

Introdução. Introdução Exemplo. Introdução. Representação do Ambiente Exemplo. Representação do Ambiente. Mapeamento e Localização Simultâneos Instituto de Ciências Matemáticas e de Computação (ICMC) Universidade de São Paulo USP/São Carlos e Localização Simultâneos Giampaolo Luiz Libralon Professora Roseli Aparecida Francelin Romero Introdução

Leia mais

5 Equacionamento do Filtro de Kalman

5 Equacionamento do Filtro de Kalman 5 Equacionamento do Filtro de Kalman As implementações do filtro de Kalman para a fusão do GPS com o sensor inercial são classificadas na literatura principalmente como: acopladas, utilizando como informação

Leia mais

De Olho na Pista. Documento de Arquitetura. De Olho na Pista Documento de Arquitetura Data: 23/03/2013. AJA Software

De Olho na Pista. Documento de Arquitetura. De Olho na Pista Documento de Arquitetura Data: 23/03/2013. AJA Software AJA Software www.ajasoftware.wordpress.com De Olho na Pista Documento de Arquitetura Confidencial De Olho na Pista, 2013 1 Sumário 1. Introdução 3 2. Metas e Restrições da Arquitetura 3 3. Padrão da Arquitetura

Leia mais

PLATAFORMA PARA CARACTERIZAÇÃO DE ELEMENTOS SENSORES PIEZORESISTIVOS 1

PLATAFORMA PARA CARACTERIZAÇÃO DE ELEMENTOS SENSORES PIEZORESISTIVOS 1 PLATAFORMA PARA CARACTERIZAÇÃO DE ELEMENTOS SENSORES PIEZORESISTIVOS 1 Carlos Augusto Valdiero 2, André Luciano Rakowiski 3, Luiz Antônio Rasia 4, Antonio Carlos Valdiero 5. 1 Projeto de Pesquisa Institucional

Leia mais

LARC/CBR Latin America Robotics Competition/Competição Brasileira de Robótica. Robotino Logistics Competition

LARC/CBR Latin America Robotics Competition/Competição Brasileira de Robótica. Robotino Logistics Competition LARC/CBR 2018 Latin America Robotics Competition/Competição Brasileira de Robótica Robotino Logistics Competition Introdução Estrutura da competição Prova modular 3 dias com 2 módulos. Não haverá restrição

Leia mais

MAP Exercício programa GPS e o Método de Newton

MAP Exercício programa GPS e o Método de Newton MAP3121 - Exercício programa 1-2018 GPS e o Método de Newton O Sistema de Posicionamento Global O Sistema de Posicionamento Global (GPS, sigla do nome em inglês) é um sistema de navegação formado por uma

Leia mais

Aplicação de Tags em Objetos de Sistemas de Visualização em Tempo Real

Aplicação de Tags em Objetos de Sistemas de Visualização em Tempo Real Fundamentos de Computação Gráfica Aplicação de Tags em Objetos de Sistemas de Visualização em Tempo Real Renato Deris Prado Tópicos principais 1. Introdução e Objetivos Sistemas de visualização em tempo

Leia mais

SUPERVISÃO DE VAZÃO E NÍVEL UTILIZANDO PLATAFORMA ARDUINO

SUPERVISÃO DE VAZÃO E NÍVEL UTILIZANDO PLATAFORMA ARDUINO SUPERVISÃO DE VAZÃO E NÍVEL UTILIZANDO PLATAFORMA ARDUINO 1. INTRODUÇÃO Projetado com um micro controlador Atmel AVR de placa única, o Arduino é uma plataforma de prototipagem eletrônica de hardware livre

Leia mais

INTRODUÇÃO À ROBÓTICA MÓVEL

INTRODUÇÃO À ROBÓTICA MÓVEL INTRODUÇÃO À ROBÓTICA MÓVEL Aula 20 Edson Prestes Departamento de Informática Teórica http://www.inf.ufrgs.br/~prestes prestes@inf.ufrgs.br Exploração baseada em Fronteiras Método desenvolvido por Brian

Leia mais

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

Disciplina de Programação de Robôs Móveis SSC-0712 USP - ICMC - SSC LRM (Lab. de Robótica Móvel) SSC 0712 (PRM) - 1o. Semestre 2012 Disciplina de SSC-0712 1 Março 2012 Prof. Fernando Santos Osório Email: fosorio [at] { icmc. usp. br, gmail. com } Estagiário

Leia mais

Assim, a rápida acumulação de erros pequenos pode causar o fracasso de quase todos os métodos para resolver o problema de SLAM.

Assim, a rápida acumulação de erros pequenos pode causar o fracasso de quase todos os métodos para resolver o problema de SLAM. 1 Introdução Avanços significativos têm sido feitos no sentido de criar um robô capaz de realizar tarefas completamente autônomas. As tarefas básicas como planejamento de trajetórias, localização e navegação

Leia mais

Placa Eletrônica para Robôs Móveis

Placa Eletrônica para Robôs Móveis Projeto de iniciação científica Placa Eletrônica para Robôs Móveis Orientador: Flavio Tonidandel Departamento: Engenharia Elétrica Candidato: Luiz Roberto Alves Pereira N FEI: 11.206.231-0 Início: Fevereiro

Leia mais

Por Fernando Koyanagi 1

Por Fernando Koyanagi 1 Por Fernando Koyanagi 1 Motor de passo como servo com comunicação serial 2 Características principais Permite comandos através da comunicação serial. Flexibilidade nas configurações do software, permitindo

Leia mais

Desenvolvimento de Simuladores de Movimento em Escala para Análise e Visualização da Dinâmica de Veículos. Sistemas de Instrumentação e Controle.

Desenvolvimento de Simuladores de Movimento em Escala para Análise e Visualização da Dinâmica de Veículos. Sistemas de Instrumentação e Controle. Desenvolvimento de Simuladores de Movimento em Escala para Análise e Visualização da Dinâmica de Veículos. Sistemas de Instrumentação e Controle. Aluna: Bruna Bergmann Orientador : Mauro Speranza 1 Sumário

Leia mais

SISTEMAS ROBÓTICOS AUTÓNOMOS

SISTEMAS ROBÓTICOS AUTÓNOMOS SISTEMAS ROBÓTICOS AUTÓNOMOS Mestrado Integrado em Engenharia Eletrotécnica e de Computadores de Faculdade de Engenharia da Universidade do Porto A. Paulo G. M. Moreira Pag. 1 SISTEMAS ROBÓTICOS AUTÓNOMOS

Leia mais

viabilizar sua aplicação como robô manipulador. Na seção 3.1 deste capítulo são apresentados

viabilizar sua aplicação como robô manipulador. Na seção 3.1 deste capítulo são apresentados 35 3 Análise topológica do mecanismo A geração da topologia deste mecanismo tem como objetivo obter uma arquitetura para viabilizar sua aplicação como robô manipulador. Na seção 3.1 deste capítulo são

Leia mais

4 Controle de motores de passo

4 Controle de motores de passo 36 4 ontrole de motores de passo O controle em malha aberta é o mais comum em motores de passo. Entretanto, o motor deve operar razoavelmente abaixo de sua capacidade para evitar a perda de passos. As

Leia mais

Para a competição, pretendemos ainda posicionar um sensor de luz para perceber a linha preta, para que ele saiba quando entrou na base.

Para a competição, pretendemos ainda posicionar um sensor de luz para perceber a linha preta, para que ele saiba quando entrou na base. Competição 1 - Decisões Decidimos utilizar basicamente o mesmo robô dos outros trabalhos que se comportava bem, mas fizemos algumas modificações para melhora-lo. Trocamos as roda grandes por pequenas,

Leia mais

Construção e Análise de Gráficos. CF Laboratório de Física Básica 1

Construção e Análise de Gráficos. CF Laboratório de Física Básica 1 Construção e Análise de Gráficos Por que fazer gráficos? Facilidade de visualização de conjuntos de dados Facilita a interpretação de dados. Exemplos: Engenharia Física Economia Biologia Estatística Por

Leia mais

Um Algoritmo Genético com Aprendizado por Reforço Simples aplicado ao problema do Mundo de Grid

Um Algoritmo Genético com Aprendizado por Reforço Simples aplicado ao problema do Mundo de Grid 1 Um Algoritmo Genético com Aprendizado por Reforço Simples aplicado ao problema do Mundo de Grid Luciana Conceição Dias Campos Resumo Este trabalho consiste da aplicação de um algoritmo genético ao método

Leia mais

3 Extração de Regras Simbólicas a partir de Máquinas de Vetores Suporte 3.1 Introdução

3 Extração de Regras Simbólicas a partir de Máquinas de Vetores Suporte 3.1 Introdução 3 Extração de Regras Simbólicas a partir de Máquinas de Vetores Suporte 3.1 Introdução Como já mencionado na seção 1.1, as SVMs geram, da mesma forma que redes neurais (RN), um "modelo caixa preta" de

Leia mais

Que são sensores? São dispositivos que são sensíveis à um fenômeno físico (luz, temperatura, impedância elétrica etc.) e transmitem um sinal para um

Que são sensores? São dispositivos que são sensíveis à um fenômeno físico (luz, temperatura, impedância elétrica etc.) e transmitem um sinal para um Que são sensores? São dispositivos que são sensíveis à um fenômeno físico (luz, temperatura, impedância elétrica etc.) e transmitem um sinal para um dispositivo de medição ou controle. 1 Cite 08 tipos

Leia mais

Sensores que fazem uso de ultrassons encontram uma grande gama de

Sensores que fazem uso de ultrassons encontram uma grande gama de ESTADO DE MATO GROSSO ESCOLA ESTADUAL DESEMBARGADOR MILTON ARMANDO POMPEU DE BARROS ENSINO MÉDIO INTEGRADO A EDUCAÇÃO PROFISSIONALIZANTE TÉCNICO EM INFORMÁTICA TIAGO DOS SANTOS FERREIRA Automação Náutica

Leia mais

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

Kit didático para controle de velocidade e posição de um motor de corrente contínua https://eventos.utfpr.edu.br//sicite/sicite2017/index Kit didático para controle de velocidade e posição de um motor de corrente contínua RESUMO Marcos Antonio Ribeiro da Silva marcossilva.2014@alunos.utfpr.edu.br

Leia mais

Mapeamento de memória e conexões do Controlador CP-WSMIO2DI2DO

Mapeamento de memória e conexões do Controlador CP-WSMIO2DI2DO Comércio e Manutenção de Produtos Eletrônicos Manual CP-WS1 Mapeamento de memória e conexões do Controlador CP-WSMIO2DI2DO PROXSYS Versão 1.3 Abril -2015 Controlador Industrial CP-WS1 1- Configurações

Leia mais

SENSOR ULTRASSÔNICO DE PEQUENO PORTE APLICADO A BATIMETRIA MARIANO 3

SENSOR ULTRASSÔNICO DE PEQUENO PORTE APLICADO A BATIMETRIA MARIANO 3 SENSOR ULTRASSÔNICO DE PEQUENO PORTE APLICADO A BATIMETRIA Michel da Silva Bezerra TERRA 1 ; Mosar Faria BOTELHO 2 ; Rodrigo Aparecido MARIANO 3 RESUMO O desenvolvimento de métodos de menor custo sem perca

Leia mais

4 Algoritmo de reconstrução de curvas

4 Algoritmo de reconstrução de curvas 4 Algoritmo de reconstrução de curvas Como visto na introdução, o algoritmo proposto neste trabalho é constituído pelas seguintes etapas: 1. Agrupamento espacial dos pontos de amostragem 2. Processamento

Leia mais

Implementação de uma rotina para seguir um segmento de reta (FollowLine)

Implementação de uma rotina para seguir um segmento de reta (FollowLine) Faculdade de Engenharia da Universidade do Porto Implementação de uma rotina para seguir um segmento de reta (FollowLine) Sandro Augusto Costa Magalhães Tiago José Ferreira Mendonça VERSÃO FINAL Trabalho

Leia mais

7 Conclusões e desenvolvimentos futuros

7 Conclusões e desenvolvimentos futuros 7 Conclusões e desenvolvimentos futuros 7.1 Conclusões Este trabalho apresentou novas soluções para a determinação da posição de terminais de comunicações móveis com base em medidas de ToA. Nos métodos

Leia mais

XIX Congresso Nacional de Estudantes de Engenharia Mecânica - 13 a 17/08/2012 São Carlos-SP Artigo CREEM2012

XIX Congresso Nacional de Estudantes de Engenharia Mecânica - 13 a 17/08/2012 São Carlos-SP Artigo CREEM2012 PROJETO MECATRÔNICO DE UM ROBÔ MÓVEL COM RODAS (RMR) Alex Rodrigues Fricelli, Guilherme Barboni Paschoal, Júlio Rodrigues Goulart, Lucas Godoi de Oliveira, Rafael Valério Garcia e Roberto Santos Inoue

Leia mais

INF INTELIGÊNCIA ARTIFICIAL TRABALHO 1 BUSCA HEURÍSTICA

INF INTELIGÊNCIA ARTIFICIAL TRABALHO 1 BUSCA HEURÍSTICA INF1771 - INTELIGÊNCIA ARTIFICIAL TRABALHO 1 BUSCA HEURÍSTICA Descrição: Para se tornar um Mestre Pokémon é necessário aventurar-se por terras desconhecidas, capturar novos pokémons, treina-los e derrotar

Leia mais

ESTUDO DA RESPOSTA DE PROPULSORES DE VEÍCULOS SUBAQUÁTICOS NÃO-TRIPULADOS (ROV s)

ESTUDO DA RESPOSTA DE PROPULSORES DE VEÍCULOS SUBAQUÁTICOS NÃO-TRIPULADOS (ROV s) ESTUDO DA RESPOSTA DE PROPULSORES DE VEÍCULOS SUBAQUÁTICOS NÃO-TRIPULADOS (ROV s) Diogo Marujo (ICV/PRPPG-UNIOESTE), Samir de Oliveira Ferreira (ICV/PRPPG-UNIOESTE), Carlos Henrique dos Santos Farias (Orientador),

Leia mais

Linguagem de Programação. Linguagem C com Arduino

Linguagem de Programação. Linguagem C com Arduino Linguagem de Programação Linguagem C com Arduino Prof. Luiz Claudio Ferreira de Souza E-mail: luizclaudiofs@hotmail.com.br www.luizclaudiofs.blogspot.com Belém / PA 2017 Sumário Fundamentos de Eletrônica...

Leia mais

5 ULTRASSOM + MEMÓRIA

5 ULTRASSOM + MEMÓRIA 5 ULTRASSOM + MEMÓRIA ULTRASSOM + MEMÓRIA Neste capítulo, será montado um medidor de distâncias que registrará os valores obtidos na memória interna do Arduino, mostrando-os, posteriormente, pela porta

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ SETOR DE CIÊNCIA E TECNOLOGIA ENGENHARIA ELÉTRICA

UNIVERSIDADE FEDERAL DO PARANÁ SETOR DE CIÊNCIA E TECNOLOGIA ENGENHARIA ELÉTRICA UNIVERSIDADE FEDERAL DO PARANÁ SETOR DE CIÊNCIA E TECNOLOGIA ENGENHARIA ELÉTRICA RELATÓRIO CONTADOR DE 6 BITS PROGRAMÁVEL Trabalho apresentado à disciplina de Projeto de Circuitos Integrados Digitais,

Leia mais

1 ESCOLA POLITÉCNICA DA USP Sensores Eduardo L. L. Cabral ESCOLA POLITÉCNICA DA USP

1 ESCOLA POLITÉCNICA DA USP Sensores Eduardo L. L. Cabral ESCOLA POLITÉCNICA DA USP elcabral@usp.br 1 PMR2560 Robótica Sensores Eduardo L. L. Cabral elcabral@usp.br elcabral@usp.br 2 Objetivos Sensores utilizados nos robôs industriais. Sensores internos; Sensores externos. Sensores de

Leia mais

Relatório de pesquisa sobre o procedimento de otimização de modelos no Activate

Relatório de pesquisa sobre o procedimento de otimização de modelos no Activate Relatório de pesquisa sobre o procedimento de otimização de modelos no Activate 1 Introdução Esse trabalho tem por objetivo apresentar o bloco de otimização BobyqaOpt, suas funcionalidades, parâmetros

Leia mais

BRAÇO ROBÓTICO ARTICULADO CONTROLADO POR ARDUÍNO PARA DEMONSTRAÇÃO DO EMPREGO DA ROBÓTICA NAS INDÚSTRIAS

BRAÇO ROBÓTICO ARTICULADO CONTROLADO POR ARDUÍNO PARA DEMONSTRAÇÃO DO EMPREGO DA ROBÓTICA NAS INDÚSTRIAS BRAÇO ROBÓTICO ARTICULADO CONTROLADO POR ARDUÍNO PARA DEMONSTRAÇÃO DO EMPREGO DA ROBÓTICA NAS INDÚSTRIAS Caio C. Silva¹, Fernando R. Ferreira 2, William A. C. Oliveira 3, Alipio A. Fernandes 4, Jair P.

Leia mais

INTRODUÇÃO À ROBÓTICA MÓVEL

INTRODUÇÃO À ROBÓTICA MÓVEL INTRODUÇÃO À ROBÓTICA MÓVEL Aua 25 Edson Prestes Departamento de Informática Teórica http://www.inf.ufrgs.br/~prestes prestes@inf.ufrgs.br Locaização Fitragem de Kaman Fitragem de kaman fornece uma abordagem

Leia mais

Implementação de controlador PID fuzzy para otimização do controle de posição de um servomotor DC

Implementação de controlador PID fuzzy para otimização do controle de posição de um servomotor DC Implementação de controlador PID fuzzy para otimização do controle de posição de um servomotor DC Ederson Costa dos Santos 1, Leandro Barjonas da Cruz Rodrigues 1, André Maurício Damasceno Ferreira 2 1

Leia mais

Guia de Práticas Elevador Didático Programável

Guia de Práticas Elevador Didático Programável Guia de Práticas Elevador Didático Programável Módulo: Arduino MEGA 2560 1ªEdição Resumo Guia com as principais práticas presentes no Caderno de Práticas que acompanha o Elevador Didático Programável.

Leia mais

MRUV Movimento Retilíneo Uniforme Variado

MRUV Movimento Retilíneo Uniforme Variado MRUV Movimento Retilíneo Uniforme Variado MRUV é o movimento de qualquer móvel que varie a sua velocidade, aumentando ou diminuindo, valores iguais em tempos iguais, conforme os exemplos abaixo: Os exemplos

Leia mais

Sistemas de Controle 2

Sistemas de Controle 2 Pontifícia Universidade Católica de Goiás Escola de Engenharia Sistemas de Controle 2 Projeto de sistema de controle digital PID com Arduino Prof. Dr. Marcos Lajovic Carneiro Referência: Ivan Seidel https://www.youtube.com/watch?v=txftr4tqkya

Leia mais

VEÍCULO SEGUIDOR DE LINHA UTILIZANDO UM MICRONTROLADOR ARDUINO

VEÍCULO SEGUIDOR DE LINHA UTILIZANDO UM MICRONTROLADOR ARDUINO VEÍCULO SEGUIDOR DE LINHA UTILIZANDO UM MICRONTROLADOR ARDUINO Jorge Luiz Santos Feitosa¹, Luis Thiago Gallerani Pinto 2, Vicente Marcio Cornago Junior 3, Rafael de Moraes 1, Ricardo Rall 4. ¹Graduando

Leia mais

PIBIC/PIBITI/IC Jr Relatório das Atividades de Pesquisa 23ª SEMIC

PIBIC/PIBITI/IC Jr Relatório das Atividades de Pesquisa 23ª SEMIC ATIVIDADES EXECUTADAS PELO BOLSISTA / VOLUNTÁRIO DADOS DE IDENTIFICAÇÃO: Do bolsista: Nome: Carlos Vinícius Machado Caldeira Curso: Engenharia Elétrica com ênfase em Sistemas Eletrônicos Período de vigência

Leia mais

Experiência 5. Projeto e Simulação do Controle no Espaço de Estados de um Pêndulo Invertido sobre Carro

Experiência 5. Projeto e Simulação do Controle no Espaço de Estados de um Pêndulo Invertido sobre Carro Experiência 5 Projeto e Simulação do Controle no Espaço de Estados de um Pêndulo Invertido sobre Carro Professores: Adolfo Bauchspiess e Geovany A. Borges O objetivo deste experimento é projetar e simular

Leia mais

Universidade Federal de Minas Gerais Laboratório de Controle e Automação I Prof. Patrícia N. Pena - DELT Twin Rotor MIMO System (TRMS)

Universidade Federal de Minas Gerais Laboratório de Controle e Automação I Prof. Patrícia N. Pena - DELT Twin Rotor MIMO System (TRMS) Universidade Federal de Minas Gerais Laboratório de Controle e Automação I Prof. Patrícia N. Pena - DELT Twin Rotor MIMO System (TRMS) 1 Rotor Duplo (TRMS - Twin Rotor MIMO System) A unidade TRMS da Feedback

Leia mais

5 Testes e Resultados

5 Testes e Resultados 5 Testes e Resultados Neste capítulo serão apresentados experimentos que ilustram as implementações desenvolvidas e propostas no capítulo anterior. São mostrados experimentos que investigam o algoritmo

Leia mais

Arduino Lab 09 Leitura de

Arduino Lab 09 Leitura de Arduino Lab 09 Leitura de um encoder industrial Heidenhain com o Arduino Neste Lab explicaremos o funcionamento e teste de um encoder industrial de quadratura, muito utilizado na indústria como sistema

Leia mais

Controle utilizando variáveis de estado - v1.1

Controle utilizando variáveis de estado - v1.1 2 ontrole utilizando variáveis de estado - v. 2. Objetivo O objetivo desta experiência é, utilizando o enfoque de espaço de estados, projetar e implementar um controlador digital para uma planta simples

Leia mais

CENTRO DE CIÊNCIAS E TECNOLOGIA AGROALIMENTAR UNIDADE ACADÊMICA DE TECNOLOGIA DE ALIMENTOS DISCIPLINA: FÍSICA I ROTAÇÃO. Prof.

CENTRO DE CIÊNCIAS E TECNOLOGIA AGROALIMENTAR UNIDADE ACADÊMICA DE TECNOLOGIA DE ALIMENTOS DISCIPLINA: FÍSICA I ROTAÇÃO. Prof. CENTRO DE CIÊNCIAS E TECNOLOGIA AGROALIMENTAR UNIDADE ACADÊMICA DE TECNOLOGIA DE ALIMENTOS DISCIPLINA: FÍSICA I ROTAÇÃO Prof. Bruno Farias Introdução Neste capítulo vamos aprender: Como descrever a rotação

Leia mais