UNIVERSIDADE DE PERNAMBUCO
ESCOLA POLITÉCNICA DE PERNAMBUCO
FUTEBOL DE ROBÔS
RECIFE
SETEMBRO/2008
JOSÉ CARLOS BARBOSA PEREIRA FILHO
FUTEBOL DE ROBÔS
Trabalho de iniciação científica apresentado
com o intuito de fomentar a pesquisa na área
de robótica móvel inteligente
ORIENTADOR: Profº Dr. Alcides Codeceira Neto
RECIFE
SETEMBRO/2008
RELATÓRIO FINAL DAS ATIVIDADES DO BOLSISTA
(Relatório individual por bolsista por projeto)1. IDENTIFICAÇÃO DO PROJETO Título do Projeto:
Futebol de Robôs
Professor responsável pelo Projeto (identificar o nome do líder do grupo de pesquisa):
Alcides Codeceira Neto
Equipe Executora
Docente Departamento e-mail
2. IDENTIFICAÇÃO DO BOLSISTA
Nome do Aluno Curso Matrícula e-mail
José Carlos Barbosa Pereira Filho Eng. Mecatronica 05656945456 [email protected]
3. PERÍODO DE REALIZAÇÃO
Início ___01___ / __10____ / _2007______ Término ___30___ / ___09___ / ___2008____
3. Sobre o Projeto
3.1. Resumo do Projeto (Introdução, Objetivos)
3.1.1. Introdução:
Com a criação da robótica e o surgimento da inteligência artificial na década de 50, que tem por objetivo a busca de métodos ou dispositivos com a capacidade humana de resolver problemas, o homem vem desenvolvendo máquinas cada vez mais capazes de tomar decisões e executar tarefas. Este projeto tem o intuito de desenvolver um time de robôs jogadores de futebol da categoria F-180 para participar da competição brasileira de robótica (CBR) e o IX Simpósio Brasileiro de Automação Inteligente (SBAI). Este evento é uma ação conjunta da SBA, SBC, IEEE e RoboCup para divulgar e promover os avanços tecnológicos na área de Robótica Móvel e Mecatrônica.
3.1.2. Objetivo
Construção de um time de robôs jogadores de futebol que recebem instruções de um PC onde as imagens enviadas de uma câmera instalada na parte superior do campo são processadas:
Construção de hardware de movimentação omnidirecional.
Desenvolvimento de circuitos embarcados para o controle dos movimentos do robô. Sistema de visão computacional.
Comunicação por radio freqüência entre o PC e os robôs através de um protocolo de comunicação. Usar os conhecimento de Inteligência Artificial para Implementação de um algoritmo de tomada de
decisão.
3.2. Cronograma proposto
Item Atividade Geral Atividades Específicas Prof. Orientador
1 Estudar os Conceitos Básicos Envolvidos no
Projeto.
Sistemas de Locomoção, Programação Orientada a Objeto,
Inteligência Artificial e Visão Computacional.
2 Construção do Hardware do Robô
Projeta, desenha e desenvolver o sistema de locomoção e hardware do
robô. 3 Desenvolvimento dos
Circuitos Embarcados
Estuda microcontroladores para criação de um circuito para o controle do posicionamento do robô no campo. 4 Comunicação Pesquisar e implementar um sistema
de radio freqüência para a transmissão de dados do PC para os
robôs, obedecendo um protocolo de comunicação
5 Sensoriamento Estuda os tipos de sensores que possam ajuda no reconhecimento e
locomoção no campo. 6 Visão Computacional Estuda as maneiras de
reconhecimento de cores e formas, através de imagens captadas por uma
câmera.
7 Inteligência Artificial Estudar sistemas multiagentes e desenvolver um programa para a
Etapas
10/2007 11/2007 12/2007 01/2008 02/2008 03/2008 04/2008 05/2008 06/2008 07/2008 08/2008 09/2008 1 #### #### 2 #### #### 3 #### #### #### 4 #### #### 5 #### #### 6 #### #### #### #### 7 #### #### #### #### #### #### #### #### #### #### 3.3. Material de estudoGERAÇÃO E CONTROLE DE TRAJETORIA DE ROBÔS MOVEIS OMNIDIRECIONAIS da Costa, Alexandre / Franco, Silva
3.4. Desenvolvimento e Metodologia
A metodologia empregado nesse projeto é baseada na divisão das áreas do conhecimento empregadas. Essas áreas são mecânica, eletrônica e computação que foram estudas separadamente e de forma seqüencial até o término do projeto.
A mecânica ficou encarregada de estudar a estrutura, o sistema de locomoção e os materiais dos quais as peças deveriam ser constituídos.
A eletrônica cuidava da parte dos circuitos embarcados, modo de controle do sistema, protocolo de comunicação e comunicação sem fio.
A computação abrangia a visão computacional, um algoritmo de localização e deslocamento dos robôs e um algoritmo inteligente de estratégia que decidia as melhores jogadas a serem executadas.
3.4.1. Mecânica
No futebol de robôs a parte mecânica tem uma grande importância, tanto na estrutura que vai acomodar e proteger os circuitos, baterias e motores quanto na precisão do sistema de locomoção, porque todos os robôs devem possuir as mesmas formas para não causar desvios quando estiverem se locomovendo. Estes desvios podem ser causados por uma falta de padronização na fabricação da estrutura.
Estrutura
A estrutura dos nossos robôs atendem às especificações da categoria Small Size ou comumente chamada de F-180 no futebol de robôs. A vista superior do robô tem que ter no máximo 180mm de diâmetro e a altura de 150mm.
Fizemos nossa estrutura como mostrado na figura abaixo com as seguintes especificações: altura de 140mm e um diâmetro de 174mm.
Desenvolvimento
Nossa primeira estrutura foi feita em madeira que é um material com resistência mecânica e de fácil corte, mas por ter uma estrutura fibrosa requer alguns cuidados no momento do acabamento. Isso acaba dificultando a precisão da estrutura que é fundamental para um perfeito controle no deslocamento. Para alcançar uma melhor performance utilizamos chapas acrílicas que são fáceis de usinar com equipamento convencional. No entanto, requerem ferramentas específicas para sua operação, de modo a permitir um melhor aproveitamento de corte e acabamento das peças. As figuras abaixo mostram os resultados encontrados com as chapas acrílicas.
As imagens a seguir mostram a estrutura toda montada com os motores fixados nos suportes, desenvolvidos a partir de uma cantoneira em forma de “L”, que por sua vez foram acoplados com parafusos à base. Toda essa estrutura inferior está ligada à estrutura superior por parafusos sem fim de 5mm e porcas.
Sistema de Locomoção Omnidirecional
Figura 2:
Figura 3:
Figura 4:
Figura 5:
No desenvolvimento de projetos sobre robótica móvel é fundamental estudar a área onde o robô irá se locomover e assim escolher a maneira que ele poderá se deslocar. Os sistemas de locomoção mais usados em robótica são com pernas, rodas e esteiras.
As pernas são um sistema de locomoção perfeito, mas por sua complexidade muitas vezes são substituídas por rodas. A dificuldade encontrada em um sistema com rodas é que os obstáculos na área de deslocamento do robô devem possuir altura inferior a metade do diâmetro da roda. Os sistemas com esteiras possuem as seguintes desvantagens: exigem precisão no alinhamento das roldanas para que a esteira não solte, não podem se deslocar em áreas que contenham materiais que possam entrar na esteira e provocar o descarrilhamento desta e o sistema possibilita ultrapassar obstáculos com altura superior a metade do diâmetro das rodas com algumas restrições com a angulação, para evita o capotamento.
O nosso sistema de locomoção utiliza rodas em um sistema omnidirecional que permite a translação sem perder a orientação, diferente de outros métodos de locomoção onde a translação é dependente da orientação. Alguns tipos desse sistema são mostrados abaixo.
A locomoção do sistema omnidirecional é permitida com apenas três motores com as rodas com dois graus de liberdade dispostos 120° um do outros, qualquer acréscimo é redundante, a locomoção do robô se deve ao somatório dos vetores sentido das rodas que resulta no sentido do deslocamento do robô como descrito na figura abaixo.
Rodas
As rodas para o sistema omnidirecional não são como as rodas convencionais, pois estas por terem somente um graus de liberdade dificultam o movimento da mesma no sentido paralelo ao eixo do motor, devido ao atrito com o chão.
As rodas omnidirecionais não foram encontradas comercialmente no mercado nacional, só no mercado internacional, e não atendiam as especificações exigidas pelo projeto, por este motivo projetamos a roda ilustrada abaixo.
Figura 9
Figura 7: Motor com
tração no eixo
Figura 8: Motor com
tração na traseira
3.4.2 Eletrônica Circuito Embarcado
Todos os robôs possuem uma unidade de processamento interna que manipula os dados vindos da unidade central que capta as informações da câmera escolhe a melhor jogada e envia para os robôs as suas novas posições de jogo. Cada circuito embarcado é composto por um microcontrolador da família 8051 que controla duas Ponte H situadas no CI L298 que estão ligados aos motores da Akiyama modelo AK280.
Veja o esquema do circuito abaixo.
A placa do circuito de controle também foi projetada com um gravador ISP de microcontrolador para que o CI não fosse removido durante a fase de teste a cada nova gravação.
Figura 10:
Rodas desenvolvidas no projetoFigura 11:
Rodas encontradas comercialmenteAs especificações do microcontrolador, do L298 e dos motores são mostrados abaixo: Microcontrolador da família 8051 referência: At89S52 Características: 4 portas de I/O 8Kb de ROM 256 de RAM 3 timers
6 Interrupções(3 internas, 2externas e 1 serial) CI L298
Parâmetros Máximos
Os motores modelo: AK280 Fabricante: Akiyama
Modelo Tensão Sem Carga Máximo rendimento Partida
AK280/5-R193
operação nominal rotação corrente rotação corrente torque potencia corrente torque 3-12V 5V 150rpm 0.23A 135rpm 0.3A 0.35kgf.
cm 1.5W 3.0A 6Kgf.cm
Protocolo e Comunicação Wireless
A maneira que os dados são transportados e para onde são destinados é vista nessa seção. Por definição das regras da categoria a comunicação é feita por radio freqüência. Nós usamos o transmissor e o receptor fabricados pela Tato, com uma freqüência de 433MHz. A figura abaixo mostra os módulos emissor e receptor e a sua folha de dados esta disponível no site do fabricante.
Para a implementação do protocolo via hardware usamos o encoder MC145026 e o decoder MC145027 para viabilizar nossos ideais.
Os CI's mostrados acima auxiliaram no direcionamento dos dados enviados pelo computador para os robôs desejados da seguintes maneira: os pinos A1, A2, A3, A4, A5 são destinados aos endereços, onde o CI MC145026 envia o endereço que será comparados com o do CI MC145027 e se os endereços forem iguais o decoder recebe o dado enviado pelo encoder pelos pinos D6, D7, D8, D9.
O esquema abaixo descreve o envio de dados como mencionado acima.
Figura 14
Figura 15
Figura 17
Controle
Para iniciar o desenvolvimento dos softwares de controle tivemos primeiro que realizar um estudo de causa para conhecer os trabalhos já realizados na área e em cima dele desenvolver o nosso controle. Não só fizemos o estudo em cima dos controladores como também pesquisamos formas de representar a localização e orientação dos robôs e os métodos de criação de trajetória.
Métodos de Representar a localização e orientação
Para o deslocamento de robôs que interagem com outros elementos em ambientes dinâmicos ou estáticos é necessário a utilização de ferramentas matemáticas para realizar a localização dos mesmo num sistema de coordenadas qualquer. Nesta obra iremos encontrar os sistemas cartesiano, polar e cilíndrico, métodos de localização de pontos em sistemas coordenados com orientação diferentes utilizando matrizes de rotação e matrizes de transformação homogênea.
Sistema de representação
É necessário possuir um sistema de localização de pontos no espaço. O sistema mais comum de representação de pontos no plano (2D) onde possuem dois graus e duas variáveis independentes é o sistema cartesiano. E pode ser implementado no espaço (3D) com o acréscimo de mais uma variável formando o sistema com os eixos X, Y e Z.
Sistema de coordenadas polares e cilíndricas
Também existem outros métodos de localização de pontos no plano como o sistema de coordenadas polar, que também tem sua representação em 3D. Para a identificação de um vetor no plano é necessário o seguinte par de coordenadas (r,
). onde r é a distancia do ponto até o ponto de intercessão dos eixos (veja Figura 19-a). No modo de representação 3D são utilizados os seguintes pares coordenados (r,
, z), onde r e
têm o mesmo significado da representação no plano e a coordenada z seria o deslocamento do ponto em relação ao eixo Z. (veja figura 19-b).Figura 18: Representação do vetor p no sistema a) 2D e b) 3D
Figura 19:
Representação do vetor p no sistema polar a) no plano e b) no espaçoRepresentação e orientação
Para representação de um ponto no espaço, as suas coordenadas, em um determinado sistema, são suficientes para localizá-lo. No nosso caso a representação de um objeto rígido com suas dimensões, como um robô do time de futebol de robôs da UPE, não é suficiente para definir sua localização, por não especificar sua orientação. Para achar a posição de um ponto em relação a um novo sistema de referência é necessário descobrir uma relação entre os dois sistemas.
Matrizes de Rotação
A relação existente entre os sistemas de orientação é chamada de matrizes de rotação. As matrizes de rotação são o método mais utilizado para a representação devido principalmente a comodidade do uso da álgebra matricial.
Suponha um sistema de eixos fixos OXY e que neste plano exista um robô da equipe de futebol de robôs da UPE com o seu próprio sistema de orientação OUV móvel (veja a figuras 20 e 21). O sistema fixo tem os seguintes vetores unitários ix e jy enquanto que no móvel os vetores unitários são iu e jv. Um vetor p pode ser escrito em ambos os sistemas da seguinte maneira:
[
]
[
]
u u v v T v u uv y y x x T y x xyj
p
i
p
p
p
p
j
p
i
p
p
p
p
.
.
,
.
.
,
+
=
=
+
=
=
=
v u y xp
p
R
p
p
A relação existente entre os dois sistemas é a matriz de rotação que pode ser obtida da seguinte maneira:
=
v y u y v x u xj
j
i
j
j
i
i
i
R
A matriz de rotação também é conhecida como matriz dos cossenos diretos e é ela que permite fazer a troca das coordenadas de um sistema para outro qualquer. Essa matriz tem a seguinte propriedade R-1=RT, ou seja, uma matriz ortonormal. Como num sistema de duas dimensões a orientação só gera uma
única variável independente, e se considerarmos o sistema OUV girando um ângulo
em relação ao sistema OXY teremos a seguinte matriz de rotação:
−
=
α
α
α
α
cos
cos
sen
sen
R
Figura 20
Figura 21
Para o caso de
= 0 a matriz se torna uma matriz identidade e prova que os sistemas coincidem. O sistema tridimensional é similar ao bidimensional, tendo como única diferença o acréscimo de mais um eixo que resultará em mais uma coordenada na representação do vetor no sistema. Tendo o sistema de coordenadas OXYZ com os vetores unitários ix jy kz e o sistema OUVW com os vetores unitários iu jv kw representa-se um vetor p da seguinte maneira:[
]
[
]
x x y y z z T z v x xyw w w v v u u T w v u uvwk
p
j
p
i
p
p
p
p
p
k
p
j
p
i
p
p
p
p
p
.
.
.
,
,
.
.
.
,
,
+
+
=
=
+
+
=
=
A relação entre os dois sistemas é a matriz de rotação.
=
w v u z y xp
p
p
R
p
p
p
onde
=
w z v z u z w y v y u y w x v x v xk
k
j
k
i
k
k
j
j
j
i
j
k
i
j
i
i
i
R
e tem as mesma propriedades existente no sistema 2D. A matriz é denominada ortonormal, pois R-1=RT.
Composição de rotações
A composição de matrizes de rotação serve para expressar as várias rotações contínuas numa rotação resultante. Suponha o sistema OUVW com uma rotação de ângulo
no eixo X, seguida de um rotação de angulo
no eixo Y, seguida de uma rotação de angulo
no eixo Z. Essas rotações podem ser expressas em uma rotação resultante pela multiplicação das matrizes de rotação dos eixos denominadas de matrizes de rotação básicas.( ) ( ) ( )
−
+
−
+
+
+
−
=
=
−
−
−
=
=
α
φ
α
φ
φ
α
φ
θ
α
θ
α
φ
θ
α
θ
φ
θ
α
φ
θ
α
θ
α
φ
θ
α
θ
φ
θ
α
α
α
α
φ
φ
φ
φ
θ
θ
θ
θ
α
φ
θ
cos
cos
cos
cos
cos
cos
cos
cos
cos
cos
cos
cos
cos
cos
cos
0
cos
0
0
0
1
cos
0
0
1
0
0
cos
1
0
0
0
cos
0
cos
,
,
,
sen
sen
sen
sen
sen
sen
sen
sen
sen
sen
sen
sen
sen
sen
sen
sen
sen
sen
sen
sen
sen
x
R
y
R
z
R
T
É importante observa a ordem das rotações, pois o produto entre matrizes não é comutativo. Ângulos de Euler
É uma maneira de representa um sistema tridimensional do tipo OUVW em relação ao sistema OXYZ através de ângulos de rotação denominados ângulos de Euler.
Existem varias formas de representação, mas só iremos utilizar as três mais conhecidas que serão mostradas a seguir.
Representação ZXZ
Essa representação pode ser facilmente observada numa configuração em que os eixos OXYZ coincidam com os eixos OUVW e siga os seguintes passos.
1 - Girar o sistema OUVW com um angulo
em relação ao eixo OZ, e convertendo no sistema OU'V'W'2 - Girar o sistema OU'V'W' com um angulo
em relação ao eixo OX, e convertendo no sistema OU"V"W"3 - Girar o sistema OU"V"W" com um angulo
em relação ao eixo OZ, e convertendo no sistema OU"'V"'W"'Representação ZYZ
Essa representação pode ser facilmente observada numa configuração em que os eixos OXYZ coincidam com os eixos OUVW e siga os seguintes passos.
1 - Girar o sistema OUVW com um angulo
em relação ao eixo OZ, e convertendo no sistema OU'V'W'2 - Girar o sistema OU'V'W' com um angulo
em relação ao eixo OY, e convertendo no sistemaOU"V"W"
3 - Girar o sistema OU"V"W" com um angulo
em relação ao eixo OZ, e convertendo no sistema OU"'V"'W"'Diferenciando do sistema ZXZ a troca do segundo giro.
Figura 23
Figura 22
Representação Yaw, Picth e Roll
Essa representação é muito utilizada na aeronáutica e se popularizou na língua inglesa, E é mais habitual na aplicação de giros sobre sistemas fixos.
1 - Girar o sistema OUVW com um ângulo
em relação ao eixo OX, É o denominado Yaw; 2 - Girar o sistema OUVW com um ângulo
em relação ao eixo OY, É o denominado Picth; 3 - Girar o sistema OUVW com um ângulo
em relação ao eixo OZ, É o denominado Roll.Igual aos casos anteriores para rotações sucessivas é necessário conhecer a ordem das rotações, pois a multiplicação de matrizes não é comutativa.
Matrizes de Transformação Homogênea
No estudo feito até agora nós vimos métodos de localização e orientação feitos individualmente, para resolver esse problema será introduzido agora um método de representação que junta a localização e a orientação chamado de matrizes de transformação homogênea.
Coordenadas e matrizes homogêneas
A representação em coordenadas homogêneas de um sólido no espaço com n dimensões é representado um vetor com n+1 dimensões, ou seja, um vetor P(x,y,z) é representado como P(wx,wy,wz,w), onde w tem um valor arbitrário e representa o fator da escala.
O vetor nulo é representado da seguinte maneira [0,0,0,n]T e os vetores que representam direções, pois
tem longitude infinita é representado da seguinte maneira [a,b,c,0]T.
Matriz de Transformação Homogênea
As matrizes de transformação homogênea são matrizes de 4ª ordem e servem para transforma um par de coordenadas de um sistema para um outro qualquer.
=
=
Escala
a
Perspectiv
Translação
Rotação
w
f
p
R
T
x x x x 1 1 3 1 1 3 3 3As matrizes de transformação homogênea são compostas por sub-matrizes de tamanhos distintos: uma delas é a matriz de rotação R3x3; uma outra é um vetor de translação p3x1; e uma matriz f1x3 que
representa uma transformação de perspectiva e uma matriz w1x1 que é a escala global.
Modelagem Cinemática
O modelo cinemático é descrito a partir das velocidades desenvolvidas pelos rodas do robô e despreza as forças que atua no mesmo.
A figura acima mostra os sistemas de orientação das rodas denominado de Sci, onde i varia de 1 á 3 e representa o número de rodas, o sistema Sr que é o de orientação do robô e o sistema cartesiano de referência Si. A figura também mostra a distância entre os motores e o centro de massa do robô que é localizado no centro do circulo que representa a base do robô. Algumas condições são estabelecidas para o estudo cinemático como, as rodas só tocam em um ponto do plano e coeficiente de atrito estático é suficiente para que não haja deslizamento entre as rodas e o campo.
[
x
y
θ
]
Tξ =
Epsilon representa o vetor postura do robô em relação ao sistema Si, onde x e y representam as coordenadas e teta a orientação. Para ter o vetor postura retirado do sistema inercial com referencia ao sistema Sr, devemos aplicar a equação abaixo.
( )
RR
θ
ξ
ξ =
1 Onde( )
−
=
1
0
0
0
cos
0
cos
θ
θ
θ
θ
θ
sen
sen
R
As componentes da velocidade do sistema de orientação do robô são resultantes da somas das componentes das rodas. A equação mostrada abaixo mostra a relação das velocidades no sistema Sr e no sistema Sci.
( )
( )
( )
( )
( )
( )
−
−
−
=
'
1
0
0
cos
cos
cos
'
θ
φ
φ
φ
φ
φ
φ
θ
ci Ci R R Y X i i i i i i Y Xv
v
l
sen
lsen
sen
v
v
Modelagem DinâmicaA modelagem dinâmica diferente da modelagem cinemática usa as forças que interagem com o robô para descrever os seus movimentos. As equações abaixo descrevem os movimentos de translação e rotação do robô levando em consideração a física clássica.
∑
∑
F
=
m
.
a
e
M
o=
I
Z.
θ
Onde F, m, a, M, I e teta representam respectivamente o somatório das forças, m a massa do robô, a aceleração, somatório dos momentos angulares, o momento de inércia e a aceleração angular.
(
)
(
)
=
+
+
−
=
+
=
"
'
'
3 2 1θ
θ
θ
z X Y Y Y X XI
l
f
l
f
l
f
v
a
m
F
v
a
m
F
R R R R R RSendo f1, f2 e f3 as forças de tração das rodas e
l
a distância entre as rodas e o centro de massa.A figura acima mostra a relação das forças resultantes do robô no sistema Sr e justifica as equações mostradas abaixo.
−
=
+
+
−
=
δ
δ
δ
δ
sen
f
sen
f
F
f
f
f
F
R R Y X 3 2 3 2 1cos
cos
Sigma representa o ângulo entre as forças f1 e f3 em relação ao eixo x do sistema Sr como a
figura acima.
Substituindo os valores de
F
XeF
Y nas equações anteriores encontraremos as acelerações.Z X Y Y X
I
l
f
l
f
l
f
v
m
sen
f
sen
f
a
v
m
f
f
f
a
R R R R 3 2 1 3 2 3 2 1"
'
'
cos
cos
+
+
=
−
−
=
−
+
+
−
=
θ
θ
δ
δ
θ
δ
δ
TrajetóriasEm robótica a trajetória por onde um robô ira se locomover descrita por um ponto inicial e final podendo ter ou não pontos intermediários e restrições entre esses pontos. Esse trajeto tem que ser percorrido de maneira suave para não causar os seguintes problemas citados:
Ilimitada potencia fornecida pelos atuadores, que não podem fornecer devido as suas limitações físicas. Mudanças bruscas de velocidade podem causar deslizamento no contato do chão com as rodas.
Movimentos bruscos também podem causar vibrações que prejudicar o desempenho dos elementos de fixação.
Para isso o uso de interpolação com funções polinomiais ajudam a suavizar as trajetórias. O uso de interpolação linear é a maneira mais simples de gerar trajetórias, mas esse tipo de interpolação gera descontinuidades nos pontos de intercessão da primeira derivada,ou seja causa mudanças bruscas na velocidade. Para resolver este problemas de descontinuidades na velocidade usaremos a interpolação cúbica que garante o valor zero nas velocidades inicial e final. A interpolação cúbica resolve o problema de descontinuidade da velocidade mas não garante continuidade na aceleração, para isso é usado
interpolação polinomial de grau cinco, onde são definidas as acelerações com valor nulo nos pontos iniciais e finais. Nas figuras abaixo ilustram as diferenças encontradas na posição, a velocidade e na aceleração do robô usando interpolação cubica e de grau cinco.
A criação de pontos intermediários entre a posição inicial e a posição final usando qualquer um dos métodos descritos acima não é viável, pois não há uma evolução na velocidade e aceleração pois a cada novo ponto as medidas de velocidade e aceleração se anulam.
Via points
Uma maneira que resolver o fato dos valores de velocidade e aceleração caírem sempre para zero é usar
um método chamado de via points que consiste em introduzir pontos intermediários entre os pontos inicial e final e interpolar tudo em um único polinômio interpolador. O único problema para esse método é que
quando maior o número de pontos intermediários inseridos na trajetória maior é o numero de equações e variáveis no sistema que leva a um custo computacional alto para encontrar a solução do sistema.
Cubicas Spline
Funções cubicas spline são compostas por um conjunto de polinômios interpoladores de grau m, sendo m pequeno. Estes polinômios atendem as exigências de continuidades nos pontos de conexão. Deste modo as funções spline não tornam-se mais complexas com o aumento de pontos a serem interpolados possibilitando a interpolação de ilimitados pontos sem ter problemas com resoluções matemáticas.
Vejamos agora como a interpolação com funções spline com N pontos
P
k(
t
k,
s
k)
,onde k é igual a1 ,2 ,3...,N e gerando N-1 polinômios.
Supondo
P
k(
t
k,
s
k)
eP
k+1(
t
k+1,
s
k+1)
pontos consecutivos sobre a função S(t), o k-ésimo polinômio é dado pors
k( )
t
k .( )
k k(
k)
k(
k)
k(
k)
kk
t
A
t
t
B
t
t
C
t
t
D
s
=
−
3+
−
2+
−
+
(1)Para
t
k<
t
<
t
k+1 Os coeficientesA
k,B
k,C
keD
k, devem ser encontrados através das derivadasprimeira e segunda nos pontos
t
k et
k+1.( )
k k(
k)
k k k kt
A
t
t
B
t
t
C
s
'
=
3
−
2+
2
(
−
)
+
(2)( )
k k(
k)
k kt
A
t
t
B
s
"
=
6
−
+
2
(3)Os coeficientes
B
k,C
keD
kpodem ser encontrados com as equações acima apenas fazendot
k tender at.
( )
k k ks
t
B
"
2
1
=
(4)( )
k k ks
t
C
=
'
(5)( )
k k ks
t
D
=
(6)mantendo as condições de continuidade nos pontos podemos afirma que
( )
( )
( )
( )
( )
1 1( )
1 1 1 1 1 1 1"
"
'
'
+ + + + + + + + +=
=
=
k k k k k k k k k k k kt
s
t
s
t
s
t
s
t
s
t
s
(8)para encontrar o valor de
A
ksubstituiremos o valor da equação 4 em 3 e obteremos.k k k k
A
t
B
B
6
2
2
+1=
∆
+
(9) onde∆
t
k=
(
t
k+1)
−
t
k AchandoB
k na equação (4)( )
( )
(
k k k k)
k ks
t
s
t
t
A
"
"
6
1
1−
∆
=
+ (10)Resolvendo a equação (1)para
s
k( )
t
k+1( )
( )
( )
1 2 3 +=
+
∆
+
∆
+
∆
k k k k k k k k kt
B
t
C
t
D
s
t
A
(11)Isolando
C
k da equação acimaA
k,B
k eD
k( )
( )
(
k k k k)
k k k kt
s
t
s
t
t
s
C
"
2
"
6
1
1+
∆
−
∆
∆
=
+ (12) onde( )
k k( )
k k ks
t
s
t
s
=
−
∆
+1De acordo com a condição de continuidade da primeira derivada de
s
k emt
k+1, expressa pela segunda equação de 8 e de acordo com a equação 2, a seguinte expressão é obtida:( )
12
2
3
A
k∆
t
k+
B
k∆
t
k+
C
k=
C
k+ (13)ou deslocando o polinômio acima para o instante anterior,
(
k)
k k k k kt
B
t
C
C
A
−∆
−+
−1∆
−1+
−1=
2 1 12
3
(14)Substituindo as expressões 10, 4 e 12 na expressão acima, um sistema linear indeterminado com N − 2 equações para N variáveis s”k é obtido. Este sistema é
mostrado em (15)
( ) (
) ( )
−
∆
∆
∆
∆
=
∆
+
∆
+
∆
+
∆
− − − − − − + 1 1 1 1 1 1 12
"
"
"
6
"
k k k k k k k k k k k k k kt
s
t
s
s
s
t
t
s
t
t
t
s
t
(15) para k = 2, 3 ..., N-1Para que o sistema (15) seja determinado é necessário acrescentar duas novas equações a ele, de acordo com algumas condições. Essas condições dependem das restrições que se deseja impor à função interpoladora, representando o tipo de spline a ser usado. Por exemplo, se s”1(t1) e s”N−1(tN) forem definidas como zero, a spline obtida será chamada de spline cúbica natural. Este tipo de spline define que as acelerações nos pontos extremos da trajetória s(t) serão nulas.
Tipos de Controle Controle Cinemático
O controle cinemático só leva em consideração a modelagem cinemática do robô considerando que o controle de velocidade seja perfeito. Na realidade isso não pode ser alcançado por causa do momento de inercia e da massa do robô e pelas características físicas e elétricas dos seus atuadores. Esse tipo de controle é inviável em robôs de grande porte, podendo ser utilizado em alguns robôs de pequeno porte e baixa velocidade.
Controle Dinâmico
O controle dinâmico diferente do cinemático é aconselhado para ser usado em robôs de grande porte com alta velocidade e aceleração. No controle dinâmico a velocidade e controlada a partir do torque empregado nos atuadores. O que prejudica esse tipo de controle é a falta de linearidade do atrito da superfície de contato com as rodas.
Controle em Cascata
O controle em cascata foi a melhor forma escolhida por nós, pois usa os dois tipos de controle mencionados acima ligados em cascata. O controlador dinâmico gera uma malha interna que gera um torque ligado a uma velocidade de referencia (Vr) da malha externa constituída pelo controlador cinemático que por sua vez recebe o sinal de entrada E e compara com o erro e.
O diagrama de bloco abaixo descreve o controle em cascata utilizado em nosso projeto.
Sistema de Visão
Nosso sistema de visão representa uma parte muito importante em nosso projeto ele consiste na captura das imagens que nos revelam as posições e orientações de cada robô do nosso time, a posição do time adversário e da bola e a região do campo onde cada jogador se encontra. Para conseguir que o sistema de visão consiga esses objetivos primeiramente o sistema tem que passar por uma calibragem para detectar as cores das marcações colocadas em cima de cada jogador, como manda a regra da competição, e a cor da bola.
O Sistema de visão funciona da seguintes maneira mostrada logo abaixo.
Figura 29
Aquisição da
Imagem
Pré-processamentoSegmentação
EstratégiaRobô
Câm
era
Câm
era
Figura 28:
Controle baseado
na dinâmica
Robô
Cinemática inversa
Controle baseado
na cinemática
Malha de Controle Dinâmico
Malha de Controle Cinemático
Vf
torque
V
E
As imagens foram capturadas por uma webcam instalada no computador como descrito nas regras da competição. A partir das imagens adquiridas o algoritmo de processamento fazia uma subtração entre a imagem do campo sem os jogadores e da imagem com os jogadores para economizar processamento e em seguida entregar a imagem subtraída ao algoritmo de localização, que encontra as coordenadas da bola e as coordenadas e orientações dos jogadores do time e as coordenadas dos jogadores do time adversário. Um exemplo do algoritmo que encontra a posição e orientação esta ilustrado abaixo, a marca azul no centro do robô indica a coordenada onde ele esta e a marca vermelha indica a frente do robô. Achando o centro de cada marca o robô traça um vetor entre os pontos que será o vetor posição no sistema de referência global.
Após o pré-processamento as imagens são segmentadas, armazenadas e depois destruídas um exemplo de imagem segmenta é mostrado na próxima ilustração.
Ilustração 30
3.5 Conclusão
A construção do time de robôs jogadores de futebol teve uma metodologia que facilitou o desenvolvimento tanto da parte eletrônica, mecânica e computacional.
Nosso estudo sobre os tipos de sistemas de representação e localização no espaço e o controle de trajetória com funções cubicas spline não só se aplica a o futebol de robôs mas também a diversas áreas como automação industrial controle de manipuladores.
Os robôs do projeto possuem o um sistema de locomoção omnidirecional que é ideal para sistemas robóticos móveis que necessitem ter independência entre a translação e a rotação, possibilitando um maior mobilidade dos movimentos realizados durante a trajetória.
O sistema mecânico mesmo tendo apresentado exito, mas buscando um melhor acabamento e desenvolvimento do projeto precisa ser todo desenvolvido em uma peça única metálica para base que será ligada para parte superior através de elementos de fixação, com isso diminuiria a quantidade de partes conectadas a base expostas a vibrações que podem causar folgas para as partes ligadas.
O circuito embarcado, mesmo tendo funcionado como esperado, pode ser melhorado e implementado um controle de uma quarta roda para obter melhor performance nas trajetórias.
O algoritmo de visão, assim como a estratégia, tem de ser desenvolvidos com tecnologia de software de computação inteligente para obter resultados mais rápidos e precisos.
3.6 Dificuldades Encontradas
Espaço físico
As regras da competição definem a área do campo com as seguintes dimensões 4,20m X 6,10m e a câmera situada a 4 m da superfície do campo. Essas especificações dificultaram a montagem de toda a estrutura para testes tornando ineficaz a calibração da câmera e os testes para o controle da trajetória para evitar colisões.
Eletrônica
Na eletrônica os circuitos embarcados obtiveram os resultados esperados, mas o envio e recebimento de dados via RF causa muitos ruídos que foram minimizados com o uso de encoder e decoder.
Financiamento e Equipamentos
Tivemos dificuldade para fazer teste com o circuito embarcado por que faltava de um gravador de microcontrolador de família 8051 no laboratório de eletrônica e uma câmera de filmagem digital . Logo tivemos que projetar um gravador para realizar os testes e agora este projeto esta sendo realizado para suprir a falta que existia no laboratório.
A foto do gravador e o layout estão mostrados abaixo.
Rodas
Pela falta de rodas omnidirecionais no mercado tivemos que projetar as nossas e em seguida usinar em uma empresa já que a escola não dispunha de uma fresa. A empresa solicitada cobrou R$ 1800 para usinar 15 rodas, como os recursos financeiros são limitados este custo se tornou inviável.
Chutador
Um driver de dribnig não pode ser instalado pela falta de equipamentos mecânicos que nos proporciona-se precisão nos furos na hora da instalação e os custos que ele iria gerar pela compra dos motores e componentes.
O chutar foi projetado e esta ilustra do abaixo:
O chutador funciona com um circuito de elevação de tensão que é armazenado em um capacitor e quando acionado descarrega em um solenóide que provoca uma força com sentido para o centro do solenóide em um núcleo de ferro situado na sua extremidade acionando assim um sistema de alavancas que dispara a bola.
3.7 Referencias Bibliográficas
Microcontrolador 8051 - Detalhado Denys Emílio Campion Nicolosi
MICROCONTROLADORES PIC - PROGRAMAÇAO EM C PEREIRA, FABIO
DISPOSITIVOS ELETRONICOS E TEORIA DE CIRCUITOS NASHELSKY, LOUIS / BOYLESTAD, ROBERT L.
ENGENHARIA DE CONTROLE MODERNO OGATA, KATSUHIKO
C++ COMO PROGRAMAR - 5º EDIÇAO DEITEL, PAUL J. / DEITEL, HARVEY M INTELIGENCIA ARTIFICIAL
RUSSELL, STUART J. / NORVIG, PETER PRINCIPIOS DE CIENCIAS DOS MATERIAIS
VLACK, LAWRENCE H. VAN / FERRAO, LUIZ PAULO CAMARGO Embedded Robotics – 2° Edição
Bräunl, Thomas
Intelligent Autonomous Robotics
Stone, Peter
Curve and Sufaces for computer aided geometric design – 4° Edição Farin, Gerald
Declaro que as informações prestadas no relatório sobre o Projeto:
_________________________________________________________________________ são verdadeiras.
Local Data Assinatura do Bolsista
Declaro que as informações prestadas no relatório sobre o Projeto:
_________________________________________________________________________ são verdadeiras.
Local Data Assinatura / carimbo do Coordenador do Projeto
Assinatura dos demais docentes da equipe executora:
(acrescente mais linhas, se necessário)
Declaro ter tido participação ativa no Projeto:
_________________________________________________________________________
Data Assinatura
Data Assinatura