Do aluno: 1990170 Osvaldo José Ribeiro de Sousa                         Lsa Logo
>lsa>lsis | Home LSA | English
 
 

Página de
Laboratório de Sistemas Autónomos

 

1 -             Introdução

 

 

O trabalho escolhido foi a integração de Sistemas de Navegação Inercial no sistema de navegação do(s) robot(s) de condução autónoma do Laboratório de Sistemas Autónomos (LSA).

 

image2

                                                                                         Figura 1:  a) Esquerda - Robot SpeedRunner b) Direita - Robot BigRunner

 

 

            Foi necessário tentar identificar/entender a estrutura tanto de software como hardware do robot tendo em vista a realização deste trabalho.

 

Na parte de hardware identificamos os seguintes componentes:

- Placa de controlo de Eixos

- Amplificadores de potência

- Placa de Distribuição & Protecção

- Câmara

- Computador

- Conversor DC/DC

- Wireless

- Motores DC

 

Na parte de software identificamos as seguintes áreas:

- Hodometria

- Sistema de Visão

- Fusão sensorial

 

 

 


1.1 – Giroscópio

image4 image6

Um giroscópio é um dispositivo para medir e manter a orientação, baseado no princípio da conservação do momento angular. Na física isto é denominado por inércia do giroscópio.

A base deste dispositivo é uma roda que gira num eixo. O dispositivo, uma vez em movimento, tende a resistir à alteração da orientação (a propriedade de inércia).

 Figura 2:  Giroscópios

 

O efeito do giroscópio foi descoberto em 1817 por Johann Bohnenberger e inventado e baptizado em 1852 por Léon Foucault numa experiência envolvendo a rotação da Terra.

 

image8 O eixo da roda que gira define o eixo de rotação. A roda responde a uma força aplicada no eixo de entrada (“input axis”) devido à reacção de uma força no eixo de saída (“output axis”). Os 3 eixos são perpendiculares, e esta interacção entre eixos é a essência do efeito de giroscópio.

O comportamento do giroscópio é descrito pela seguinte equação fundamental:

image10

 Figura 3:  Eixos de rotação

 

image12 onde os vectores τ e L são, respectivamente, a torção no giroscópio e o momento angular, o escalar I é o momento angular, o vector ω é a velocidade angular, e o vector α é a aceleração angular.

Tendo uma torção τ aplicado perpendicularmente ao eixo de rotação, sendo assim perpendicular a L, resultando assim um movimento perpendicular a τ e L. Este movimento é denominado de precursão. A velocidade angular de precursão ΩP é dado por:  image14

 

 

 Figura 4:  Giroscópios e acelerómetros de 3 eixos

 

1.1.1 – Erros do giroscópio

 

Podemos definir a orientação do giroscópio como: image16  

em que:

image18   - orientação do giroscópio;

image20   - factor de escala do giroscópio;

image22  - erro devido ao factor de escala;

image24   - o taxa angular real;

image26  - bias aleatório.

 

O erro dominante é o erro de bias aleatório. Geralmente, a saída do giroscópio nunca é zero, devido a imperfeições de fabrico que geram o denominado bias do giroscópio. Depois da compensação dos erros determinísticos do giroscópio, o erro de bias aleatório e o factor de escala podem ser considerados como constantes.

image28  , image301 image32  e image34 .

image36  - erro de orientação do giroscópio;

image38 - erro de factor de escala do giroscópio;

image40 - erro de bias aleatório. image30
1.2 – Acelerómetro

 

image41 Um acelerómetro ou gravitómetro é um dispositivo para medir a aceleração e os efeitos da gravidade.

De acordo com o principio da igualdade na relatividade geral, o efeito da gravidade e aceleração são iguais, sendo assim um acelerómetro não faz distinção entre estes dois efeitos.

Os acelerómetros são usados conjuntamente com os giroscópios em Sistema de Navegação Inercial - “Inertial Navigation Systems – INS”, tal como em muitos sistemas científicos e de engenharia. Uma das utilizações mais comuns

 Figura 5:  Acelerómetro

 

 

para acelerómetros MEMS (“Micro Electro-Mechanical Systems” – pequenos componentes produzidos com um processo de fabrico semelhante ao usado no fabrico de semicondutores) é em airbags presentes nos automóveis. Neste caso os acelerómetros são usados para detectar a rápida desaceleração do veiculo para determinar quando uma colisão ocorreu e a gravidade da colisão.

Os acelerómetros MEMS são talvez os dispositivos MEMS mais simples, sendo possível encontrar grande variedade de dispositivos que podem atingir as centenas de G’s. Acelerómetros com um, dois e três eixos estão disponíveis. O uso generalizado de acelerómetros principalmente na indústria automóvel levou à redução do seu custo dramaticamente.

Tipos de acelerómetros:

  • Piezo-film
  • Surface Micromachined Capacitive (MEMS), Analog Devices, Motorola
  • Thermal (submicron CMOS process), MEMSIC
  • Bulk Micromachined Capacitive, VTI Technologies Oy
  • Bulk Micromachined Piezo Resistive
  • PiezoElectric
  • Null-Balance
  • Strain Gage
  • Resonance
  • Magnetic Induction
  • Optical
  • Surface Acoustic Wave (SAW)

 

 


1.3 – Hodometria

 

            Uma das técnicas mais simples para estimação de posição e orientação consiste em contar a quantidade de pulsos obtidos a partir dos encoders ópticos de cada roda num determinado intervalo de tempo. Assumindo-se que não existe escorregamento e conhecendo-se o raio das rodas (r) e o número de pulsos por volta dos encoders (ntick), pode-se calcular o deslocamento linear das rodas nesse intervalo de tempo. Este método é geralmente designado por Método de Dead-Reckoning.

 

Os deslocamentos lineares da roda direita ( 1 ) e esquerda ( 1 ) no intervalo [k,k+1], são dados por:

1

1

onde ntick é o número de pulsos por revolução dos encoders, e NPR, NPL representam o número de pulsos detectados no intervalo [k,k+1].

 

1  é o valor médio da distância percorrida pela roda direita ( image43 ) e pela roda esquerda ( 1 ) do veículo:

1

A orientação do robot é obtida através da incrementação da orientação 1 , é obtida pela seguinte equação:

1

onde 2b  é a distância entre rodas de tracção do veículo.

 

Assumindo-se que a trajectória percorrida pelo veículo é um arco de circunferência, como ilustra a figura abaixo, obtém-se:

 

1

 

onde d é a distância do centro das rodas ao centro de massa e

 

1

 

1

                                                                                                                   Figura 6:  Trajectória circular para o algoritmo da hodometria

 

É importante salientar que quando 1 , a trajectória percorrida pela plataforma degenera para uma recta, logo 1 . Isto porque na expressão anterior o sin(x)/x=1 quando x tende para zero, não se verificando indeterminação matemática. Desta forma, este modelo matemático para a hodometria é válido quer para trajectórias circulares quer para trajectórias rectilíneas.

O método de dead-reckoning não é adequado para a estimação da posição quando as trajectórias são longas, pois pela própria natureza do método, os erros vão acumulando à medida que se integra os deslocamentos para a obtenção da posição e orientação do robot. Os erros presentes neste método são classificados em erros sistemáticos e erros aleatórios.

 

 

1.3.1 – Erros sistemáticos

 

Os erros sistemáticos são causados basicamente por incertezas nos parâmetros geométricos utilizados para calcular a posição e orientação do robot.

Algumas das causas deste tipo de erro são:

Ø     a diferença entre o diâmetro nominal médio e o diâmetro real das rodas;

Ø     a diferença entre os diâmetros médios das duas rodas de tracção;

Ø     a diferença entre a distância entre rodas nominal e real;

Ø     incerteza quanto à base de contacto das rodas (provocado por base de contacto das rodas desigual);

Ø     resolução limitada do encoder;

Ø     taxa de amostragem limitada do encoder;

Ø     mau alinhamento das rodas.

 


1.3.2 – Erros aleatórios

 

Os erros aleatórios ocorrem devido:

Ø     salto sobre piso irregular;

Ø     salto sobre objecto inesperado no piso;

Ø     escorregamento das rodas, provocado por:

- imperfeições no solo;

- substâncias viscosas;

- aceleração excessiva;

- derrapagem nas curvas;

- forças externas (interacção com corpos externos);

- base de contacto das rodas desigual.

 

A estimativa final da posição e orientação é principalmente influenciada pelos erros sistemáticos devido ao facto de estarem sempre presentes. No entanto, através de procedimentos de calibração adequados é possível reduzir significativamente esses erros sistemáticos.

           

 

A grande vantagem deste método de estimação é o facto do tempo requerido de processamento ser muito pequeno, ideal para implementações em tempo real.

Os métodos baseados em processamento de imagens não sofrem os problemas referidos anteriormente e podem fornecer uma boa estimativa para a posição, mas requerem muito tempo para o processamento das imagens, dificultando a implementação em tempo real.

 

 


1.4 – Sistema de Visão

 

A utilização de imagens para percepção do mundo envolvente por parte de robots móveis, tem sido um desafio importante para as equipas de investigação que desenvolvem actividade na área da Visão Robótica.

 

A área da Visão Robótica encontra na observação do mundo animal uma das suas fontes inspiradoras mais importantes. De facto, o próprio ser humano usa o sistema visual, com muita eficiência, em muitas das suas actividades. As tentativas já realizadas, de simulação e implementação artificial de capacidades visuais, têm revelado estar-se perante um problema muito complexo e de resolução global difícil. Esta dificuldade tem levantado a questão de qual o grau em que as capacidades visuais humanas e dos restantes animais podem ser imitadas e utilizadas em robots móveis. A resposta a esta questão tem vindo a ser procurada, por alguns investigadores, em estudos de psicofisiologia da visão.

 

A introdução de um sistema de visão num robot móvel traduz-se num significativo aumento das suas capacidades sensoriais e portanto num correspondente aumento de versatilidade e segurança na operação do robot. Esperam-se deste sistema de visão soluções para problemas de detecção e localização de landmarks (marcas alvo no mundo), fundamentais para a navegação do robot.

    1      1

 Figura 7:  Sensor CCD

 

            A figura ilustra a arquitectura do sistema de visão utilizado no robot:

 

1

                                                                                                                                        Figura 8:  Arquitectura do sistema de visão

 

 

 


1.5 – Navegação

 

Seguidamente são introduzidos alguns conceitos de navegação.

 

1.5.1 - Dead reckoning

 

Dead reckoning (DR) é um processo de estimação da posição de um veículo utilizando uma posição conhecida através da trajectória, velocidade, tempo e distância a percorrer. Isto é, descobrir onde nos encontramos momentaneamente ou onde vamos estar num dado momento a partir dos dados da velocidade, tempo e percurso que se planeia percorrer.

DR é um método de navegação utilizado em navios, aviões, camiões, carros, comboios, túneis e mais recentemente na área da robótica. Essencialmente é utilizado para estimar a posição de um objecto baseado na distância percorrida na direcção actual desde uma posição anterior.

 

1

                                                                                                                       Figura 9: Exemplo de navegação usando o método de DR

 

Um navegador utilizando este método faz uso da última posição conhecida do veículo para extrapolar a posição esperada para um intervalo de tempo determinado (tempo entre posições conhecidas) de acordo com o percurso traçado pelo compasso, a velocidade, correntes marítimas e ventos. Na navegação moderna, está posição estimada é comparada com uma posição conhecida no momento em que a posição DR foi estimada. A diferença entre a posição actual e a posição estimada DR ajuda o navegador a determinar a trajectória e velocidade necessários para traçar o percurso.

 

1

                                                                                        Figura 10:                        Representação esquemático do funcionamento do método DR

 

Antes do surgimento dos métodos de navegação moderna, o navegador incorporava as suas estimativas das forças externas (vento, corrente marítima, erro do leme, etc.) na sua estimativa DR.A estimação usando DR era o único disponível, quando por exemplo o céu estava nublado e a observação estrelar não era possível de realizar. Antes do desenvolvimento do cronómetro, DR era o método primário para determinar a longitude disponível para os navegadores Cristóvão Columbus e John Cabot mas suas travessias do Atlântico.


1.5.2 - Simultaneous localization and mapping

 

 

Simultaneous Localization And Mapping (SLAM) é uma técnica utilizada por robots e veículos autónomos para construir um mapa de um cenário desconhecido, ao mesmo tempo que regista os dados do seu posicionamento. Está técnica tem de ter em conta incertezas inerentes da posição relativa do robot e os vários sensores.

 

1 1 1

                                                                                                          Figura 11:                        Exemplo de navegação usando a técnica SLAM

 

Se na iteração seguinte, da construção do mapa, a distância e direcção medidas tiverem uma ligeira imprecisão, então os elementos adicionados ao mapa adquirem os erros dai resultantes. Se existir uma verificação do mapa, os erros adquiridos são acumulados sucessivamente, distorcendo o mapa e consequentemente a capacidade do robot conhecer com precisão a sua localização. Existem várias técnicas para compensar os erros, tal como o reconhecimento de objectos que foram encontrados previamente com a sobreposição dos objectos e consequente comparação dos mesmos. Algumas das técnicas estatísticas utilizadas no SLAM passam por filtros de Kalman, filtro de partículas (métodos de Monte Carlo), etc.

 

O SLAM na comunidade de robótica móvel normalmente significa um processo de criação de mapas, de um cenário desconhecido, geometricamente correctos. Mapas topológicos são outro exemplo de representação do cenário que captura a topologia do cenário em vez da geometria. Como resultado, os algoritmos que criam mapas topológicos não são considerados técnicas de SLAM.

 

A técnica de SLAM ainda não atingiu a sua maturidade, mas começa a ser utilizada em UAV (Unmanned Aerial Vehicles), UUV (Unmanned Underwater Vehicles), veículos espacial e os emergentes robots domésticos.

 

O SLAM utiliza normalmente sensores laser (range finder) ou sonares para construir o mapa. No entanto, a técnica VSLAM (Visual Simultaneous Localization And Mapping) utiliza unicamente meios visuais.

 


2 -             Descrição do Robot

 

2.1 - Descrição do hardware do Robot

 

A arquitectura do hardware do robot é constituída basicamente pelos seguintes blocos: alimentação, computador, sensores, actuadores e comunicação. Na figura abaixo é possível visualizar a interligação entre os blocos, de forma a constituir a arquitectura do hardware:

 

1

                                                                                                                      Figura 12:                        Esquema geral do hardware do robot

 


2.2 - Descrição do software do Robot

 

O sistema operativo presente no projecto é o Linux (Fedora Core 1 & 3).

 

Vantagens do Linux em relação aos outros sistemas operativos:

- É um sistema operativo livre.

- Permite o acesso ao código (OPEN SOURCE).

- É um sistema operativo actual e em constante desenvolvimento.

- É bastante reconfigurável.

- Suporte para o barramento USB.

- Possibilidade de trabalhar com vídeo.

- Apoio a nível mundial.

- Vantagens didácticas (disponibilidade de código).

 

O software utilizado na implementação do sistema de navegação do robot foi desenvolvido em linguagem C. A escolha deste tipo de linguagem de programação é justificada pelo facto de ser uma linguagem bastante poderosa e familiar.

 

O software é constituído por dois blocos relativos com os sensores utilizados: Hodometria e Visão. A informação proveniente dos sensores é fundida para a determinação do estado do veículo. O bloco da Fusão sensorial é o responsável pela determinação da posição e orientação do robot - navegação do robot.

 

Para a fusão sensorial foi introduzido um Filtro de Kalman extendido discreto (não linear).

 

1

 

                                                                                                     Figura 13:                        Arquitectura do software do sistema de navegação

 

Os blocos de software ilustrados na figura anterior são descritos nas secções seguintes.


2.2.1 - Hodometria

 

A inicialização da hodometria do robot é realizada pela função hodom_init(). Nessa função é criado o thread da hodometria que lança a função hodom(), a qual executa em ciclo fechado a leitura dos incrementos das rodas, a partir das leituras dos encoders ópticos. A leitura desses valores é efectuada pela função axisctr_rd_cnt().

 

O interface da informação hodometria com o filtro de Kalman é realizado na função update_robot_pos() .Esta função actualiza o estado do robot com os valores da previsão do filtro.

 

 

Funções utilizadas

 

hodom_init() -> inicialização da hodometria

hodom() -> ciclo de hodometria

axisctr_rd_cnt() -> leitura dos encoders

update_robot_pos() -> actualização do estado

 

 

 

2.2.2 - Sistema de Visão

 

O sistema de visão é constituído por dois threads, um dedicado à aquisição cíclica de imagens e outro dedicado ao processamento de imagem. Este threads são criados na função vision_init(). A função que realiza a aquisição é a vision_acquire_head(). O processamento é realizado pela função vision_process_head(), o qual é constituído por três blocos: Pesquisa do alvo, Compensação da distorção e Conversão dos referenciais. O interface do resultado final do processamento de imagem com o filtro de Kalman é realizado na função pose_estimation().

 

O bloco da Calibração não faz parte do sistema de visão porque é realizada em off-line, no qual a intervenção humana é necessária. Este assunto é abordado pormenorizadamente na secção da Calibração do Sistema de Visão.

 

A figura abaixo ilustra a arquitectura do sistema de visão:

1

 

                                                                                                                Figura 14:                        Arquitectura software do sistema de visão

 

 

 


2.2.2.1 - Controlo e classificação de imagem

 

Um dos requisitos da implementação do sistema de visão é desenvolvimento de funções que permitam o controlo de imagem e a classificação correcta das cores. As funções que solucionam esse requisito são vis_read_cam_opt() e vis_make_color_img(), respectivamente .

 

O controlo de imagem é um dos problemas da implementação de um sistema de visão, dada a sua dependência com o meio ambiente. A má iluminação e os reflexos da pista de teste exigiu um minucioso ajuste das características da imagem, de forma a que o contraste entre a cor do chão e das linhas seja bem definido. Das muitas tentativas realizadas, é importante ilustrar os três casos seguintes:

 

Caso 1 - Brightness: 60000; Contrast: 65535; Hue: 65535; Colour: 0

 

 

1

                                                                                                                 Figura 15:                        a) imagem original; b) imagem classificada

 

Observação - No caso 1, o excesso de brilho tem como consequência a má definição da linhas da imagem classificada. As linhas são quase imperceptíveis.

 

 

Caso 2 - Brightness: 20000; Contrast: 65535; Hue: 65535; Colour: 0

 

1

                                                                                                                 Figura 16:                        a) imagem original; b) imagem classificada

 

Observação - No caso 2, o pouco brilho utilizado torna a imagem muito escura, tornando difícil a distinção das linhas em determinadas zonas.

 

 

 


Caso 3 - Brightness: 35000; Contrast: 65535; Hue: 65535; Colour: 0

 

 

1

                                                                                                                 Figura 17:                        a) imagem original; b) imagem classificada

 

 

Observação – No caso 3, o contraste entre as linhas e o chão da pista está bem definido, apesar de se verificar o reflexo da iluminação na zona em linha faz um “v”. Os valores utilizados no controlo da imagem podem variar entre 0 a 65535 (mínimo e máximo, respectivamente).

 

 

2.2.3 - Fusão sensorial

 

A fusão sensorial tem como base às duas funções do filtro de Kalman: time_update() e measurement_update(). A primeira realiza a previsão do estado do robot e da confiança do sistema (matriz P) a partir da informação da hodometria (incrementos dos encoders-rodas). A segunda realiza correcções da posição e orientação do robot segundo os erros entre as observações e as estimativas da posição de alvos (landmarks) no mundo, que neste caso são as linhas. As estimativas da posição dos alvos no mundo são realizadas pela função pose_estimation(). Por outras palavras, esta função faz o matching (emparelhamento) do pontos observados no mapa do mundo.

 

A figura abaixo ajuda a compreensão da fusão da informação proveniente dos sensores utilizados:

 

1

                                                                                                                Figura 18:                        Estimação da posição/orientação do robot

 

 

 

Nota: A grande vantagem da fusão sensorial é a utilização simultânea de muitos sensores com características que podem ser semelhantes ou completamente diferentes.

 

2.2.3.1 - Matching no mundo

 

O processo de procura de pontos correspondentes no mundo aos observados é designado por matching (emparelhamento). Os pontos resultantes deste processo são os chamados pontos ou valores estimados.

 

Na figura abaixo é visível a diferença entre o valor estimado e observado para o ângulo. É esta diferença (inovação) a responsável pela correcção da previsão do estado do robot.

 

 

 

1

 

                                                                                                                                    Figura 19:                        Estimação vs Observação

 

 

Funções utilizadas

 

Inicializações:

kalman_init() -> inicialização do filtro de Kalman.

 

Matching:

pose_estimation() -> estimação dos pontos observados.

 

Previsão - filtro de Kalman:

Time_update() -> previsão do estado do robot.

 

Correcção - filtro de Kalman:

measurement_update() -> correcção do estado do robot.

 

 

 

 

 


 

3 -             Sistema de coordenadas

 

Os sistemas de coordenadas são sistemas que representam pontos no espaço a 2 ou 3 dimensões. Entre 1596 e 1650 René Descartes introduziu sistemas de coordenadas baseadas em coordenas ortogonais (ângulos rectos) – sistemas cartesianos.

            No robot temos quatro sistemas de coordenadas cartesianas: sistema de coordenadas do mundo, do robot, da câmara e da imagem.    

 

Ø     Sistemas de coordenadas do mundo:

Face à necessidade de localização do robot no meio envolvente, que neste caso à pista (pista do oito), a origem e a orientação dos eixos do sistema de coordenadas do mundo está fixa como ilustra a figura abaixo. Neste sistema é descrito o meio envolvente, ou seja o mundo, que é constituído por objectos, robot e câmara. Este sistema é definido pelos eixos de coordenadas Xw, Yw e Zw.     

 

Ø     Sistemas de coordenadas do robot:

É definido a partir do eixo de hodometria e não do centro de massa do robot, isto porque a hodometria é a base de toda a informação de movimento do veículo. A área ou o volume ocupado pela estrutura no meio envolvente é localizada em função do eixo de hodometria. Este sistema é definido pelos eixos de coordenadas Xr, Yr  e Zr.       

 

Ø     Sistemas de coordenadas da câmara:

É definido a partir da posição da câmara no robot. É com base neste sistemas de coordenadas que a projecção e o campo de visão é definido. Este sistema é definido pelo eixo de coordenadas Xc, Yc  e Zc. 

 

A figura seguinte ilustra os sistemas de coordenadas descritos anteriormente:     

 

 

 

 

 

1

                                                                                                                                    Figura 20:                        Sistemas de coordenadas

 

Ø     Sistemas de coordenadas da imagem:

 

Nas câmaras digitais, os sensores CCDs estão ordenados em forma matricial. Assim o sistema de coordenadas da superfície do sensor é solidário aos foto-detectores, possibilitando a realização da orientação interna do sensor sem ser necessário recorrer a marcas de referência (marcas fiduciais). A partir do sistema de coordenadas da superfície do sensor pode-se, por transformação, obter as coordenadas de todos os pontos (pixeis) no sistema de coordenadas da imagem (u,v). É necessário garantir que o sensor permaneça fixo e perpendicular em relação ao eixo óptico do sistema óptico.

 

1

                                                                                                                        Figura 21:                        Sistema de coordenadas da imagem

        

Um ponto Pw no referencial do mundo 1  é representado no referencial da câmara 1 através de duas matrizes. Essas matrizes são a matriz de Rotação (R) e a matriz de Translação (T). A matriz R tem dimensões 3x3 e descreve a orientação da câmara relativamente ao mundo. A matriz T tem dimensões 3x1 e descreve a posição da câmara no mundo. Estas duas transformações constituem os parâmetros extrínsecos da câmara.  

1

                                                                                                                                     Figura 22:                        Sistema de coordenadas

 

A representação do ponto Pw no referencial da câmara (Pc) é dada pela seguinte equação:

1

 

 

O ponto Pc é representado no referencial da imagem {Oi, u, v} através do modelo utilizado para a projecção em perspectiva descrito anteriormente.

 

1

 

É importante salientar que os sistemas de coordenadas também estão relacionados por uma matriz de rotação (3x3) e uma de translação (3x1). Desta forma existem as seguintes matrizes:

 

1  -  matriz de rotação entre o mundo e o robot

1  -           de rotação entre o robot e a câmara

1  -          de rotação entre o mundo e a câmara

 

1  -  matriz de translação entre o mundo e o robot

1  -           de translação entre o robot e a câmara

1  -          de translação entre o mundo e a câmara

 

A relação entre os pontos será sempre dada pela equação:

 

1

 

A posição da câmara no robot resultou de um processo experimental, visando dois aspectos principais, tais como: o volume observado do mundo (neste caso a pista) e a observação um ou mais pontos do robot. 

 

Nota: A observação de um ou mais pontos do robot pelo sistema de visão tem como objectivo a implementação futura de um sistema de calibração automático. No decorrer deste relatório este assunto será novamente abordado.

 

As figuras abaixo exemplificam a posição actual da câmara no robot. O sistema de visão tem a câmara fixa, ao contrário de outros sistemas que utilizam câmaras rotativas. O facto da câmara encontrar-se fixa tem um motivo que é a diminuição de incertezas nas observações efectuadas pelo sistema de visão.   

 

1 1

                                                                                                 Figura 23:                        a) Vista de perfil do robot; b) Vista de frente do robot.

 


4 -             Problema da integração de Sistemas de Navegação Inercial

 

 

4.1 – Definição dos objectivos

 

Pretende-se efectuar a integração de sistemas com sensores inerciais (acelerómetros e giroscópios) no sistema de navegação dos veículos autónomos de competição na classe de condução autónoma do Festival Nacional de Robótica. O Sistema de Navegação Inercial (INS - Inertial Navigation Systems) possui já processamento próprio e a integração do mesmo permitirá melhorar a qualidade do posicionamento e controlo do robot bem como determinar situações de derrapagem ou choque.

 

No caso presente vai ser necessário utilizar um giroscópio para determinar a orientação do robot, tentando identificar possíveis erros de posição e orientação do robot e possivelmente um acelerómetro para determinar a aceleração do robot, tentando identificar situações de derrapagem e choque do robot.

 

 

4.2 – Identificação dos requisitos

 

Tendo em conta os objectivos é necessário identificar e clarificar os requisitos do problema proposto.

 

Fusão Sensorial é um método para integrar dados provenientes de vários sensores, de modo a obter a melhor estimativa do estado dinâmico do sistema.

 

O algoritmo Sistema de Navegação Inercial - “Inertial Navigation Systems – INS” integra informação da aceleração e ângulos proveniente de uma Unidade de Medição Inercial (Inertial Measurement Unit - IMU) para calcular a posição, velocidade, e atitude do veículo. O algoritmo tem em conta a velocidade de rotação da Terra e inclui um modelo da gravidade da Terra. Um algoritmo INS é bastante robusto e fiável no entanto é necessário ter cuidado pois os sensores inerciais podem introduzir erros que podem rapidamente levar o sistema a divergir. O sistema de navegação deve ter em conta estas fontes de erros para ser capaz de corrigir o IMU estimado. O algoritmo mais usado para lidar com um INS é o Filtro de Kalman (FK).

 

Um sensor inercial de baixo custo pode determinar a velocidade angular e aceleração que pode ser integrado por um algoritmo INS para obter a posição e velocidade do robot. As medidas, de um sensor inercial, podem ser deturpadas por ruído, factores de escala e factores não lineares tal como a temperatura. Ao integrar as medidas do sensor inercial no algoritmo INS, os erros vão se acumular, levando a um desvio significativo dos dados de velocidade e posição estimados pelo algoritmo. Uma das grandes vantagens dos sensores inerciais é a possibilidade de se retirar dados do sensor com uma elevada taxa de amostragem, sendo muito eficaz para sistemas com uma dinâmica em constante mutação.

 

 


4.2.1 - Filtro de Kalman Linear (FKL)

 

O clássico FKL é muito atractivo para aplicações UAV de baixo custo devido à sua simplicidade e baixa necessidade de poder de processamento. A sua principal desvantagem é o facto de só permitir o cálculo de estimativas lineares. Para ser usado com a dinâmica de um robot, que é não linear, tem de se linearizar o modelo do robot tendo condições típicas. Desta forma o FK vai estimar não o estado do robot, mas as perturbações ao estado do robot. Este método só se torna aceitável, se a missão a desempenhar pelo robot, for bem definida e linear.

 

 

4.2.1.1 – Filtro de Kalman Complementar (Complementary Kalman Filter - CKF)

 

A implementação do FKC utiliza um algoritmo INS para obter a posição e velocidade estimados sendo depois comparados depois com os dados provenientes da hodometria e visão (no problema a resolver).

 

No exemplo encontrado, em que combina sensores inerciais e GPS, o sinal de erro leva o FKL que estima os erros de posição, velocidade e atitude do INS, tal como erros do sensor inercial. Estes erros estimados podem ser usados para corrigir os dados estimados e os erros dos sensores inerciais.

1

 

                                                                                         Figura 24:                        Diagrama de blocos de um algoritmo GPS/INS usando um FKC

 

A principal vantagem da implementação FKC é que apenas o algoritmo INS (que não necessita de muito poder de processamento) necessita de acompanhar a elevada taxa de amostragem dos sensores inerciais. O FK, no exemplo acima, apenas precisa de ser actualizado com a taxa de amostragem mais baixa do GPS.

 

A desvantagem do FKC é a suposição de que a estimativa dos erros é linear, o que nem sempre é verdade.

 

 


4.2.2 – Filtro de Kalman Não Linear

 

O bem estabelecido FK Extendido (Extended Kalman Filter - EKF) quando usado em conjunto com actualizações de medições sequenciais como no método Bierman-Thornton pode melhorar a estimativa do estado do robot, com um peso moderado na parte computacional. O FK Unscented (“Unscented Kalman Filter – UKF”) é um algoritmo que permite uma solução mais precisa (de 3ª ordem) mas com uma maior carga em termos computacionais.

 

A vantagem do FK Não Linear é a possibilidade de estimar directamente, a dinâmica do veículo (que normalmente é não linear). Tanto o estado do veículo como as equações de medida dos sensores podem ter termos não lineares. Isto resulta numa certeza na estimativa, sobre um maior número de condições de operação. A maior desvantagem do Filtro de Kalman Não Linear é que os algoritmos são mais complexos do que com a implementação linear, sendo necessário por este motivo mais recursos de processamento.

 

 

4.2.2.1 – Filtro de Kalman Extendido Discreto (“Discrete Extended Kalman Filter”)

 

O Discrete Extended Kalman Filter (filtro discreto de Kalman para sistemas reais/não lineares) é o filtro mais utilizado na fusão de informação interna com informação externa. Sendo o filtro que está presentemente implementado.

 

A equação genérica para sistemas discretos não lineares:

 

1

xk – estado do sistema(x, y, θ) no instante k.

uk – entrada do sistema (incremento da roda direita, incremento da roda esquerda ) no instante k.

k – instante de tempo (sistema discreto).

f(.) – função não linear do sistema.

Wk-1 – ruído do sistema no instante anterior (k-1).

tk  ruído da entrada do sistema no instante k.

 

O estado do sistema é a localização do robot ou veículo, é composta pela posição (x, y) e orientação (θ) em tempo real no mundo. A entrada do sistema é constituída pelos incrementos de cada roda (hodometria). Qualquer sistema que utilize um computador é obrigatoriamente discreto, logo a função do sistema é uma função de um instante de tempo k. O sistema é um sistema real, logo a função que o descreve é não linear. A localização do sistema contém duas variáveis de ruído inerentes ao processo de estimação.  

 

A equação genérica para observações discretas não-lineares:

 

1

 

zk – estado da observação no instante k.

k – instante de tempo.

h(.) – função não linear da observação.

vk – ruído da observação no instante k.

 


Na realidade os valores das variáveis de ruído são desconhecidos em cada instante de tempo (k). No entanto, pode-se aproximar o estado do sistema e da observação, removendo as variáveis de ruído explicitas nas equações anteriores:

1

1

1  - aproximação do estado do sistema no instante k.

1  - aproximação do estado da observação no instante k.

1 - é a estimação posterior do estado do sistema(no instante anterior ao k). 

 

Assume-se que o ruído do sistema, da entrada e da observação é Gaussiano, com valor médio igual a zero, e é representado pelas matrizes de covariância Q, T e R, respectivamente:

 

1

           

O processo de estimação é determinado pela linearização das equações do sistema e da observação. Assim temos que:

 

1

 

1  - estado actual do sistema no instante k.

1  - estado actual da observação no instante k.

 

As matrizes que caracterizam o sistema (A), a entrada (B) e a observação (H) são calculadas através das derivadas parciais (matrizes Jacobianas) da função do sistema (f(.)) e da observação (h(.)):

 

11

 

 

A – matriz que caracteriza o sistema.

B – matriz que caracteriza a entrada do sistema.

H – matriz que caracteriza a observação.

O EKF realiza uma estimação à priori (previsão) do estado futuro do sistema 1 , baseado no modelo do sistema f(.) e projecta a matriz de “confiança” à priori do estado 1 , utilizando as equações de actualização do estado (“time update equations”):

 

1

 

1  - estimação à priori do estado do sistema no instante k.

  1  - estimação posterior do estado do sistema no instante anterior (k-1).

1  - matriz de confiança à priori do estado do sistema.

 

Assim que exista informação da observação 1 , é calculado a matriz de ganho de Kalman 1  para o instante k. Esta matriz é utilizada na estimação posterior do estado do sistema 1 . A matriz de confiança do estado actualizado do sistema 1  é calculada a partir das equações de actualização da observação (“measurement update equations”):

 

1

 

1  - matriz de ganho de Kalman.

1  - estimação posterior do estado do sistema no instante k.

1  - matriz de confiança do estado actual do sistema.

 I - matriz identidade.

1

Estimativas iniciais para xk e Pk

 

(1) Calcula o ganho de Kalman

1

 

 

 

 


1

1

 


1

 

1
1
 


1

 

1

 

 

 

 

 

 

As variáveis do estado do sistemas utilizadas no filtro de Kalman são as coordenadas cartesianas (x,y) e a orientação (θ), as quais descrevem a localização do veículo. A informação da hodometria é considerada como a informação de entrada do sistema, ao passo que a informação da visão é a informação da observação.

 

O modelo cinemático discreto do veículo utilizado no filtro de Kalman é o modelo descrito na introdução na secção da Hodometria, que tem como base o método de Dead-Reckoning para a estimação da posição e orientação do robot.

 

O modelo cinemático discreto do robot:

 

1

 

onde:

1

Quando 1 , ou seja quando a trajectória é uma recta, o modelo poderá ser simplificado:

 

1

  

O estado do sistema pode ser escrito da seguinte forma:

 

1

 

O vector de entrada de informação:

 

1

 

A função do sistema:

1

 


As matrizes Jacobianas do sistema (Ak) e da entrada (Bk):

 

1

 

1

 

 

1

 

sendo:

1 , 1 , 1  , 1

e

1 , com 1  

 

As variáveis estocásticas do modelo da observação são: o ângulo da landmark i no referencial do veículo ( 1 ) e o ângulo entre o ponto médio do veículo e a landmark , no plano x-y ( 1 ).

As figuras abaixo exemplificam a observação de um ponto (landmark) no meio ambiente (mundo) em duas vistas: vista de topo e de perfil.

 

   

1

 

                                                                                                                                       Figura 25:                        Vista superior do robot

 

1 - ângulo da landmark i no referencial do robot

1 - distância entre a landmark i e o eixo de hodometria

11 - posição da landmark i no eixo 1  do mundo

1 - posição da landmark i no eixo 1  do mundo

 

1

                                                                                                                                       Figura 26:                        Vista de perfil do robot

 

1 - ângulo entre o ponto médio do veículo e a landmark , no plano x-y   

1 - elevação do ponto médio do veículo à landmark

 

A função da observação:

1

1

1

 

O estado da observação pode ser escrito da seguinte forma:

 

1

 

Nota: No caso da pista considera-se o 1  (elevação do ponto médio do veículo à landmark) constante.

 


A matriz de observação 1 :

1

 

1

 

 

4.2.2.2 – Filtro de Kalman Unscented (“Unscented Kalman Filter”)

 

 

O filtro de Kalman Unscented é uma versão melhorada do filtro de Kalman Extendido, introduzido por Simon J. Julier e Jeffrey K. Uhlman sendo criado tendo como base o filtro de Kalman Extendido este novo filtro inclui melhorias no comportamento com lógicas não lineares.

 


 

4.3              - Análise de Requisitos

 

 

Tendo em vista a resolução do problema proposto vai ser utilizado um dos giroscópios digitais da Analog Devices - ADXRS150 e ADXRS300 sendo também possível a utilização do acelerómetro também da Analog Devices - ADXL202E.

           

Da análise dos datasheets dos circuitos integrados (IC) a utilizar foi possível determinar que a precisão dos sensores depende da temperatura, dai a necessidade de precauções para minorar a dependência da temperatura, podemos resumir algumas das características no quadro abaixo.

 

 

ADXRS150

ADXRS300

ADXL202E

Ruído (a 25ºC)

0.05 º/s/√Hz

0.1 º/s/√Hz

200 μg√Hz rms

Taxa de amostragem

*

*

Ajustável de 0.5ms – 10ms

 

* Como a saída é analógica a taxa de amostragem vai depender do AD utilizado, contudo a saída analógica pode ser ajustada usando o condensador COUT.

 

 

4.3.1 – Giroscópios ADXRS150/ADXRS300

 

Os giroscópios ADXRS150 e ADXRS300 permitem a utilização de técnicas de compensação tendo para isso disponível uma saída de temperatura e uma referência de precisão. Dispõe de duas entradas digitais para proceder a um auto teste (“SELF TEST”).

 

1

                                                                                            Figura 27:                        Diagrama de blocos do funcionamento do IC ADXR150/300

 

 

 


4.3.2 – Acelerómetro ADXL202E

 

O acelerómetro de dois eixos ADXL202E permite o ajuste da taxa de amostragem através de uma resistência RSET.

1

                                                                                                 Figura 28:                        Diagrama de blocos do funcionamento do IC ADXL202E

 

O ruído do acelerómetro é dado por:

image

Para BW=100Hz temos:

image

 

Em que BW é largura de banda do acelerómetro, que determina a resolução do mesmo. Torna-se assim importante um ajuste da largura de banda de modo a ter uma amostragem aceitável, sem aumentar de forma exagerada o ruído.

 

 

 

 

 

 

           


4.4              - Estudo das alternativas para integração inercial

 

Para resolver o problema da integração de informação dos sensores inerciais podemos averiguar a possibilidade de várias alternativas. A primeira seria, aproveitando o filtro de Kalman já implementado, programar um segundo filtro de navegação que iria conjugar a informação que é recebida da Hodometria e do Giroscópio; sendo que os dados que dai resultam são fornecidos ao primeiro filtro de Kalman. Está abordagem tem a vantagem de ser possível aumentar a taxa de amostragem (tendo em conta uma amostragem síncrona) do segundo filtro de navegação, é possível a partir de um maior número de amostras descartar erros aleatórios, sem a necessidade de muito poder computacional; outra vantagem é que os contributos dos vários sensores é mais transparente, e inclusão dos algoritmos de correcção dos erros do giroscópio e dos encoders podem ser integrados no segundo filtro. A figura abaixo exemplifica esta primeira abordagem.

image

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                                                       Figura 29:                        Diagrama de blocos do funcionamento da integração inercial usando dois filtros de Kalman

 

Uma segunda abordagem, seria a que é exemplificada na figura abaixo, toda a informação seria introduzida num único filtro de navegação. Está abordagem tem a vantagem de toda a informação estar centralizada, facilitando o acesso à mesma. Se se considerar uma amostragem assíncrona dos sensores inerciais em relação à visão podemos ter resultados semelhantes à abordagem anterior.

image  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


                                                          Figura 30:                        Diagrama de blocos do funcionamento da integração inercial usando um filtro de Kalman

 

As abordagens referidas podem ser implementadas usando vários algoritmos, por exemplo na primeira abordagem, pode ser mantido o uso do EKF no primeiro filtro enquanto que o segundo pode ser implementado usando um UKF. Para permitir o teste dos vários algoritmos possíveis será necessário a implementação dos mesmos fazendo uso do Matlab.


4.5 – Estado da arte

 

No estudo efectuado das tecnologias necessárias para a resolução do problema proposto no trabalho de Laboratório de Sistemas foi possível determinar a existência de muitas soluções e abordagens ao problema proposto. Para além do normalmente utilizado, FK em todas as suas variantes Lineares e Não Lineares, é possível também fazer uso de soluções combinadas que permitem melhorar o desempenho do FK.

 

Foram possíveis de identificar três métodos mais ou menos distintos de fusão sensorial:

- Método 1 - [13] fusão sensorial de visão e giroscópio;

- Método 2 - [9 - 12] fusão sensorial de hodometria e giroscópio;

- Método 3 - [22] fusão sensorial de encoder diferencial e giroscópio.

 

O Método 1, enunciado por Suya You e Ulrich Neumann [13], este método propõe um meio de integração de informação da visão e do giroscópio para detecção de marcos visuais em tempo real. Apesar de se tratar de um método válido de integração de informação sensorial, a sua abordagem ao problema da integração sensorial não tem como objectivos a determinação da posição e orientação do robot.

 

image

                                                                                                     Figura 31:                        Representação esquemática do filtro de navegação

 

 

image

                                                                                                               Figura 32:                        Diagrama de blocos do filtro de navegação

 

 

image

                                                                                                                            Figura 33:                        Sensor híbrido visão - giroscópio

 

O Método 2, inicialmente enunciado em 1996 por J. Bronstein e L. Feng [12], e utilizado posteriormente como base, para trabalhos posteriores de Farouk Azizi e Nasser Houshangi [10 - 11] e Mariolino De Cecco [9]; é um método que combina informação de Giroscópios e Hodometria para a determinação da posição do robot. Para testar e validar o método foram conduzidos testes experimentais. Num teste inicial (exemplificado na figura abaixo), que serve de referência, foram tiradas medidas de hodometria, giroscópio e sonar. Sendo que o sonar foi utilizado, neste teste inicial, pois permite uma medição mais exacta da orientação do robot.

 

image

  Figura 34:                        Orientação do robot medida pela hodometria (θodo), giroscópio (θgyro) e sonares (θsonar). Durante 2:20 o robot andou 10cm, encontrou no percurso um total de 15 lombas de diferentes alturas debaixo da sua roda direita.

 

image

                             Figura 35:                        Efeito de uma lomba isolada na orientação do robot, medições efectuadas utilizando hodometria e o giroscópio.

 


Noutro teste experimental (como mostra a figura abaixo), agora com o método implementado, é possível verificar que existe uma correcção efectiva das medidas da hodometria e do giroscópio.

image

     Figura 36:                        Durante 2:20 o robot andou 10cm, encontrou no percurso um total de 15 lombas de diferentes alturas debaixo da sua roda direita. Orientação do robot medida pela hodometria (εodo), giroscópio (εgyro) e utilizando o método Gyrodometry (εgo).

 

 

 

 

O Método 3, enunciado por KyuCheol Park, Hayyoung Chung, Jongbin Choi e Jang Gyu Lee [22], desenvolve um sistema de navegação utilizando um encoder diferencial e um giroscópio. O sistema de navegação depende do encoder, sendo que o mesmo é calibrado usando um giroscópio. Podemos ter duas abordagens, no estudo do filtro de kalman para um sistema de navegação de um robot. A primeira é usar um filtro de Kalman extendido (filtro de Kalman directo) e a segunda é usar um filtro de Kalman indirecto.

 

O filtro de Kalman directo [24 - 25] utiliza os dados do encoder e do giroscópio exclusivamente (como é exemplificado na figura abaixo), ou seja, o filtro não corrige nem os erros sistemáticos do encoder nem os erros do giroscópio, apenas tenta reduzir os seus erros tendo um modelo independente de cada sistema (encoder e giroscópio). Neste tipo de abordagem o filtro de navegação é o filtro de Kalman.

 

image

                                                                  Figura 37:                        Representação esquemática da navegação de um robot utilizando um FK directo

 


O filtro de Kalman indirecto estima os erros sistemáticos do encoder e os erros estocásticos do giroscópio explicitamente, sendo que eles são depois introduzidos no sistema de navegação do encoder. Para além disto, o encoder e o giroscópio podem se compensar mutuamente através do filtro de Kalman.

 

Os erros sistemáticos do encoder e os erros estocásticos do giroscópio são modelados e incluídos no filtro de navegação.

 

image

                                                                Figura 38:                        Representação esquemática da navegação de um robot utilizando um FK indirecto

 

 

image

                                                                            Figura 39:                        Diagrama de blocos do sistema de navegação que utiliza um FK indirecto

 

A principal vantagem deste método é o facto do mesmo filtro de Kalman conseguir corrigir os erros tanto do encoder com do giroscópio.
4.6 - Simulação em MatLab

 

Para se proceder à simulação do Robot e teste dos vários algoritmos vamos utilizar o Matlab. É necessário ponderar quais as vantagens e desvantagens da escolha do Matlab.

 

Vantagens:

- o Matlab é uma ferramenta de utilização alargada, estandardizada, com um ambiente de programação bastante maduro e com um grande número de funcionalidades incluídas de raiz;

- a programação em Matlab é fácil;

- o Matlab corre em muitas plataformas e sistemas operativos;

- a toolbox não necessita de qualquer instalação ou compilação (partindo do pressuposto de que o Matlab já se encontra instalado).

 

Desvantagens:

- o Matlab é software comercial e caro;

- apesar de todas as optimizações, o Matlab necessita de bons recursos de hardware para funcionar sem perdas de desempenho das aplicações.

 

 

4.6.1 - The CAS Robot Navigation Toolbox

 

A toolbox do Matlab, CAS Robot Navigation Toolbox, é uma ferramenta desenvolvida pelo centro de I&D (Investigação & Desenvolvimento) Centre for Autonomous Systems (CAS) da instituição de ensino Kungl Tekniska Högskolan (KTH), localizada em Estocolmo na Suécia.

 

image

                                                                                             Figura 40:                        Figura de apresentação da CAS Robot Navigation Toolbox

 

Trata-se de uma ferramenta que segue uma filosofia open-source o que permite uma grande liberdade na sua utilização e alteração.

 

A toolbox está direccionada para simulação da navegação de um robot diferencial utilizando a técnica de navegação SLAM.

 

Dispõe de um modelo de robot diferencial em que tem em conta os erros sistemáticos nesse modelo, um ponto a melhorar será a inclusão dos erros sistemáticos no modelo existente.

 

Como se pode verificar na figura abaixo, que ilustra a estrutura funcional da toolbox, a navegação do robot vai basear em dados “puros” dos sensores (o bloco de simulação ainda não foi desenvolvido).

 

Apesar desta toolbox estruturar e disponibilizar algumas funções e funcionalidades útil para a simulação do problema presente, são necessários muitas alterações a esta toolbox.

 

 

image

              Figura 41:                        Estrutura em 3 camadas da “The CAS Robot Navigation Toolbox” o bloco Simulation (a cinzento) ainda não foi implementado


 

As alterações vão passar pela adição:

- do modelo dos sensores inerciais à toolbox;

- do modulo de simulação em simulink (adaptação e expansão do modelo simulink representado abaixo de trabalho de Sistema de controlo de LSIS);

- dos métodos de integração de sensores inerciais.

 

 

image

           Figura 42:                        Modelo Simulink de um robot diferencial do trabalho do Sistema de controlo para veículo autónomo terrestre em ambiente semi-estruturado de LSIS


4.6.2 – Outras Toolboxes interessantes

 

De seguida são descritas algumas toolboxes para o Matlab que apesar se terem aplicação no trabalho presente são utilizadas actualmente para configuração do robot ou podem servir de apoio para adição de novas funcionalidades na CAS Robot Navigation Toolbox.

 

4.6.2.1 - Robotics Toolbox

 

A toolbox do Matlab, Robotics Toolbox, é uma ferramenta para aplicação em braços robóticos e manipuladores industriais a sua referência deve-se ao facto de providenciar funções manipulação de vectores e outras necessárias para o posicionamento e orientação com três dimensões.

image image

image image

                                                                                     Figura 43:                        Exemplo de um braço robótico e vários manipuladores industriais

 

image

                                                                                                                       Figura 44:                        Modelo Simulink da Robotics toolbox

 

No caso dos robots terrestres, unicamente se utiliza duas dimensões, está toolbox não é interessante para esta área, no entanto, para áreas como veículos aéreos e afins será uma ferramenta a analisar. 


4.6.2.2 - Camera Calibration Toolbox

 

Para calibração das câmaras dos robots é utilizada a Camera Calibration Toolbox.

 

image

                                                                                       Figura 45:                        Figura de apresentação da toolbox Camera Calibration Toolbox

 

 

4.6.2.3 - Omnidirectional Calibration Toolbox Extension

 

Caso se utilize uma câmara omnidireccional podíamos utilizar a Omnidirectional Calibration Toolbox Extension para calibrar a mesma.

 

image

                                                                                Figura 46:                        Painel inicial da toolbox Omnidirectional Calibration Toolbox Extension

 

 

 

image

                                                                   Figura 47:                        Imagens de calibração da toolbox Omnidirectional Calibration Toolbox Extension

 


4.7 - Estudo das políticas de teste e calibração dos sensores

 

Para efeito de testes de calibração e afinação dos algoritmos de correcção de erros dos encoders e do giroscópio, pode ser utilizado o teste UMBmark (University of Michigan Benchmark test for mobile robots) definido por Borenstein e Feng [16], trata-se do estabelecimento de uma trajectória composta por quatro trajectos de 4m cada, sendo assim definido um quadrado. O robot deve iniciar no ponto de referência (Start) e retornar ao mesmo ponto (End).

image

                                                                                                          Figura 48:                        Representação esquemática do teste UMBmark

 

O teste UMBmark pretende estabelecer um método estandardizado de correcção de erros sistemáticos daí que este teste deve ser realizado a uma velocidade reduzida, para impedir o aparecimento de erros aleatórios de deslizamento. O robot deve fazer o percurso em ambas as direcções.

 

No teste bi-direccional UMBmark podemos definir duas características de erro:

- Tipo A: é definido como o erro de orientação do robot, que reduz (ou aumenta) a rotação do robot em ambas as direcções.

 

- Tipo B: é definido como o erro de orientação do robot, que reduz (ou aumenta) a rotação total do robot numa direcção, mas que aumenta (ou reduz) a rotação total do robot na direcção contrária.

image image

                                                                                                  Figura 49:                        Exemplo de simulação de teste UMBmark bi-direccional

 

Para executar este teste terá de ser definida e implementada uma missão/manobra pelo gestor de missões, sendo o mesmo responsável pela execução da lógica de controlo do robot; os resultados devem ser guardados num ficheiro de texto para posterior consulta.


5         - Conclusões

 

  A toolbox do Matlab, CAS Robot Navigation Toolbox escolhida para proceder à implementação da simulação dos métodos para a integração de informação de sensores inércias, apesar de estruturar e disponibilizar algumas funções e funcionalidades úteis para a simulação do problema presente, necessita de muitas alterações dai ter sido realizado um contacto com o autor da toolbox (Kai Arras) para a possibilidade de colaboração e resposta a possíveis dúvidas, ao qual o autor respondeu positivamente. Fica assim criado um ambiente de colaboração no melhoramento da toolbox, perspectivando-se que com trabalho sucessivos seja possível alargar a utilização da toolbox em outras áreas como UAV (Unmanned Aerial Vehicles) e UUV (Unmanned Underwater Vehicles) do Laboratório de Sistemas Autónomos


6        - Referências/Bibliografia

 

[ 1 ]     Relatórios de Projecto de Fim de Curso 5º ano, do curso de Engenharia Electrotécnica – Electrotécnica – Ramo de Automação e Sistemas no Instituto de Engenharia do Porto (ISEP) do Instituto Politécnico do Porto (IPP), dos alunos Nuno Xavier Lopes Moreira, Alexandre Rocha, Eduardo Silva e Ismael Ribeiro Neves;

[ 2 ]     Google – http://www.google.com;

[ 3 ]     Wikipedia – http://www.wikipedia.org;

[ 4 ]     Analog Devices www.analog.com;

[ 5 ]     Unmanned Dynamics, LLC - http://www.u-dynamics.com;

[ 6 ]     Computer and Information Science Papers CiteSeer Publications ResearchIndex - http://citeseer.ist.psu.edu/cs;

[ 7 ]     IEEE Xplore - http://ieeexplore.ieee.org;

[ 8 ]     Google Scholar - http://scholar.google.com/;

[ 9 ]     Mariolino De Cecco, ”Sensor fusion of inertial-odometric navigation as a function of the actual manoeuvres of autonomous guided vehicles”, (Padova) Itália-Abril 2003;

[ 10 ] Farouk Azizi e Nasser Houshangi, “Mobile Robot Position Determination Using Data From Gyro And Odometry”, (Indiana) U.S.A.;

[ 11 ] Farouk Azizi e Nasser Houshangi, “Sensors Integration for Mobile Robot Position Determination”,  ( Indiana ) U.S.A. , 2003;

[ 12 ] J. Bronstein e L. Feng, “Gyrodometry: A New Method for Combining Data from Gyros and Odometry in Mobile robots”, Proceeding of the 1996 IEEE International Conference on Robotics and Automotion, (Minneapolis) Minnesota-Abril 1996;

[ 13 ] Suya You e Ulrich Neumann, “Fusion of Vision and Gyro Tracking for Robust Augmented Reality Registration”, (Los Angeles) California;

[ 14 ] Louis Drolet, François Michaud e Jean Côté, “Adaptable Sensor Fusion Using Multiple Kalman Filters”, (Québec) Canada;

[ 15 ] Greg Welch e Gary Bishop, “An Introduction to the Kalman Filter”, (Chapel Hill) Chapel Hill-Setembro 1997;

[ 16 ] Borenstein, J. e Feng. L., 1995b, "UMBmark: A Benchmark Test for Measuring Dead-reckoning Errors in Mobile Robots." 1995 SPIE Conferenceon Mobile Robots, Philadelphia, October 22-26,1995. Borenstein, J., Everett, H.R. , and Feng, L.,1996, "Navigating Mobile Robots: Systems and Techniques" Publisher: AK Peters., Wellesley,MA, ISBN 1-56881-058-X, Projected Publication Date: 2/96;

[ 17 ] Evgeni Kirily e Martin Buehler, “Three-state Extended Kalman Filter for Mobile Robot Localization”, Abril 2002;

[ 18 ] Eric A. Wan e Rudolph van der Merwe, “The Unscented Kalman Filter for Nonlinear Estimation”, Oregon Graduate Institute of Science & Technology, ( Beaverton ) Oregon 2000;

[ 19 ] Simon J. Julier, Jeffrey K. Uhlmann e Hugh F. Durrant-Whyte, “A New Approach for Filtering Nonlinear Systems”, Robotics Research Group, Department of Engineering Science, University of Oxford, (Oxford) United Kingdom, Junho 1995;

[ 20 ] Simon J. Julier e Jeffrey K. Uhlmann, “Uncented Filtering and Nonlinear Estimation”, Março 2004;

 

[ 21 ] Johann Brenstein e Liqiang Feng, “Correction of Systematic Odometry Errors in Mobile Robots”, University of Michigan , 1995,

[ 22 ] KyuCheol Park, Hayyoung Chung, Jongbin Choi e Jang Gyu Lee, “Dead Reckoning Navigation for an Autonomous Mobile Robot Using a Differential Encoder and a Gyroscope”, Automatic Control Research Center, School of Electrical Engineering, Seoul National Polytechnic University, (Seoul) Korea, 1997;

[ 23 ] KyuCheol Park, Dohyung Chung, Hakyoung Chung and Jang Gyu Lee, “Dead Reckoning Navigation of a Mobile Robot Using the Indirect Kalman Filter,” International Conference on Multisensor Fusion and Integration for Intelligent Systems, Washington D.C. USA, Dec. 8-11,1996;

[ 24 ] Billur barshan e Hugh F. Durrant-Whyte, “Inertial Navigation Systems for Mobile Robots”, 1995;

[ 25 ] Barshan, B. and Durrant-Whyte, H. F., 1994, “Orientation Estimate for Mobile Robots Using Gyroscopic Information.” 1994 International Conference on Intelligent Robots and Systems (IR0S ’94). Munich , Alemanha, Setembro. 12-16, pp. 2243-2248;

[ 26 ] Johann Borenstein e Liqiang Feng, “Measurement and Correction of Systematic Odometry Errors in Mobile Robots”, 1996;

[ 27 ] Camera Calibration Toolbox for Matlab http://www.vision.caltech.edu/bouguetj/calib_doc/ ;

[ 28 ] Centre for Autonomous Systems (CAS), Kungl Tekniska Högskolan (http://www.kth.se/), Estocolmo, Suécia, http://www.cas.kth.se/ ;

[ 29 ]  The CAS Robot Navigation Toolbox, http://www.cas.kth.se/toolbox/;

[ 30 ]  Robotics Toolbox for MATLAB, http://www.cat.csiro.au/ict/staff/pic/ ;

[ 31 ]  R. C. Smith, M. Self, and P. Cheeseman, “A stochastic map for uncertain spatial relationships”. in Fourth International Symposium on Robotics Research, pages 421--429, 1987.

[ 32 ]  P. Moutarlier and R. Chatila, “Stochastic multisensory data fusion for mobile robot location and environment modelling”, in Fifth International Symposium on Robotics Research, pages 85-- 94, Tokyo, Japan, Aug. 1989.

[ 33 ]  Kai O. Arras, “Feature-Based Robot Navigation in Known and Unknown Environments”, Thèse N° 2765 (2003), Swiss Federal Institute of Technology Lausanne . [pdf-file, 59.1 Mbytes];

[ 34 ]  Castellanos, J.A.; Neira, J.; Tardos, J.D.; “Multisensor fusion for simultaneous localization and map building” Robotics and Automation, IEEE Transactions on Volume 17,  Issue 6,  Dec. 2001 Page(s):908 - 914 , Digital Object Identifier 10.1109/70.976024;

[ 35 ] Omnidirectional Calibration Toolbox Extension, http://www-sop.inria.fr/icare/personnel/Christopher.Mei/Toolbox.html;

[ 36 ] Trabalho de Sistema de controlo para veiculo autónomo terrestre em ambiente semi-estruturado da cadeira de Laboratório de Sistemas de 5º ano, do curso de Engenharia Electrotécnica – Electrotécnica – Ramo de Automação e Sistemas no Instituto de Engenharia do Porto (ISEP) do Instituto Politécnico do Porto (IPP), dos alunos Marco de Oliveira Marques e António Sérgio Moreira Gonçalves.

 

 

 

ISEP
ISEP Logo

Valid HTML 4.01! Valid CSS!

 
Instituto Superior de Engenharia do Porto - Lab. Sistemas Autónomos
R. Dr. Antonio Bernardino de Almeida
, 431 4200-072 Porto, Portugal Phone: +351 22 8340500 Fax:+351 22 8321159
Última Actualização em: 29.12.2012