UNIVERSIDADE DO ESTADO DE SANTA CATARINA – UDESC CENTRO DE CIÊNCIAS TECNOLÓGICAS – CCT DEPARTAMENTO DE ENGENHARIA ELÉTRICA – DEE PÓS-GRADUAÇÃO EM AUTOMAÇÃO INDUSTRIAL – PGAI Formação: Mestrado em Automação Industrial DISSERTAÇÃO DE MESTRADO OBTIDA POR Jon

141 

Full text

(1)

DEPARTAMENTO DE ENGENHARIA ELÉTRICA – DEE PÓS-GRADUAÇÃO EM AUTOMAÇÃO INDUSTRIAL – PGAI

Formação: Mestrado em Automação Industrial

DISSERTAÇÃO DE MESTRADO OBTIDA POR

Jonas Pereira

AVALIAÇÃO E CORREÇÃO DO MODELO CINEMÁTICO DE

ROBÔS MÓVEIS VISANDO A REDUÇÃO DE ERROS NO

SEGUIMENTO DE TRAJETÓRIAS

Apresentada em 11/12/2003 perante a Banca Examinadora:

Prof. Dr. Silas do Amaral – Orientador – CCT/UDESC Prof. Dr. Edson Roberto de Pieri – UFSC

(2)

DEPARTAMENTO DE ENGENHARIA ELÉTRICA – DEE PÓS-GRADUAÇÃO EM AUTOMAÇÃO INDUSTRIAL – PGAI

DISSERTAÇÃO DE MESTRADO

Mestrando: JONAS PEREIRA – Engenheiro Eletricista Orientador: Prof. Dr. SILAS DO AMARAL – CCT/UDESC

AVALIAÇÃO E CORREÇÃO DO MODELO CINEMÁTICO DE

ROBÔS MÓVEIS VISANDO A REDUÇÃO DE ERROS NO

SEGUIMENTO DE TRAJETÓRIAS

Dissertação submetida à Universidade do Estado de Santa Catarina como parte dos requisitos para a obtenção do grau de Mestre em Automação Industrial.

(3)

COORDENAÇÃO DE PÓS-GRADUAÇÃO - CPG

"Avaliação e Correção do Modelo Cinemático de Robôs Móveis Visando a

Redução de Erros no Seguimento de Trajetórias"

por

Jonas Pereira

Essa dissertação foi julgada adequada para a obtenção do título de

MESTRE EM AUTOMAÇÃO INDUSTRIAL

área de concentração em "Automação e Informática Industrial", e aprovada em sua forma final pelo

CURSO DE MESTRADO EM AUTOMAÇÃO INDUSTRIAL CENTRO DE CIÊNCIAS TECNOLÓGICAS DA UNIVERSIDADE DO ESTADO DE SANTA CATARINA

Dr. Silas do Amaral (presidente)

Banca Examinadora:

Joinville, 11 de Dezembro de 2003

Dr. Edson Roberto de Pieri (UFSC)

Dr. Antônio Heronaldo de Sousa

(4)

v

(Albert Einstein)

Não está na natureza das coisas que o homem realize um descobrimento súbito e inesperado; a ciência avança passo a passo e cada homem depende do trabalho de seus predecessores.

(5)

vi

(6)

vii

Inicialmente, quero agradecer a Deus, por estar sempre me protegendo e guiando pelos bons caminhos durante toda minha vida;

Agradeço, também, ao professor Silas do Amaral, por sua orientação, paciência, e especialmente pelas suas preciosas dicas, que contribuíram enormemente para a elaboração desta dissertação;

Ao professor da UFRGS, Edson Prestes e Silva Júnior, que mesmo não me conhecendo pessoalmente, demonstrou ser muito prestativo e atencioso;

Aos colegas da UDESC, em especial aos do Departamento de Engenharia Elétrica e do curso de Automação Industrial pela convivência e companheirismo;

Aos meus pais, José Mota Pereira e Miranda Felippi Pereira, e demais familiares, pelos conselhos e doses de incentivo;

À minha namorada, Queli Terezinha Schmitz, por sua compreensão, paciência e companheirismo;

Finalmente, não posso deixar de agradecer a todos aqueles, que de uma forma ou de outra contribuíram para a conclusão deste trabalho, permitindo alcançar os objetivos propostos.

(7)

NOME: PEREIRA, Jonas

DATA DA DEFESA: 11/12/2003 LOCAL: Joinville, CCT/UDESC

NÍVEL: Mestrado Número de ordem: – CCT/UDESC FORMAÇÃO: Automação Industrial

ÁREA DE CONCENTRAÇÃO: Automação e Informática Industrial

TÍTULO: Avaliação e Correção do Modelo Cinemático de Robôs Móveis Visando a Redução de Erros no Seguimento de Trajetórias

PALAVRAS - CHAVE: Robótica Móvel; Modelagem Cinemática; Odometria; Controle. NÚMERO DE PÁGINAS: xvii, 124 p.

CENTRO/UNIVERSIDADE:Centro de Ciências Tecnológicas da UDESC PROGRAMA: Pós-Graduação em Automação Industrial - PGAI

CADASTRO CAPES:

ORIENTADOR: Dr. Silas do Amaral

(8)

viii

AVALIAÇÃO E CORREÇÃO DO MODELO CINEMÁTICO DE ROBÔS MÓVEIS VISANDO A REDUÇÃO DE ERROS

NO SEGUIMENTO DE TRAJETÓRIAS

Jonas Pereira

Dezembro/2003

Orientador: Silas do Amaral, Dr.

Área de Concentração: Automação e Informática Industrial.

Palavras-chave: Robótica Móvel; Modelagem Cinemática; Odometria; Controle. Número de Páginas: 124

(9)

ix

EVALUATION AND CORRECTION OF THE KINEMATIC MODEL OF MOBILE ROBOTS LOOKING AT THE REDUCTION OF ERRORS

IN THE PATHES FOLLOWING

Jonas Pereira

December/2003

Advisor: Silas do Amaral, Dr.

Area of Concentration: Industrial Informatics and Automation. Keywords: Mobile Robots; Kinematic Model; Odometry; Control. Number of Pages: 124

In Mobile Robotics, many tasks require accuracy, overcoat with relation to the end position and orientation of the robots. This problem is closely tied to the path planning, wich, from of the information of the starting posture (position and orientation), the expectation is that the robot, from among innumerables possibles pathes, chooses the more convenient and achieves the desired end posture. However this posture, due to the some inexact robot’s kinematic parameters, not always it is possible to be reached in open-loop, resulting in odometry errors. Therefore, in this work, a description is done about the structural properties of mobile robots, types of wheels, restrictions motion associated to each wheel and the characterization of the mobile robots in five distincts classes. Afterwards, this problem concentrates in a class: that of Khepera’s robots. One method of evaluation and correction for the systematic odometry errors is presented. Several results of simulation and experiments for situations of interesting are presented with the intention to validate the study.

(10)

x

1 Introdução ...1

1.1 Breve Histórico dos Robôs Móveis ...1

1.2 Aplicações dos Robôs Móveis...4

1.2.1 Robôs Móveis Industriais ...4

1.2.2 Robôs Móveis de Serviço ...5

1.2.3 Robôs Móveis para Pesquisa ...6

1.2.4 Robôs Móveis de Campo...7

1.2.5 Robôs Móveis para Entretenimento...8

1.3 Formulação do Problema ...8

1.4 Objetivos...9

1.5 Organização ...11

2 Modelagem Cinemática...12

2.1 Descrição do Robô Móvel ...15

2.2 Descrição das Rodas ...16

2.2.1 Rodas Convencionais Fixas ...16

2.2.2 Rodas Convencionais Orientáveis Centradas ...20

2.2.3 Rodas Convencionais Orientáveis Não-Centradas ...20

2.2.4 Rodas Suecas ...21

2.3 Restrições à Mobilidade de um Robô Móvel...22

2.4 Classes de Robôs Móveis ...26

2.5 Exemplo ...29

2.6 Modelo Cinemático de Postura...30

2.7 Propriedades da Classe (2,0)...34

(11)

xi

3.2 Sensores ...41

3.3 Motores ...41

3.4 Especificações Técnicas...44

3.5 Modos de Configuração...45

3.6 Comandos MATLAB ...46

3.7 Considerações Finais ...50

4 Odometria...51

4.1 Cálculo Odométrico a partir do Modelo Cinemático...52

4.2 Definição dos Erros de Odometria...58

4.3 Erros Sistemáticos em Robôs com Tração Diferencial...59

4.4 Método UMBmark...63

4.4.1 Avaliação Experimental...64

4.4.2 Análise dos Resultados ...67

4.5 Aplicação do Método UMBmark ao Khepera ...78

4.6 Considerações Finais ...83

5 Controle e Resultados...84

5.1 Rastreamento ...84

5.2 Controle de Robôs Móveis segundo o Modelo Cinemático de Postura em Coordenadas Cartesianas... ...85

5.3 O Controlador de Rastreamento...85

5.4 Resultados de Simulação ...87

5.5 Resultados Experimentais...96

5.6 Considerações Finais ...104

6 Conclusões e Trabalhos Futuros ...105

6.1 Principais Contribuições ...105

(12)

xii

A.2 Programa UMBmark adaptado ao Khepera...110

B Programa Rastreador-Khepera...112

B.1 Programa em Diagrama de Blocos ...112

B.2.1 Parâmetros de Controle...117

B.2.2 Exibe Gráficos ...118

(13)

xiii

1.1 Shakey, o primeiro robô móvel ...2

1.2 O robô Stanford Cart ...3

1.3 O robô Hilare ...3

1.4 Exemplo de um robô móvel industrial, o Unitload Vehicle ...4

1.5 O robô móvel Koala ...5

1.6 O aspirador robótico RoboCleaner da Kärcher ...6

1.7 O robô Khepera ...6

1.8 O micro-robô Alice ...7

1.9 Exemplo de um robô móvel de campo, o Nomad ...7

1.10 O Aibo da Sony ...8

2.1 Acionamento através de lagartas (robô Urbie)...13

2.2 Acionamento através de pernas (robô Genghis)...13

2.3 Acionamento através de rodas (robô Sojourner)...14

2.4 Sistemas de coordenadas do robô móvel ...15

2.5 Sistema de coordenadas da roda convencional fixa ...16

2.6 Roda convencional orientável não-centrada ...20

2.7 Roda sueca ...21

2.8 Centro Instantâneo de Rotação ...25

2.9 (a) Classe (3,0) utilizando rodas suecas; (b) Classe (3,0) utilizando rodas convencionais orientáveis não-centradas ...27

2.10 Classe (2,0) utilizando duas rodas convencionais fixas e uma roda convencional orientável não-centrada ...27

2.11 Classe (2,1) utilizando duas rodas convencionais orientáveis não-centradas e uma roda convencional orientável centrada ...28

(14)

xiv

2.14 Realização da tarefa do estacionamento: a) robô da Classe (2,0); b) robô da Classe

(1,1) ...34

2.15 Realização da tarefa do labirinto: a) robô de forma circular; b) robô de forma quadrangular ...35

2.16 Formas de alocação do CIR ...35

2.17 Influência de a sobre a realização de manobras ...36

2.18 Relações apresentando as restrições não-holonômicas ...37

3.1 O robô móvel Khepera ...39

3.2 Comunicação entre o Khepera e um Microcomputador ...40

3.3 Posição dos motores e sensores do Khepera. ...41

3.4 Método PWM de acionamento dos motores ...42

3.5 Estrutura de controle dos motores do Khepera ...42

3.6 Relação entre velocidade e posição ...43

3.7 Especificações técnicas do Khepera...44

3.8 Vista lateral do robô Khepera ...45

3.9 Vista superior e inferior do robô Khepera ...45

3.10 Modos de funcionamento do Khepera ...46

3.11 Equivalência entre os comandos Khepera e KMatlab ...49

4.1 Descrição comparativa dos sistemas de posicionamento ...52

4.2 Erros acumulados pela odometria ...52

4.3 Coordenadas de postura (posição e orientação) ...53

4.4 Velocidades angular e linear da roda...54

4.5 Modelo cinemático ...55

4.6 Conseqüência da diferença de diâmetros das rodas ...60

4.7 Erro de postura do robô para uma trajetória quadrada ...64

(15)

xv

sentido ...66

4.10 Ed e EDr podem provocar o mesmo erro de posicionamento, quando o experimento é realizado em apenas um sentido ...66

4.11 Resultados típicos do método UMBmark ...67

4.12 Erros do Tipo A ...70

4.13 Erros do Tipo B ...70

4.14 Raio Rc da curvatura devido a Ed ...75

4.15 Resultado do experimento UMBmark para o Khepera descalibrado ...80

4.16 Resultado do experimento UMBmark para o Khepera calibrado ...83

5.1 Diagrama de blocos do sistema de controle utilizado ...86

5.2 Khepera rastreando uma trajetória retilínea ...87

5.3 Sinais de controle para V...88

5.4 Sinal de controle para !...89

5.5 Erros de postura...89

5.6 Distâncias para o deslocamento do robô ...90

5.7 Khepera rastreando uma trajetória curvilínea...91

5.8 Sinais de controle para V...92

5.9 Sinal de controle para !...92

5.10 Erros de postura...93

5.11 Distâncias para o deslocamento do robô ...93

5.12 Khepera rastreando uma trajetória fechada no sentido horário ...94

5.13 Khepera rastreando uma trajetória fechada no sentido anti-horário...95

5.14 Khepera rastreando uma trajetória sinuosa...96

5.15 Khepera rastreando uma trajetória fechada no sentido horário ...98

5.16 Khepera rastreando uma trajetória fechada no sentido anti-horário...98

5.17 Khepera rastreando uma trajetória sinuosa...99

5.18 Resultados obtidos para trajetória (fechada sentido horário) ...101

5.19 Resultados obtidos para trajetória fechada (sentido anti-horário) ...102

(16)

xvi

B.3 Bloco modelo de referência...113

B.4 Bloco Te (erro de postura)...114

B.5 Bloco controle de rastreamento ...114

B.6 Bloco modelo cinemático do robô...115

B.7 Bloco conversão de velocidades...115

B.8 Bloco modelo cinemático do robô1...116

(17)

xvii

2.1 Características constantes do robô...29

4.1 Resultados obtidos após a realização do método UMBmark para o Khepera...78

4.2 Resultados obtidos após a realização da correção dos parâmetros Ed e EDr ...82

5.1 Valores de controle para a trajetória fechada (sentido horário) ...100

5.2 Resultados obtidos para a trajetória fechada (sentido horário) ...100

5.3 Valores de controle para a trajetória fechada (sentido anti-horário) ...102

5.4 Resultados obtidos para a trajetória fechada (sentido anti-horário) ...102

5.5 Valores de controle para a trajetória sinuosa...103

5.6 Resultados obtidos para a trajetória sinuosa...103

A.1 Valores de controle para o sentido horário...109

(18)

Capítulo 1

Introdução

Nos últimos anos, tem-se observado um vertiginoso crescimento do potencial de sistemas robóticos. Numa primeira etapa, houve um grande desenvolvimento na área de robótica industrial, com a utilização sobretudo de robôs manipuladores. Numa segunda etapa de evolução, pesquisadores em robótica têm concentrado esforços na construção de robôs móveis, introduzindo as capacidades de mobilidade e autonomia para reagir adequadamente ao ambiente, o que abre um vasto campo de novas aplicações e, conseqüentemente, muitos desafios [1].

1.1 Breve Histórico dos Robôs Móveis

A Robotic Industries Association (RIA) define um robô como sendo um manipulador programável multifuncional capaz de mover materiais, partes, ferramentas ou dispositivos específicos através de movimentos variáveis programados para realizar uma variedade de tarefas [2]. Entretanto, esta definição descreve toda uma categoria de máquinas, e sendo assim, qualquer equipamento capaz de ser programado é considerado um robô. Durante décadas a indústria vem utilizando esta tecnologia como substituta da mão-de-obra humana, em especial onde há riscos envolvidos. Os robôs utilizados pela indústria são, de um modo geral, grandes, fixos, capazes de efetuar tarefas como a manipulação de objetos em sua área de trabalho, desprovidos de inteligência de alto nível e não-autônomos (necessitam da interação com os seres humanos). Em resumo, poderiam ser classificados de máquinas-ferramentas.

(19)

limites geográficos, movimentando-se por meio de pernas, lagartas ou rodas, dotados de autonomia ou não, capazes de serem programados em alto nível via software e de sentir o ambiente a sua volta através de seus sensores. Em resumo, são máquinas passíveis de locomoção própria.

Da cronologia dos desenvolvimentos relacionados com a tecnologia da robótica, o primeiro robô móvel construído e reconhecido na bibliografia data de 1968 com a denominação de

Shakey (ver Figura 1.1), desenvolvido no Stanford Research Institute (SRI). Este robô era equipado com uma variedade de sensores, incluindo uma câmera de visão e sensores de toque, o que lhe dava a possibilidade de mover-se de um lado para o outro sobre uma superfície plana.

Figura 1.1 – Shakey, o primeiro robô móvel (adaptado de [3])

Outro robô móvel reconhecido é um veículo de 1977 denominado de Stanford Cart do

(20)

Figura 1.2 – O robô Stanford Cart [5]

Durante os anos 80 vários trabalhos envolvendo robôs móveis foram desenvolvidos em todo o mundo, dentre eles vale ressaltar o Hilare, um robô multisensorial desenvolvido no

Laboratoire d’Architeture et d’Analyse de Systémes (LAAS) em 1983 [4] (ver Figura 1.3).

Figura 1.3 – O robô Hilare [6]

Ao longo dos anos, muita coisa mudou. Hoje em dia, os robôs móveis podem ser encontrados nas mais diferentes formas e modelos, o que lhes compete uma infinidade de aplicações, desde científicas, industriais e até educacionais.

(21)

1.2 Aplicações dos Robôs Móveis

Atualmente no mercado mundial, os robôs móveis são classificados em função da aplicação em cinco grandes áreas:

a) Industriais [2][7]; b) De Serviço [2][7]; c) Para Pesquisa [7]; d) De Campo [2][7]; e) Para Entretenimento [2];

Para um melhor entendimento, a seguir é dada uma descrição para cada uma destas cinco áreas de aplicação, juntamente com alguns principais robôs a elas associados.

1.2.1 Robôs Móveis Industriais

São plataformas móveis, que executam tarefas pesadas, como por exemplo carregar grande quantidade de materiais, peças, etc.

Este tipo de robô em geral, tem uma autonomia muito grande [7], isto é, sua interação com os seres humanos é reduzida. Um dos principais métodos de navegação utilizado por esse tipo de robô consiste no uso de linhas pintadas no chão, que definem o caminho a seguir. O que requer um alto grau de investimento em mudanças de infra-estrutura na planta da empresa, quando da sua implantação. A Figura 1.4 mostra um Automated Guided Vehicle (AGV), o

Unitload Vehicle, como exemplo de um robô móvel industrial.

(22)

1.2.2 Robôs Móveis de Serviço

A robótica de serviço é reconhecida como uma importante área de aplicação para um futuro próximo. Sistemas de robótica móvel autônoma, que executam tarefas de serviço (transporte, manipulação, limpeza, vigilância, etc), podem ser utilizados em ambientes estruturados e com um mínimo de conhecimento prévio destes [7]. A Figura 1.5 mostra o robô

Koala, do K-Team, como exemplo de um robô móvel de serviço. O Koala apresenta uma grande quantidade de possíveis aplicações, destacando-se o transporte de pequenos objetos e a vigilância (adicionando o módulo câmera).

Figura 1.5 – O robô móvel Koala [9]

Outro bom exemplo de robô móvel de serviço é o aspirador de pó robótico RoboCleaner

(23)

Figura 1.6 – O aspirador robótico RoboCleaner da Kärcher [10]

1.2.3 Robôs Móveis para Pesquisa

São robôs utilizados principalmente na área acadêmica para o desenvolvimento de novas tecnologias e para a pesquisa. Muitas empresas, que produzem robôs comerciais, vendem versões para pesquisa de seus modelos [7]. Um exemplo de robô móvel para pesquisa é o robô

Khepera, do K-Team, que é mostrado na Figura 1.7.

O Khepera é um robô de tamanho reduzido e custo relativamente baixo, se comparado a outros robôs no mercado, fato este, que tem feito dele um sucesso dentro das universidades.

(24)

A área acadêmica também pode usufruir do Alice (Figura 1.8), um robô móvel de dimensões ultra-reduzidas desenvolvido na Ècole Polytchnique Fédérale de Lausanne (EPFL). Dentre as possíveis aplicações para o Alice está a investigação de comportamentos coletivos, futebol de robôs e outros temas ligados às áreas da Inteligência Artificial e Robótica Inteligente.

Figura 1.8 – O micro-robô Alice [11]

1.2.4 Robôs Móveis de Campo

Este tipo de robô realiza tarefas em ambientes desestruturados, pouco conhecidos e, geralmente, perigosos. Entre suas aplicações está a exploração espacial, mineração, limpeza de acidentes nucleares, navegação em auto-estradas, exploração de vulcões e muitas outras. A

Figura 1.9 mostra o robô Nomad, como exemplo de um robô móvel de campo.

(25)

O Nomad é o primeiro protótipo da empresa LunaCorp e vem sendo testado no deserto de Atakama, no Chile, sob a supervisão do Robotics Institute, com financiamento da NASA. O objetivo da empresa é criar um parque temático na Terra, de onde as pessoas poderão comandar os veículos e sentir-se virtualmente explorando o solo lunar [4].

1.2.5 Robôs Móveis para Entretenimento

Uma das áreas em que os robôs móveis têm obtido bastante divulgação é na área do entretenimento. Um dos exemplares de maior sucesso é o Aibo da SONY [2] (ver Figura 1.10). Apesar de se tratar de um robô dedicado ao entretenimento, é consideravelmente complexo, pois dispõe de um total de 20 graus de liberdade e de uma grande variedade de sensores [13].

Figura 1.10 – O Aibo da SONY [13]

1.3 Formulação do Problema

(26)

Dentre as etapas envolvidas no planejamento de trajetória de um robô móvel, estão [15]: a) o planejamento da trajetória; b) a determinação do modelo cinemático; c) a execução do plano.

Na etapa do planejamento, são determinados os pontos por onde o robô deve seguir (trajetória) dentro do seu espaço de trabalho para cumprir o seu objetivo.

A segunda etapa trata de descrever o robô em função da velocidade e orientação das rodas no espaço (coordenadas do mundo) em que ele está inserido.

A última etapa tem a missão de executar o planejamento, alcançar efetivamente os pontos desejados, corrigindo possíveis desvios da trajetória planejada.

Sendo assim, a última etapa exerce um papel importantíssimo, pois sem o sucesso desta, a etapa do planejamento (primeira etapa) poderá ficar totalmente comprometida.

1.4 Objetivos

A proposta inicial do trabalho era desenvolver um sistema de planejamento de trajetórias, ou seja, dadas as posturas inicial e final para o robô, fazer com que ele, dentre os possíveis caminhos gerados (levando em conta a presença de obstáculos), escolhesse o caminho ótimo e atingisse a postura final. Entretanto, após alguns testes preliminares, verificou-se que o robô raramente atingia a posição final desejada, aliás, não somente a posição como também a trajetória. Diante deste fato, o trabalho tomou um rumo um pouco diferente, pois, de nada adiantaria ter um sistema de planejamento de trajetórias se a mesma não pudesse ser cumprida.

Várias técnicas para a estimação da posição e orientação de robôs móveis estão disponíveis [7][17][18]. Entretanto, a maioria delas (GPS, giroscópio, landmarks, visão) é sofisticada e de custo elevado. Outras nem tanto (bússola, sonar, encoders).

(27)

em [20] a odometria é combinada com a técnica de landmarks (marcos dispostos no ambiente), com o intuito de se obter uma localização mais robusta. No entanto, a detecção de landmarks, que possui custo computacional elevado pode ser reduzida substancialmente. Para tanto, a incerteza dos sensores é incluída ao modelo de odometria, através da adição de um ruído gaussiano idêntico nos dois encoders. Em resumo, objetiva-se entender como os erros de odometria se propagam e simular uma metodologia que os minimize auxiliando na localização do robô; em [21] a forma de propagação dos erros de odometria novamente é abordada, porém, ao invés de landmarks, utiliza-se linhas pintadas no chão em forma de grid, com o objetivo de melhorar a estimação da posição e orientação do robô; já em [22] investiga-se as causas e propõe-se um método experimental de correção para os erros sistemáticos de odometria. A proposta é submeter o veículo a trajetórias quadradas (sentido horário e anti-horário), calcular os erros de localização ocorridos e ajustar alguns parâmetros do modelo cinemático.

Em se tratando da plataforma robótica utilizada, optou-se pela Khepera, devido aos motivos mencionados na Subseção 1.2.3. Ainda, a variedade, a disponibilidade e a facilidade na obtenção de material, aliadas ao fato de a UDESC dispor de duas unidades, tornaram a sua escolha um tanto trivial. Quanto a técnica utilizada para a estimação da posição e orientação, optou-se pela odometria devido a três motivos principais: 1) o Khepera em sua versão básica, dispõe (unicamente) de dois encoders incrementais como forma de obter sua localização; 2) a odometria possui baixo custo e é de simples implementação; e 3) por este ser um trabalho pioneiro na área dentro da UDESC.

A presente dissertação tem por base o trabalho [22] e suas dissidências [23][24]. Assim, foram estudados todos os aspectos envolvidos na obtenção do modelo cinemático do robô Khepera e, a partir deste, as possíveis fontes dos erros de odometria (sistemáticos), quando do seguimento de trajetórias. Propostas de avaliação e correção para estes erros, e de utilização em situações de controle puderam ser avaliadas. Ainda, resultados de simulação e experimentais também foram implementados, fazendo com que as técnicas e modelos utilizados pudessem ser validados.

(28)

1.5 Organização

O restante desta dissertação está organizado da seguinte forma: o Capítulo 2 trata da modelagem cinemática dos robôs móveis. O Capítulo 3 descreve em detalhes a plataforma robótica utilizada (o robô móvel Khepera). O Capítulo 4 traz um estudo completo sobre a influência dos parâmetros cinemáticos na odometria e a forma de corrigí-los. No Capítulo 5, é discutida a forma de controle, juntamente com alguns resultados de simulação e experimentais realizados para trajetórias de interesse. O último, o Capítulo 6, traz as conclusões alcançadas e algumas propostas para trabalhos futuros. Finalmente, no Apêndice A é apresentado o programa UMBmark-Khepera utilizado para a avaliação e correção da odometria e no

(29)

Capítulo 2

Modelagem Cinemática

No mundo da robótica móvel, várias pesquisas estão sendo realizadas com o objetivo de desenvolver (construir e controlar) sistemas de locomoção [25]. Este crescente interesse pelos robôs móveis se deve a grande diversidade de tarefas que podem ser por eles realizadas, e adequá-los da melhor forma possível as exigências das mesmas (precisão, exatidão, e etc) vêm se tornando um trabalho imprescindível.

Para o estudo das técnicas de controle, planejamento e correção de trajetória de robôs móveis, o primeiro passo a ser dado é definir o tipo de acionamento do robô e a classe a que ele pertence, e em seguida, a sua modelagem.

Existem basicamente três métodos para o acionamento de robôs móveis[19]:

• Acionamento através de rodas;

• Acionamento através de lagartas;

• Acionamento através de pernas.

O acionamento através de rodas é o mais utilizado, por ser um mecanismo de fácil construção e adaptar-se bem às condições de operação em ambientes internos e externos, desde que as irregularidades do solo sejam praticamente desprezíveis. Já a utilização do acionamento através de lagartas ou através de pernas reserva-se principalmente à operação em ambientes externos, onde o solo apresenta geralmente acentuadas irregularidades, pois esses acionamentos permitem aos robôs transpor obstáculos com maior facilidade.

(30)

Figura 2.1 – Acionamento através de lagartas (robô Urbie [26])

O robô Urbano, apelidado de Urbie, é o resultado do esforço conjunto do Jet Propulsion Laboratory (JPL) do California Institute of Technology, iRobot Corporation, Robotics Institute of Carnegie Mellon University, e da University of Southern California Robotics Research Laboratory [27]. O robô Urbie foi projetado para o reconhecimento militar móvel em terrenos acidentados, inóspitos e de difícil acesso.

Figura 2.2 – Acionamento através de pernas (robô Genghis [28])

Já o robô Genghis foi desenvolvido no Artificial Inteligency Laboratory do Massachusetts Institute of Technology (MIT) pelo cientista e pesquisador Rodney Brooks [29] com o intuito de desenvolver uma arquitetura de controle robótico similar ao comportamento dos animais. Em [13], é fornecida uma série de outros exemplos de veículos com locomoção por pernas, incluindo sua evolução, desde as primeiras idéias até os dias atuais.

Neste trabalho, serão considerados apenas robôs com acionamentos através de rodas. A

(31)

Figura 2.3 – Acionamento através de rodas (robô Sojourner [30])

Sojourner (do inglês, hóspede temporário) é o batismo carinhoso dado ao modelo Rocky 4

[4], resultado das pesquisas do Jet Propulsion Laboratory (JPL) em parceria com a Nasa e enviado a Marte (Missão Mars Pathfinder) com o objetivo de explorar as características deste planeta e realizar experimentos científicos [2].

De acordo com [19], quatro tipos de modelos podem ser estabelecidos para robôs com acionamento através de rodas: modelo cinemático de postura, modelo cinemático de configuração, modelo dinâmico de configuração e modelo dinâmico de postura.

Os modelos cinemáticos descrevem o robô em função da velocidade e da orientação das rodas, enquanto os modelos dinâmicos descrevem o robô em função das forças generalizadas aplicadas pelos atuadores, por exemplo, os torques nas rodas.

Os modelos de postura consideram como variáveis de estado apenas a posição e a orientação do robô, ao passo que os modelos de configuração consideram, além da postura, outras variáveis internas, como o deslocamento angular das rodas. Do ponto de vista de controle da posição e orientação espacial do robô, apenas os modelos de postura são necessários.

A Seção 2.1 apresenta inicialmente a descrição de um robô móvel genérico e a Seção 2.2, os seus possíveis modelos de rodas. Em seguida, as restrições de mobilidade (Seção 2.3), a divisão dos robôs em classes (Seção 2.4) e um exemplo para uma classe de interesse (Seção 2.5). A Seção 2.6 mostra os modelos cinemáticos de postura e para finalizar, a Seção 2.7

(32)

2.1 Descrição do Robô Móvel

Para este trabalho, admite-se que o robô móvel seja constituído por um corpo rígido, cujas rodas não sofram deformação e que se movimentam apenas no plano horizontal. A posição e a orientação do robô são descritas em relação a um sistema de referência inercial {Xb, Yb} com origem denotada por O, enquanto que um sistema de coordenadas {Xm, Ym} com origem P = (x, y) é associado ao corpo do robô, conforme mostra a Figura 2.4.

Figura 2.4 – Sistemas de coordenadas do robô móvel (adaptado de [32])

Desta forma, as coordenadas de postura do robô, descritas no sistema {Xb, Yb} são dadas pelo vetor (3 x 1):

  

 

  

  =

! y x

" (2.1)

e a matriz de rotação do sistema {Xb, Yb} em relação ao sistema {Xm, Ym} de um ângulo θ é dada por:

  

 

  

  − =

1 0 0

0 cos sin

0 sin cos

)

( ! !

! !

!

R (2.2)

(33)

2.2 Descrição das Rodas

Com relação à modelagem das rodas, considera-se que o plano de cada roda permanece vertical durante o movimento e que a rotação ocorre em torno de um eixo horizontal, cuja orientação em relação ao sistema de coordenadas do robô {Xm,Ym} pode ser fixa ou variável.

As rodas são divididas em duas classes: as convencionais e as suecas. Considera-se, para ambas as classes, que o ponto de contato com o solo é reduzido a um único ponto.

Para a classe de rodas convencionais, o contato da roda com o chão é de rolamento puro e sem deslizamento. A velocidade do ponto de contato com o solo neste caso é zero, o que significa dizer que, as componentes de velocidade paralela e ortogonal ao plano da roda são nulas.

Já para a classe de rodas suecas, apenas uma das componentes de velocidade do ponto de contato é zero. A direção desta componente é arbitrária, porém é fixa em relação à orientação da roda.

2.2.1 Rodas Convencionais Fixas

Para este tipo de roda (ver Figura 2.5), o ponto A é fixo e representa o centro da roda. A posição deste ponto em relação ao ponto P é descrita em coordenadas polares por meio da distância l entre os dois pontos, e pelo ângulo α . A orientação do plano da roda em relação a l

é dada pelo ângulo fixo β. O deslocamento angular da roda em torno do seu eixo horizontal é

representado pela variável ϕ e o raio da roda pela constante r.

(34)

A posição desta roda fica, portanto, caracterizada por 4 constantes: α, β, l e r, e o seu

movimento pela variável temporal ϕ(t).

A velocidade do robô em relação ao sistema de referência inercial, descrita no sistema de coordenadas de referência do robô {Xm, Ym}, é dada por:

" ! R

"!m = ( )! (2.3)

Descrevendo esta mesma velocidade em relação a um sistema de coordenadas de referência {Xw, Yw} associado ao centro da roda, tem a forma:

m w m w m w m

w R # " l R # "

"! ! ( )!

1 0 0 0 0 0 0 0 0 ) (           × +

= (2.4)

onde lw é o braço de giro e Rmw(#) é a matriz de rotação do sistema {Xm, Ym} em relação ao

sistema {Xw, Yw} de um ângulo ψ, e definidos por:

          − − = 0 cos sin $ l $ l

lw (2.5)

          − = 1 0 0 0 cos sin 0 sin cos ) ( # # # # # Rw

m (2.6)

Observando a Figura 2.5, deduz-se que

2

% $ &

#= + − ; portanto, Rmw(#) pode ser reescrita

na forma:           + + + − + = 1 0 0 0 ) sin( ) cos( 0 ) cos( ) sin( )

( & $ & $

$ & $ & # Rw

(35)

Substituindo as Equações (2.3) e (2.5) na Equação (2.4) obtém-se: " ! R # R $ l $ l " ! R # R

"!w mw ! mw( ) ( )!

1 0 0 0 0 0 0 0 0 0 cos sin ) ( ) (           ×           − − +

= (2.8)

Dividindo a Equação (2.8) em duas partes e substituindo a Equação (2.7) em ambas, tem-se para a primeira parte:

" ! R $ & $ & $ & $ &

"!w ( )!

1 0 0 0 ) sin( ) cos( 0 ) cos( ) sin(           + + + − + =

(2.9)

e para a segunda parte:

" ! R $ & $ & $ & $ & $ l $ l

"!w ( )!

1 0 0 0 ) sin( ) cos( 0 ) cos( ) sin( 1 0 0 0 0 0 0 0 0 0 cos sin           + + + − +           ×           − − = ″ " ! R $ l $ l

"!w ( )!

1 0 0 0 0 0 0 0 0 0 cos sin           ×           − − = ″ " ! R $ l $ l

"!w ( )!

0 0 0 sin 0 0 cos 0 0           − =

(2.10)

Somando as Equações (2.9) e (2.10):

″ + ′

= w w

w " " "! ! !

" ! R $ & $ & $ & $ &

"!w ( )!

1 0 0 0 ) sin( ) cos( 0 ) cos( ) sin(           + + + − +

= l $ R ! "

(36)

o que resulta em: " ! R $ l $ & $ & $ l $ & $ &

"!w ( )!

1 0 0 sin ) sin( ) cos( cos ) cos( ) sin(           + + − + − + = (2.11) E como           = ! ' r "w ! !

! 0 , substituindo na Equação (2.11) chega-se a:

" ! R $ l $ & $ & $ l $ & $ & ! ' r ! ! ! ) ( 1 0 0 sin ) sin( ) cos( cos ) cos( ) sin( 0           + + − + − + =           (2.12)

de onde se obtêm as restrições a que está sujeito o movimento do robô para a roda em questão [31][32]:

• Ao longo do plano da roda:

[

−sin(&+$) cos(&+ $) lcos$

]

R(!)"!+r'!=0 (2.13)

Esta restrição declara que o robô pode movimentar-se somente na direção de rolamento da roda e sem a ocorrência de derrapagens.

• Ortogonal ao plano da roda:

[

cos(&+$) sin(&+$) lsin$

]

R(!)"!=0 (2.14)

(37)

2.2.2 Rodas Convencionais Orientáveis Centradas

A descrição deste tipo de roda é a mesma utilizada para rodas fixas, exceto que agora o ângulo $ não é constante, mas variante no tempo (ver Figura 2.5). As restrições ao movimento

do robô também são as mesmas dadas pelas Equações (2.13) e (2.14).

2.2.3 Rodas Convencionais Orientáveis Não-Centradas

Para este tipo de roda (ver Figura 2.6), denota-se o seu centro por A, que se conecta ao corpo do robô no ponto B por intermédio de uma haste rígida de comprimento d. Neste caso, a rotação se dá em torno de um eixo vertical que não passa através do centro da roda.

Figura 2.6 – Roda convencional orientável não-centrada (adaptado de [32])

Desta forma, a Equação (2.5) torna-se [19]:

  

 

  

 

− − − =

0 cos

sin

$ l

$ l d

lw (2.15)

de onde se obtêm as seguintes restrições de movimento [31][32]:

• Ao longo do plano da roda:

(38)

• Ortogonal ao plano da roda:

[

cos(&+$) sin(&+$) d+lsin$

]

R(!)"!+d$!=0 (2.17)

2.2.4 Rodas Suecas

Esta classe de rodas diferencia-se da convencional fixa ao introduzir mais um parâmetro para caracterizar a direção em relação ao plano da roda, que é o do componente nulo da velocidade do ponto de contato da roda com o chão, representado por (. A Figura 2.7 mostra

este tipo de roda.

Figura 2.7 – Roda sueca (adaptado de [32])

Assim, o braço de giro da roda (Equação (2.5)) passará a ser dado por [19]:

  

 

  

 

+ −

+ −

=

0 ) cos(

) sin(

( $ l

( $ l

lw (2.18)

e observando a Figura 2.7, deduz-se que

2

% ( $ &

#= + + − ; portanto, Rmw(#) (Equação (2.7))

(39)

          + + + + + + − + + = 1 0 0 0 ) sin( ) cos( 0 ) cos( ) sin( )

( & $ ( & $ (

( $ & ( $ & # Rw

m (2.19)

Por outro lado, a velocidade do robô descrita no sistema de coordenadas {Xw, Yw} é dada por [19][35]:           = ! " ( ' r "w wy

! ! ! ! cos (2.20)

Pelo fato de se tratar de uma roda sueca, o componente de velocidade normal é desconhecido, pois a velocidade do ponto de contato nesta direção não é nula. Com isto, a restrição do movimento da roda pode ser escrita como [19][31][32][33][35]:

[

−sin(&+$+() cos(&+$+() lcos($+()

]

R(!)"!+rcos('!=0 (2.21)

É importante salientar que 2

%

(≠ ; caso contrário, a roda estaria sujeita a uma restrição

idêntica a de uma roda convencional, anulando o benefício da roda sueca.

2.3 Restrições à Mobilidade de um Robô Móvel

(40)

A configuração deste robô é descrita por intermédio dos seguintes vetores de coordenadas [31]:

• Coordenadas de postura: "(t)=∆

[

x(t) y(t) !(t)

]

T

• Coordenadas angulares: $c(t) e $oc(t) que denotam a orientação das rodas orientáveis

centradas e não-centradas, respectivamente;

• Coordenadas de rotação:

[

]

T

sw oc

c

f t ' t ' t ' t

' t

'( ) ( ) ( ) ( ) ( )

∆ =

• Coordenadas de configuração: "(t), $c, $oc e '.

O número total de coordenadas de configuração é dado por Nf+2Nc+2Noc+Nsw+3 [31]. Assim, as equações que descrevem as restrições (Equações (2.13), (2.14), (2.16), (2.17) e

(2.21)) podem ser escritas na forma matricial:

0 ) ( ) , ( 2

1 $ $ R ! "+J '=

J c oc ! ! (2.22)

0 ) ( ) , ( 2

1 $c $oc R ! " +C $oc =

C ! ! (2.23)

onde:             = sw oc oc c c f oc c J $ J $ J J $ $ J 1 1 1 1

1 ( )

) ( )

,

( ∆ (2.24)

          = ) ( ) ( ) , ( 1 1 1 1 oc oc c c f oc c $ C $ C C $ $

C ∆ (2.25)

          = oc C C 2 2 0 0 ∆ (2.26)

As dimensões das matrizes J1f , J1c, J1oc e J1sw são, respectivamente, (Nf ×3), (Nc×3),

) 3

(41)

rodas ou, no caso de rodas suecas, o raio das rodas multiplicado por cos . As dimensões da (

matrizes C1f , C1c e C1oc são, respectivamente, (Nf ×3), (Nc×3) e (Noc×3). A matriz C2oc

é uma matriz diagonal que contém as distâncias d das rodas não-centradas.

Considerando-se apenas as primeiras (Nf +Nc) restrições referentes às rodas

convencionais fixas e orientáveis centradas, a Equação (2.23) reduz-se a:

0 ) ( ) (

1∗ $ R ! " =

C c ! (2.27)

onde       = ∗ ) ( ) ( 1 1 1 c c f c $ C C $

C (2.28)

o que implica dizer que o vetor R(!)"! pertence ao espaço nulo da matriz C1($c)

, ou seja:

[

( )

]

)

(! " C1 $c

R !∈ Ν (2.29)

As limitações da mobilidade do robô estão relacionadas com o posto da matriz C1∗($c),

dado por )

[

C1∗($c)

]

.

É evidente que

[

1∗( )

]

≤3

c $ C

) . Se )

[

C1∗($c)

]

=3, então R(!)"!=0, o que demonstra a

impossibilidade de se realizar algum movimento no plano. Portanto, deve-se ter

[

1∗( )

]

≤2

c $ C

) .

Assim, define-se o Grau de Mobilidade de um robô móvel com rodas, denotado por *m,

como sendo [31]:

[

( )

]

3

[

( )

]

dim 1 c 1 c

m C $ )C $

* = Ν ∗ = − ∗ (2.30)

Por outro lado se )

[ ]

C1f =2, então o robô possui pelo menos duas rodas fixas cujos planos

(42)

para o robô é a rotação em torno deste ponto (ver Figura 2.8), o que na prática é de pouca ou nenhuma utilidade. Logo, para evitar esta limitação, assume-se que:

[ ]

C1f ≤1

) (2.31)

ou seja, caso o robô possua mais de uma roda convencional fixa, todas elas devem estar montadas em um mesmo eixo.

Figura 2.8 – Centro Instantâneo de Rotação (adaptado de [32])

Além disso, tem-se que )

[

C1∗($c)

] [ ]

)C1f +)

[

C1c($c)

]

. No entanto, a situação em que

[

C1($c)

] [ ]

)C1f )

[

C1c($c)

]

) ∗ < + corresponde a ter-se os centros das rodas orientáveis sobre o

eixo comum das rodas fixas, o que faz as rodas orientáveis perderem a sua capacidade de atuar

sobre a alocação do CIR. Por isso, assume-se que )

[

C1∗($c)

]

=)

[ ]

C1f +)

[

C1c($c)

]

.

Já o Grau de Dirigibilidade de um robô móvel com rodas, denotado por *s, é definido

como o número de rodas convencionais orientáveis centradas que podem ser orientadas independentemente para dirigir o robô:

[

1c( c)

]

s )C $

(43)

Se o robô estiver equipado com um número de rodas convencionais orientáveis centradas maior do que *s (Nc >*s), o movimento das Nc*s rodas excedentes deverá ser coordenado

com as demais, de forma a garantir a existência do CIR [19].

De forma resumida, a configuração das rodas de um robô móvel deve obedecer as seguintes restrições:

3

1≤*m ≤ (2.33)

2

0≤*s ≤ (2.34)

3

2≤*m +*s ≤ (2.35)

Com relação as Restrições (2.33), (2.34) e (2.35) é válido dizer:

• O limite inferior da Restrição(2.33) significa que serão considerados apenas os casos em que é possível o movimento;

• A Restrição (2.34) indica que podem existir no máximo duas rodas orientáveis centradas independentes;

• O limite superior da Restrição (2.35) é devido a condição de que

[

1∗( )

]

≤2

c $ C

) e,

portanto, *s =2 implica *m =1. As configurações em que *m +*s =1 permitem apenas

a rotação em torno de um centro instantâneo fixo, sendo portanto desconsideradas.

2.4 Classes de Robôs Móveis

A partir das Restrições (2.33), (2.34) e (2.35), apenas 5 classes distintas de robôs móveis com rodas, caracterizados pelo par (*m,*s), são possíveis [31]: as Classes (3,0), (2,0), (2,1),

(1,1) e (1,2). A seguir, uma breve descrição sobre cada uma destas classes:

Classe (3,0): Esta classe de robôs móveis (Figura 2.9) apresenta Nf = Nc = 0, ou seja, não existem rodas fixas ou rodas orientáveis centradas e, portanto,

[

1∗( )

]

=0

c $ C

) . Estes robôs são

(44)

Figura 2.9 – (a) Classe (3,0) utilizando rodas suecas; (b) Classe (3,0) utilizando rodas convencionais orientáveis não-centradas (adaptado de [32])

Classe (2,0): Robôs pertencentes a esta classe (Figura 2.10) possuem uma roda convencional fixa (caso haja mais de uma roda fixa, todas devem estar no mesmo eixo, pois é necessário que

[ ]

C1f =1

) ) e, portanto, )

[

C1∗($c)

] [ ]

=)C1f +)

[

C1c($c)

]

=1 com )

[

C1c($c)

]

=0. Os robôs desta

classe normalmente possuem rodas operando em modo diferencial.

Figura 2.10 – Classe (2,0) utilizando duas rodas convencionais fixas e uma roda convencional orientável não-centrada (adaptado de [32])

Classe (2,1): Esta classe de robôs (Figura 2.11) apresenta pelo menos uma roda convencional orientável centrada (Nc ≥1), suas orientações devem ser coordenadas, de forma que

[

C1c($c)

]

=1

(45)

Figura 2.11 – Classe (2,1) utilizando duas rodas convencionais orientáveis não-centradas e uma roda convencional orientável centrada (adaptado de [32])

Classe (1,1): Robôs desta classe (Figura 2.12) possuem uma ou mais rodas convencionais fixas montadas no mesmo eixo de rotação e, portanto, )

[ ]

C1f =1. Possuem ainda rodas

convencionais orientáveis centradas (uma ou mais), com a condição de que seus centros não sejam colocados no mesmo eixo das rodas convencionais fixas. Havendo várias rodas convencionais orientáveis centradas, o seu movimento deve ser coordenado, de forma que

[

C1c($c)

]

=1

) .

Figura 2.12 – Classe (1,1) utilizando duas rodas convencionais fixas e uma roda convencional orientável centrada (adaptado de [32])

Classe (1,2): Robôs pertencentes a esta classe (Figura 2.13) não possuem rodas fixas

[ ]

0)

()C1f = . Em contrapartida, possuem duas rodas convencionais orientáveis centradas ou

(46)

Figura 2.13 – Classe (1,2) utilizando uma roda convencional orientável não-centrada e duas rodas convencionais orientáveis centradas (adaptado de [32])

2.5 Exemplo

Neste trabalho, a atenção está voltada a robôs móveis pertencentes a Classe (2,0). Por isso, esta seção apresentará um exemplo para esta classe de robô, mais precisamente, o robô da

Figura 2.10. Para robôs dotados de duas rodas fixas, como o Khepera que será estudado nos próximos capítulos, basta desconsiderar a informação pertinente a roda convencional orientável não-centrada. Em [31] e [32] são dados outros exemplos para as demais classes de robôs móveis, restringindo-se a atenção a robôs com três rodas.

Nas seções anteriores, pode-se observar que as rodas de um robô móvel são descritas por seis características; três ângulos &, $, ( e três distâncias l, r, d.

Para o exemplo, é fornecida uma tabela (Tabela 2.1) com os valores numéricos destas características e apresentada as várias matrizes J e C envolvidas nas Equações (2.22) e (2.23).

Da Figura 2.10, obtém-se

Tabela 2.1 – Características constantes do robô

Rodas & $ l

1f 0 0 L

2f ! 0 L

3oc 3!/2 - L

(47)

          = r r r J 0 0 0 0 0 0

2 (2.37)

          + − − =       = 3 3 3 1 1 1 sin cos sin 0 0 1 0 0 1 oc oc oc oc f $ L d $ $ C C

C (2.38)

          =       = d C C oc 0 0 0 2

2 (2.39)

Nota-se que as restrições de não-derrapagem das duas rodas fixas são equivalentes (ver as

primeiras duas linhas de C1); Portanto, a matriz C1* (Equação (2.28)) possui posto igual a um, devido a Restrição (2.31), como esperado [31][32].

2.6 Modelo Cinemático de Postura

O modelo cinemático de postura permite uma descrição global do robô. A partir da Relação (2.29), pode-se escrever

=R ! $ +

"! T( ) ( c) (2.40)

onde as colunas de

($c) formam uma base para o espaço nulo de ( ) * 1 $c

C . A dimensão de

($c) é (3×*m) e a do vetor + é (*m ×1). Definindo-se , =∆ $!c, a Equação (2.40) pode ser

(48)

   = =

, $ + $ ! R " c c T ! ! ( ) ( ) (2.41)

que é o modelo do sistema no espaço de estados, tendo as coordenadas de postura " e as

coordenadas angulares $c como variáveis de estado. Como entradas lineares do sistema

tem-se + e , . Salienta-se que a necessidade de se aumentar a Equação (2.40) é devido à

existência de rodas convencionais orientáveis centradas. Por outro lado se Nc =0 (o robô não

possui rodas orientáveis centradas), a matriz ∑ não dependerá de $c e a Equação (2.40) não

precisará ser aumentada.

A seguir é descrito o modelo cinemático de postura para cada uma das cinco classes de robôs móveis [19]:

Classe (3,0):

                    − =           3 2 1 1 0 0 0 cos sin 0 sin cos + + + ! ! ! ! ! y x ! ! ! (2.42)

Classe (2,0):

                =           2 1 1 0 0 sin 0 cos + + ! ! ! y x ! ! ! (2.43)

Classe (2,1):

                      + + =             , + + $ ! $ ! $ ! y x c c c 2 1 1 1

1 0 0 1

(49)

Classe (1,1):                   =             , + $ $ ! L $ ! L $ ! y x c c c c 1 3 3 3

3 0 1

0 cos 0 cos sin 0 sin cos ! ! ! ! (2.45)

Classe (1,2):

[

]

[

]

                          − + + + + + + =                 2 1 1 1 2 1 2 2 1 1 2 2 1 2 1 1 0 0 0 1 0 0 0 ) sin( 0 0 ) sin( sin ) sin( sin 0 0 ) cos( sin ) cos( sin , , + $ $ $ ! $ $ ! $ L $ ! $ $ ! $ L $ $ ! y x c c c c c c c c c c c c ! ! ! ! ! (2.46)

Genericamente, o modelo cinemático de postura pode ser reescrito de forma mais compacta [31]:

u z B

z!= ( ) (2.47)

onde, para Nc =0 (o robô não possui rodas orientadas centradas):

"

z=∆ (2.48)

) ( )

(z R !

B =T (2.49)

+

u=∆ (2.50)

e para Nc ≥0 (o robô possui rodas orientadas centradas):

      = c $ "

(50)

      =

I $ ! R z B c T 0 0 ) ( ) ( )

( ∆ (2.52)

      = , +

u∆ (2.53)

onde na Equação (2.52), I representa a matriz identidade.

Após definidos os modelos cinemáticos de postura é possível analisar melhor a questão da manobrabilidade de um robô móvel acionado por rodas. O Grau de Manobrabilidade, denotado por *M, é definido como

s m

M * *

* = + (2.54)

e fornece o número de graus de liberdade que podem ser influenciados diretamente pelas entradas de controle + e , . Em outras palavras, indica a possibilidade de alocar livremente o

CIR:

*M =3 indica que o CIR pode ser livremente alocado no plano, diretamente através de

+ para robôs da Classe (3,0) ou através da reorientação das rodas centradas para robôs

das Classes (1,2) e (2,1);

*M =2 indica que a posição do CIR está restrita a pertencer a linha que passa pelo

centro das rodas fixas. Esta posição é determinada diretamente por + para robôs da

Classe (2,0) ou através da orientação das rodas centradas para robôs da Classe (1,1).

Entretanto, deve-se ressaltar que o número de graus de liberdade, que podem ser obtidos

diretamente é igual a *m, pois apenas os graus de liberdade determinados por + podem ser

obtidos de forma direta. Por outro lado, a ação de , nas coordenadas de postura é indireta,

pois é obtida através da variável $c, calculada pela integral de , . Na prática, isto pode ser

verificado considerando-se que , modifica apenas a orientação das rodas centradas do robô e,

(51)

manobrabilidade se verifica nos robôs omnidirecionais (Classe (3,0)), para os quais 3

= = m

M *

* .

Em [31] e [32] está demonstrado que o modelo cinemático de postura é irredutível, isto é, não existe uma transformação de coordenadas tal que uma das coordenadas é identicamente nula. Ainda em [31] e [32], pode ser encontrado, um resumo das principais propriedades referentes a controlabilidade e estabilidade, do modelo cinemático de postura dos robôs móveis com rodas.

2.7 Propriedades da Classe (2,0)

Esta Seção discutirá as propriedades relevantes da Classe (2,0) (objeto de estudo dos capítulos seguintes com a utilização do robô Khepera). Para iniciar, uma importante propriedade é a relacionada ao estacionamento. A Classe (2,0) se mostra muito versátil nesta questão, quando comparada a outras classes. Na Figura 2.14, um robô da Classe (2,0) (Figura 2.14a) com tração diferencial pode facilmente realizar a tarefa do estacionamento, ocupando pequenos espaços sem a necessidade de muitas manobras, ao contrário de um robô da Classe (1,1) (Figura 2.14b) do tipo carro.

Figura 2.14 – Realização da tarefa do estacionamento: a) robô da Classe (2,0); b) robô da Classe (1,1) [36]

(52)

passo que, na Figura 2.15b, um robô de forma quadrangular tenta realizar o mesmo trajeto, no entanto, sem sucesso. Robôs de forma quadrangular são destinados principalmente ao transporte de materiais e objetos.

Figura 2.15 – Realização da tarefa do labirinto: a) robô de forma circular; b) robô de forma quadrangular [36]

A execução da tarefa do labirinto pelo robô e de outras (estacionamento em pequenos espaços, rotações em seu próprio eixo) só é facilitada ou possível, se ambas as características (forma circular e tração diferencial) estiverem reunidas. Sendo assim, uma infinidade de manobras poderá ser realizada, dependendo da alocação do CIR (ver Figura 2.16, onde VE e

VD são os vetores de velocidade da roda esquerda e da roda direita respectivamente).

(53)

Observando a Figura 2.16d tem-se que, se os vetores das rodas motrizes estiverem em sentidos opostos, o Eixo Instantâneo de Rotação (EIR), que é o eixo imaginário perpendicular ao plano da superfície de navegação, intercepta a plataforma do robô e, conseqüentemente, seu movimento será uma rotação em torno deste ponto de intersecção. Este eixo corta a superfície de navegação no CIR [25]. Se os módulos das velocidades forem iguais, mas de sentidos contrários, o CIR se localizará exatamente sobre o ponto médio da distância entre as rodas motrizes. Entretanto, em alguns robôs, o ponto médio entre as rodas motrizes poderá não coincidir com o centro geométrico do robô (distância a na Figura 2.17a). Desta forma, o robô descreverá uma trajetória circular com raio ) de curvatura. Por outro lado, se a = 0 (Figura 2.17b), o eixo imaginário entre as rodas motrizes passará pelo centro geométrico da plataforma e o robô apresentará apenas velocidade angular (rotação pura) sem nenhuma translação, característica importante para manobras do tipo docagem1 [25].

Figura 2.17 – Influência de a sobre a realização de manobras (adaptado de [25])

Outra propriedade é a relacionada a movimentação. Veículos móveis com rodas possuem impedimentos naturais em sua movimentação, que são traduzidos matematicamente por equações cinemáticas restritivas. Como resultado destas restrições, chamadas também de restrições não-holonômicas, robôs móveis deste tipo só conseguem deslocar-se na direção para onde estão orientados [37]. Assim, o robô que será alvo de estudo nos próximos capítulos, o Khepera, um representante da Classe (2,0) e dotado de tração diferencial, é um sistema não-holonômico. No caso em estudo, as duas rodas impedem que ele se movimente lateralmente, devido ao atrito. Desta forma, o robô pode deslocar-se apenas na direção em que está

(54)

orientado. Matematicamente, isto pode ser expresso pelas equações derivadas das relações presentes na Figura 2.18.

Figura 2.18 – Relações apresentando as restrições não-holonômicas (adaptado de [37])

0 sin cos

cos sin

tan = = ⇒ y !x !=

! ! dx

dy

! ! ! (2.55)

Esta restrição (Restrição (2.55)) diz que o robô não poderá movimentar-se na direção ortogonal ao seu deslocamento.

V ! y ! x ! dy ! dx

Vdt = cos + sin ⇒ !cos + !sin = (2.56)

Já esta outra (Restrição (2.56)), diz que o robô poderá movimentar-se somente na direção do seu deslocamento.

E agrupando-as de forma mais compacta, no modo matricial:

      =            

−sin cos 0

sin cos V y x ! ! ! ! !

(55)

2.8 Considerações Finais

(56)

Capítulo 3

A Plataforma Khepera

O Khepera (Figura 3.1) é um robô móvel (acionado por rodas e pertencente a Classe (2,0)) comercializado pelo K-Team [38] e desenvolvido no Microcomputing Laboratory (LAMI)do

Swiss Federal Institute of Technology [39], também conhecido como Ècole Polytechnique Féderale de Lausanne (EPFL), com o apoio de outras entidades de pesquisa da Europa, como

University of Zürich, University of Karlsruhe, University of Sussex, Laboratoried’Etudes et Recherche en Informatique e Ècole Nationale Supérieure (Paris) [4]. Ele foi originalmente projetado para servir de ferramenta de ensino e pesquisa do Swiss Research Priority Program. Com ele é possível testar algoritmos desenvolvidos (em simulação) para a geração de trajetórias, desvio de obstáculos, pré-processamento de informações de sensores e hipóteses no comportamento de objetos móveis [40]. Seu tamanho reduzido (altura da ordem de 30 mm, diâmetro de 55 mm e peso de aproximadamente 70 g), incluindo motores, sensores, baterias e processador, aliado a seu custo relativamente baixo, comparado a outros robôs no mercado, tem feito o Khepera um sucesso dentro das universidades [4].

Figure

Updating...

References

Updating...

Download now (141 pages)