Você está na página 1de 75

1

APLICAO DE TCNICAS DE APRENDIZADO PARA


O CONTROLE INTELIGENTE DE VECULOS AUTNOMOS

por
LUCIANE OLIVEIRA FORTES

UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CINCIAS EXATAS E TECNOLGICAS CURSO DE INFORMTICA HAB: ANLISE DE SISTEMAS

APLICAO DE TCNICAS DE APRENDIZADO PARA


O CONTROLE INTELIGENTE DE VECULOS AUTNOMOS

por
LUCIANE OLIVEIRA FORTES

Monografia submetida como requisito parcial para obteno do grau de Bacharel de Anlise de Sistemas

Prof. Dr. Fernando Santos Osrio Orientador

So Leopoldo, novembro de 2001

SUMRIO
SUMRIO........................................................................................................................ 3 LISTA DE FIGURAS ...................................................................................................... 6 LISTA DE ABREVIATURAS......................................................................................... 7 AGRADECIMENTOS..................................................................................................... 8 RESUMO ......................................................................................................................... 9 ABSTRACT ....................................................................................................................10 1 -INTRODUO ..........................................................................................................11 2 -ROBTICA ................................................................................................................12 2.1 - HISTRICO ...........................................................................................................12 2.2 - TIPOS DE ROBS.................................................................................................14 2.3 - SENSORES .............................................................................................................16 2.3.1 - SENSORES DE COLISO..............................................................................16 2.3.1.1 - InfraVermelho ........................................................................................17 2.3.1.2 Laser.......................................................................................................18 2.3.1.3 Sonar ......................................................................................................19 2.3.1.4 Cmeras de Vdeo...................................................................................20 2.3.2 - SENSORES DE POSICIONAMENTO ............................................................21 2.3.2.1 Bssola ...................................................................................................21 2.3.2.2 Odmetros ..............................................................................................21 2.3.2.3 GPS ........................................................................................................21 2.4 ARQUITETURAS ROBTICAS .........................................................................22 2.4.1 AGENTES .....................................................................................................22 2.4.2 - ARQUITETURA DELIBERATIVA.................................................................23 2.4.3 - ARQUITETURA REATIVA............................................................................23 2.4.4 ARQUITETURA HBRIDA ............................................................................23 2.5 SNTESE ................................................................................................................24 3 -REDES NEURAIS ARTIFICIAIS.............................................................................25

4 3.1- INTRODUO .......................................................................................................25 3.2 - HISTRICO ...........................................................................................................25 3.3 - NEURNIOS ARTIFICIAIS.................................................................................26 3.4 - FUNES LINEARES ..........................................................................................28 3.5 - PRINCIPAIS ARQUITETURAS DE RNAS .........................................................30 3.6 RNAS ......................................................................................................................31 3.7 - SNTESE.................................................................................................................32 4 -PROCESSOS DE APRENDIZAGEM.......................................................................33 4.1 INTRODUO......................................................................................................33 4.2 TIPOS DE APRENDIZADO ..................................................................................33 4.2.1 Aprendizado Supervisionado .........................................................................34 4.2.2 Aprendizado Semi-Supervisionado.................................................................35 4.2.3 Aprendizado No-Supervisionado (auto-organizao)...................................36 4.3 - GENERALIZAO...............................................................................................37 4.4 - ALGORTMOS DE APRENDIZADO ..................................................................38 4.4.1 - Algoritmo Back-Propagation..........................................................................39 4.4.2 - Algoritmo Cascade Correlation......................................................................41 4.5 - SNTESE ................................................................................................................43 5- IMPLEMENTAO..................................................................................................44 5.1 APRESENTAO DO PROBLEMA...................................................................44 5.2 SIMULADOR SEVA .............................................................................................44 5.3 SIMULADOR NEUSIM .........................................................................................49 5.4 CRIAO DA BASE DE APRENDIZADO.........................................................52 5.5 RESULTADOS DA SIMULAO ........................................................................56 5.6 ADAPTAO DO SEVA A COM A REDE NEURAL .....................................57 5.7 - SIMULAES COM O SEVA N .......................................................................59 5.7.1 IDENTIFICAO DO PROBLEMA..............................................................60 5.7.2 VARIVEL ODMETRO ..............................................................................61

5 5.8 ADAPTAO DO SEVA N A NOVAS SITUAES ......................................62 6 CONCLUSO...........................................................................................................64 ANEXO 1 COMANDOS PARA O CONTROLE MANUAL DO SEVA -A..............65 ANEXO 2 REGRAS DO SEVA A.............................................................................66 ANEXO 3 ARQUIVO DE CONFIGURAO DO CASCADE-CORRELATION..72 BIBLIOGRAFIA ............................................................................................................73

LISTA DE FIGURAS
FIGURA 2.1 ROVER [22]....................................................................................................15 FIGURA 2.2 SENSOR INFRAVERMELHO ...............................................................................17 FIGURA 2.3 SENSOR LASER ...............................................................................................18 FIGURA 2.4 SENSOR SONAR ..............................................................................................19 FIGURA 2.5 SENSOR DE CMERAS ....................................................................................20 FIGURA 3.1 EXEMPLO DE NEURNIO NATURAL [24]..........................................................27 FIGURA 3.2 NEURNIO DE MCCULLOCH E PITTS [24] ........................................................28 FIGURA 3.3 FUNES BOOLEANAS AND E OR .....................................................................29 FIGURA 3.4 FUNO BOOLEANA XOR ................................................................................29 FIGURA 3.5 REDE MULTI-LAYER PERCEPTRON..................................................................31 FIGURA 4.1 DIAGRAMA EM BLOCOS DO APRENDIZADO SUPERVISIONADO...........................34 FIGURA 4.2 DIAGRAMA DE APRENDIZAGEM POR REFORO ................................................35 FIGURA 4.3 DIAGRAMA DE APRENDIZADO NO-SUPERVISIONADO .....................................36 FIGURA 4.4 FLUXO DE PROCESSAMENTO DO BACK-PROPAGATION ......................................39 FIGURA 4.5 REDE APS A INSERO DE DOIS NEURNIOS ...................................................42 FIGURA 5.1 SIMULADOR SEVA.........................................................................................45 FIGURA 5.2 VISUALIZAO DOS SENSORES ........................................................................46 FIGURA 5.3 VALORES DA VARIVEL ESTADO .....................................................................46 FIGURA 5.4 VALORES DA VARIVEL VELOCIDADE .............................................................47 FIGURA 5.5 VALORES DA VARIVEL GIRO DA DIREO ......................................................47 FIGURA 5.6 ZONA DE STATUS DO SEVA..............................................................................48 FIGURA 5.7 AUTMATO DE ESTADOS .................................................................................49 FIGURA 5.8 ORGANIZAO DO INSS [12] .........................................................................50 FIGURA 5.9 DESCRIO DA RNA USADA PARA CONTROLAR O VECULO .............................51 FIGURA 5.10 CODIFICAO BINRIO PURO ........................................................................52 FIGURA 5.11 CODIFICAO TERMMETRO.........................................................................52 FIGURA 5.12 CODIFICAO BINRIA(1 ENTRE N) ..............................................................53 FIGURA 5.13 CODIFICAO BINRIA DAS VARIVEIS DE SADA DA REDE NEURAL...............53 FIGURA 5.14 AMOSTRA DA BASE DE APRENDIZADO SUPERVISIONADO DA REDE NEURAL. ....54 FIGURA 5.15 TELA DE RESULTADOS DO NEUSIM ................................................................56 FIGURA 5.16 BASE DE APRENDIZADO DO XOR E RESULTADO DA SIMULAO USANDO NEUSIM COMPLILANDO COM O VISUAL C++ ...............................................................57 FIGURA 5.17 WORKSPACE DO VISUAL C++ APRESENTANDO MDULOS DO SEVA - N .........58 FIGURA 5.18 RESULTADO DAS PRIMEIRAS SIMULAES .....................................................59 FIGURA 5.19 NOVAS SIMULAES APS A CORREO DO ERRO DE INICIALIZAO DO GIRO DA DIREO ...............................................................................................................60 FIGURA 5.20 SIMULAO COM O SEVA N, APS O PROBLEMA SOLUCIONADO ................61 FIGURA 5.21 SIMULAO COM O SEVA N, APS O PROBLEMA SOLUCIONADO ................62

LISTA DE ABREVIATURAS
CASCOR IA MCP MFC MLP NEUSIM RMA RNA SEVA SEVA A SEVA B Cascade Correlation Inteligncia Artificial Model McCulloch e Pitts Microsoft Foundation Classes Multi Layer Perceptron Simulador Neural Robs Mveis Autnomos Rede Neural Artificial Simulador de Estacionamento de um Veculo Autnomo Autmato Finito Neural

AGRADECIMENTOS

A minha me Mara, por toda sua dedicao e carinho dedicados at esta conquista. Ao meu marido Dionlio pela pacincia e compreenso durante o desenvolvimento deste trabalho. Ao meu orientador Fernando Osrio, pelo incentivo e ajuda no desenvolvimento deste trabalho. E todos aqueles que acreditaram.

RESUMO
O objetivo deste trabalho apresentar um sistema de controle inteligente de veculos autnomos. Este sistema responsvel pela automatizao da tarefa de conduo de um veculo, onde buscamos obter um sistema de controle robusto capaz de estacionar o carro em uma vaga paralela. O sistema SEVA (Simulador de Estacionamento de Veculos Autnomos) permite controlar um carro atravs da leitura de um conjunto de sensores, gerando os comandos de acelerao e de giro de direo, de modo a localizar e estacionar o carro em uma vaga. Atualmente este sistema conta com um controlador baseado em um sistema especialista (conjunto de regras heursticas). O objetivo neste trabalho o de substituir o controlador baseado em regras por um controlador neural, buscando assim aumentar a robustez do sistema. Com esse objetivo implementado o sistema ser capaz de se adaptar a novas situaes, ficando mais adaptado ao mundo real. Inicialmente so introduzidos conceitos bsicos sobre robtica e redes neurais, assim como suas formas de aprendizado. Em seguida descrevemos a implementao e os resultados obtidos com o novo simulador, que permitiram que o carro controlado por uma rede neural pudesse entrar (estacionar) corretamente em uma vaga.

Palavras-chave: Robtica Autnoma, Controle Inteligente Sensorial-Motor, Inteligncia Artificial, Aprendizado Neural.

10

ABSTRACT
The goal of this work is to present an intelligent control system of autonomous vehicles. This system is responsible for the automation of the vehicle driving task, in which we developed a control system capable of parking a car between two other cars in a parallel space. The SEVA system (Simulador de Estacionamento de Veculos Autnomos Autonomous Vehicles Parking Simulator) allows controlling a car through reactive control: reading a set of sensors and generating the commands of acceleration and direction change, in order to locate and park the car on a vacant place. The original old system uses a controller based on an expert system (set of heuristic rules). The goal in this work is to replace the controller based on symbolic rules by a Artificial Neural Network controller, in order to make the system more robust. The new system should be able to adapt itself to new situations, becoming more suitable to work in actual world situations, with actual cars. Initially, some basic concepts about robotics and neural networks are introduced, as well as their learning techniques. After that, we describe the implementation and the obtained results with the new simulator, which allowed to control the car, using a trained neural network, order to park correctly on a vacant place. Keywords: Autonomous Robots, Intelligent Control, Reactive Control, Artificial Intelligent and Artificial Neural Nets

11

1 -INTRODUO
A Robtica Autnoma (RMA Robs Mveis Autnomos) tem atrado a ateno de um grande nmero de pesquisadores da rea de Inteligncia Artificial, devido ao desafio que este novo domnio de pesquisas nos prope: dotar sistemas de uma capacidade de raciocnio inteligente e de interao com o meio em que esto inseridos. Os RMAs podem sentir o ambiente em que esto inseridos atravs da leitura de seus sensores (sensores infra-vermelho, lasers, cmeras de vdeo, etc), e atravs desta percepo sensorial eles podem planejar melhor as suas aes [9,6]. Atualmente temos robs mveis atuando em diferentes reas, como por exemplo: robs desarmadores de bombas, robs usados para a explorao de ambientes hostis, e a conduo de veculos (carros) robotizados. O controle dos robs mveis pode ser feito por dois tipos de arquiteturas: deliberativa e reativa. A arquitetura deliberativa pode ser pouco robusta, sujeitas a erros, pouco flexvel e de difcil adaptao a novas situaes. Para tentar reduzir ao mximo as limitaes que o controle deliberativo impe, neste trabalho proposta a implementao e adaptao de um sistema controlado por regras (deliberativo) para um sistema controlado por uma rede neural (reativo). A primeira parte do trabalho aborda os conceitos sobre robtica, tipos de robs e as arquiteturas de controle. A segunda parte concentra-se nos conceitos bsicos sobre Redes Neurais, contituio do neurnio natural, assim como o funcionamento de um neurnio artificial. So vistos tambm mtodos de aprendizado de redes neurais, assim como os principais algortmos de treinamento. Na ltima parte do trabalho apresentado o simulador Seva (Simulador de Estacionamento de Veculos Autnomos), o Neusim (Simulador Neural) e a implementao do sistema Seva com o controle Neural Adaptativo, onde so apresentados os problemas encontrados, solues e os resultados obtidos.

12

2 -ROBTICA
2.1 - HISTRICO
Uma das maiores ambies humanas sempre foi dar vida a seus artefatos. Este grande desejo deve-se procura da humanidade em encontrar formas de reduzir o trabalho, delegando a criaturas mecnicas tarefas menos nobres e mais laboriosas. A histria mostra que este desejo no simplesmente um capricho da nossa sociedade moderna: IV a.C. Grcia: Aristteles: " If every instrument could accomplish its own work, obeying or anticipating the will of others... if shuttle could weave, and the pick touch the lyre, without a hand to guide them, chief workmen would not need servants nor master slaves"[28]. Se todo instrumento pudesse executar o seu prprio trabalho, obedecendo ou antecipando o que os outros querem se o tear pudesse tecer e tocar o toque da lira sem uma mo para guia-los, chefes no precisariam de criados ou escravos. Sc. XIII Incio da revoluo industrial: Com a evoluo das ferramentas e mecanismos industriais, as mquinas tornaram-se capazes de controlar uma srie de aes seqenciadas. Surgiram nesta poca os primeiros autmatos, mquinas que seguiam instrues pr-programadas, a exemplo dos teares mecnicos controlados por cartes perfurados. 1 e 2a Guerra Mundial: Trouxeram muitas inovaes e as mquinas mostraram seu poder negativo e destrutivo. Grandes avanos tecnolgicos tambm foram conquistados durante este perodo de conflitos, motivados pela competio entre os pases em guerra. Surgem nesta poca dispositivos que permitiam automatizar tarefas repetitivas, das grandes linhas de montagem semi-automatizadas at aos computadores. 1961: Um Engenheiro americano Joseph Engelberger construiu braos mecnicos, movidos a energia pneumtica. Eram capazes de executar certas tarefas repetitivas com preciso. Os primeiros sistemas robticos comeam a surgir, imitando o ser humano (brao robtico), mas entretanto realizavam somente tarefas de forma repetitiva, seguindo as instrues que lhe eram passadas. 1969: O homem pisa pela primeira vez na lua. Os astronautas utilizaram manipuladores comandados por controle remoto para colher amostras e executar algumas tarefas.

13

1997: O primeiro rob de explorao semi-autnomo chega ao planeta Marte. O Rover Sojourner [20] realiza a explorao do solo marciano, deslocando-se de forma semiautnoma, sendo controlado a distncia da terra, mas possuindo tambm a capacidade de ver obstculos e de decidir se deve ou no seguir a trajetria previamente especificada. Os robs comeam a interagir com o ambiente em que esto inseridos e tomam decises de forma autnoma, baseados nas informaes vindas de seus sensores. Por definio, robs so mquinas controladas por computador que so programadas para mover, manipular objetos, e efetuar trabalhos enquanto interagem com seu ambiente. O termo rob se origina da palavra eslava robota, que significa trabalho executivo [9]. Esta palavra foi usada pela primeira vez em 1921 na pea teatral R.U.R Rossums Universal Robots (O Rob Universal de Russum) pelo novelista e escritor tcheco Karel Capek [6]. Nos anos 40 o escritor de fico cientfica Isaac Asimov concebeu os robs como autmatos de aparncia humana, mas desprovidos de sentimentos. O termo robtica foi introduzido por Asimov para simbolizar a cincia devotada ao estudo dos robs, que seria baseada em trs leis fundamentais [9]: 1. Um rob no pode agredir um ser humano ou, por omisso, permitir que um ser humano se machuque. 2. Um rob deve obedecer s ordens dadas por seres humanos, exceto quando tais ordens entrem em conflito com a primeira ordem. 3. Um rob deve proteger sua prpria existncia, tanto quanto esta proteo no entre em conflito com as duas primeiras ordens. A popularizao da fico cientfica influenciou o pblico leigo que continua a imaginar o rob como um humanide, se no uma pessoa comum, pelo menos algo como os robs do filme Guerra nas Estrelas. Os robs atuais atuam em diversas reas da sociedade e hoje j podemos ter robs como os desarmadores de bombas, robs usados na educao, robs que simulam pacientes doentes onde os mdicos podem treinar seus conhecimentos, robs que jogam futebol e at robs operrios que revolucionaram a produo em srie. Mesmo com todo avano dos robs atuais, entretanto, nem sempre estes correspondem a idia de um humanide, onde o maior limitador em transformar a imaginao em realidade a autonomia. Uma forma de alterar radicalmente esta dependncia do ser humano pode ser obtida se pudermos ensinar uma vez ao rob o que ele precisa fazer, e depois deix-lo executar sozinho suas tarefas. Concluindo o que desejamos so robs inteligentes.

14

2.2 - TIPOS DE ROBS


A robtica pode ser dividida em dois grandes grupos: Robs Fixos e Robs Mveis. 1. Robs Fixos Destacam-se os braos mecnicos, que geralmente cumprem atividades repetitivas, fastidiosas, perigosas e difceis, so usados principalmente no setor automotivo. 2. Robs Mveis Estes devem ter capacidade de mover-se no ambiente em que esto inseridos. So usados em atividades exploratrias, em ambientes desestruturados, pouco conhecidos e geralmente perigosos. Interagem com o ambiente atravs de sensores, realizando suas atividades, onde so conhecidos tambm como robs de campo. Para exemplificar citamos os robs aranhas que serviram para estudar vulces em atividade [21]. Dentro destes dois grandes grupos podemos encontrar robs autnomos e robs inteligentes: Autonomia: Capacidade de executar suas tarefas com o mnimo de interferncia humana. Inteligncia: Inteligente todo comportamento que se assemelha a um comportamento eminentemente humano (e no puramente animal) [9].

Atualmente os robs mveis autnomos (RMA) tm ganho cada vez mais destaque, por serem capazes de executar tarefas sem nenhum controle humano, exceto aquele que requerido para constru-los, programa-los no incio e reabastece-los ao longo de sua vida til. Os RMAs operam unicamente atravs da interao entre seu software e seus sensores. O software tem a capacidade de receber informaes dos sensores e gerar comandos necessrios para atingir os objetivos estabelecidos [6]. O principal problema relacionado aos sistemas de robtica autnoma a sua autonomia, porque a maioria desses sistemas existentes ainda depende muito de uma interveno humana para que possam funcionar corretamente e executar suas tarefas. Vrios trabalhos vem sendo desenvolvidos na rea da robtica autnoma, onde podemos exemplificar alguns com destaque para os RMAs com rodas tipo carro . As caminhonetes Vans da CMU atravessaram os Estados Unidos sem utilizar um piloto humano [17]. As Vans autnomas trafegaram por longas distncias em auto-estradas americanas em modo autnomo, entretanto no eram capazes de atravessar cruzamentos sozinhas, uma vez que este tipo de tarefas bem mais complexo do que seguir a banda branca lateral das pistas de uma auto-estrada. O veculo eltrico autnomo que estaciona em uma vaga paralela [16].

15

O Rover enviado a Marte (figura 2.1) [20]. Operava por tele-comando, onde sua autonomia consistia apenas em se preservar enquanto no recebia novas ordens (como a transmisso Terra-Marte muito, lenta isto exigiu uma certa autonomia do rob, nos intervalos de espera de novas ordens).

Figura 2.1 Rover [22] Esses exemplos possuem em comum a capacidade de receber leituras de sensores que do ao sistema do RMA informaes sobre o ambiente em que esto inseridos e de modo semi ou completamente autnomo, vo gerar os comandos que fazem com que ele se desloque neste ambiente de modo seguro, sem se chocar contra obstculos ou colocar em risco sua integridade ou a dos diferentes elementos presentes no ambiente [15].

16

2.3 - SENSORES
Os sensores so usados nos robs com a mesma funo que os sentidos so usados pelos humanos, para sentir o ambiente e comandar suas reaes. O uso de sensores, permite que um rob possa interagir com o ambiente que o rodeia de uma forma flexvel. Isto no acontece, nas operaes pr-programadas (mais comuns nos robs indstrias) onde um rob ensinado como proceder para realizar tarefas repetitivas atravs de um conjunto de funes programadas. O uso da tecnologia dos sensores, introduz nas mquinas um maior nvel de inteligncia para lidar com o seu meio sendo objeto de uma pesquisa intensa no campo da robtica [23]. Os RMA se utilizam principalmente de dois grupos de sensores, os de coliso e os de posicionamento [6]. Estes dois grupos de sensores podem ser descritos como: Sensores de coliso que podem ser infravermelhos, sonar, laser, Cmeras de vdeo e sensores de contato. Sensores de Posicionamento: bssola, odmetro e GPS.

Para um melhor desempenho, um rob deve utilizar os vrios sensores disponveis ao mesmo tempo, integrando os dados destes sensores e fazendo com que seus atuadores se comportem de forma correta.

2.3.1 - SENSORES DE COLISO Este tipo de sensor utilizado pelos robs para detectar possveis obstculos, servindo de olhos que enxergam o ambiente e transmitem informaes para o sistema que controla o rob.

17

2.3.1.1 - InfraVermelho Este tipo de sensor (figura 2.2), muito utilizado, principalmente por ter baixo custo e ter um funcionamento relativamente simples, apesar de ter a desvantagem de seu raio de ao ser bem reduzido. Um diodo infravermelho emite um raio modulado; o raio atinge um objeto e uma poro da luz captada de volta atravs do receptor tico, atingindo um array de fotodiodos. Dependendo da posio do objeto, o ngulo de incidncia da luz refletida diferente, com isso pode-se calcular a distncia deste objeto por triangulao [6].

Figura 2.2 Sensor Infravermelho

18

2.3.1.2 Laser O Laser (figura 2.3) utiliza o princpio dos sensores infravermelhos, um feixe de luz emitido e um fotosensor capta a sua reflexo e calcula o tempo que foi preciso para a luz retornar. Uma desvantagem que os circuitos precisam ser muito precisos, pois a velocidade do laser muito alta. O Laser tambm utiliza espelhos, para detectar obstculo. Um motor controla o ngulo do espelho at que o feixe laser atinja o fotosensor, quando isto acontece pode-se calcular a distncia usando o ngulo do espelho por triangulao [6].

Figura 2.3 Sensor Laser

19

2.3.1.3 Sonar O sonar (figura 2.4) um dos sensores mais usados pela robtica mvel, justamente pelo seu baixo custo, e a necessidade de poucos recursos computacionais [6]. Seu funcionamento consiste em um transdutor que emite uma pequena onda de som em alta freqncia, quando a onda atinge um objeto ela se reflete e captada novamente pelo transdutor. distncia entre o rob e o objeto pode ser calculada pelo tempo entre a emisso e o recebimento da onda de som. A distncia calculada dividindo-se o tempo decorrido por 2, e multiplicando o resultado pela velocidade do som.

Figura 2.4 Sensor Sonar

20

2.3.1.4 Cmeras de Vdeo O sensor de um rob tambm pode ser implementado atravs de uma cmera de vdeo. O funcionamento consiste da seguinte forma: a imagem captada e processada pelo computador, que analisa e decide o que fazer. As imagens podem ser coloridas, preto e branco ou em tons de cinza, sendo que a imagem colorida demanda um maior tempo de processamento. Para o processamento das imagens, o computador utiliza um mtodo de reconhecimento de padres. O computador analisa cada imagem que ele obtm da cmera para identificar certos objetos. Exemplo: como o brilho ou a cor dos objetos normalmente so diferentes do brilho de fundo, comparando cada dois pixels vizinhos, o computador pode achar a borda do objeto e depois de processada, a imagem conter somente as bordas externas do objeto. Com essa informao o computador pode saber o que so e onde esto esses objetos. Ento o computador pode comparar este objeto com os padres guardados na sua memria e identific-lo. Pode-se tambm utilizar duas cmeras ao mesmo tempo, onde o computador pode gerar padres em 3 dimenses (viso em profundidade), e ainda poder calcular a distncia dos objetos [6].

Figura 2.5 Sensor de Cmeras

21

2.3.2 - SENSORES DE POSICIONAMENTO To importante quanto detectar um obstculo, a capacidade de um rob saber exatamente onde ele est [3] em relao ao seu ambiente, para isso ele poder utilizar os sensores de posicionamento que medem de forma absoluta ou relativa a posio atual.

2.3.2.1 Bssola Informam ao rob o ngulo em que ele se encontra. Sua vantagem que informam o valor absoluto, que no depende do estado anterior do rob.

2.3.2.2 Odmetros Informam a distncia percorrida pelo rob. Com esta informao possvel calcular a sua posio relativa ao ambiente e por esse motivo so muito usados na robtica mvel. A sua principal desvantagem a baixa preciso, necessitando que seus valores sejam validados de tempos em tempos.

2.3.2.3 GPS Utilizado principalmente em robs de campo, o GPS se utiliza de uma rede de satlites em rbita da terra para determinar a longitude, latitude e altitude do rob. Esse sensor tambm retorna um valor absoluto, mas tem a desvantagem de no ser muito eficiente em ambientes altamente urbanizados alm de sua preciso ser muito baixa para o uso civil [6].

22

2.4 ARQUITETURAS ROBTICAS


A arquitetura robtica no constituda unicamente pelo hardware ou software do rob, mas tambm pela comunicao entre esses componentes. Os sistemas de funcionamento dos robs so complexos e tendem ser de difcil desenvolvimento, porque integram mltiplos sensores, com vrios graus de liberdade e precisam conciliar sistemas de tempo real com sistemas que no podem encontrar limites do tempo real [6]. E para a implementao desses sistemas to complexos, contamos com arquiteturas robticas que fornecem servios computacionais para subsistemas e componentes. No entanto estas arquiteturas tem tendncia de se limitarem a ambientes e tarefas especficas carecendo muito de aplicabilidade. Por exemplo, uma arquitetura bem adaptada para teleoperao tende a no ser bem adaptada para o controle supervisionado ou para o uso autnomo [6].

2.4.1 AGENTES As arquiteturas abordadas em muitos sistemas robticos de mltiplos robs, so baseadas no conceito de agentes. Um agente uma entidade cognitiva, ativa e autnoma, ou seja, possui um sistema interno de tomada de deciso. Agindo sobre o mundo e sobre outros agentes que o rodeiam, este tipo de arquitetura capaz de funcionar sem necessitar de algo ou de algum para o guiar (possui mecanismos prprios de percepo do externo). Caractersticas dos Agentes: Reatividade: sente e reage as mudanas no sistema; Adaptao: adapta-se ao seu ambiente, e aprende com as experincias; Autonomia: tem seus prprios desejos.

23

2.4.2 - ARQUITETURA DELIBERATIVA aquela que contm explicitamente representado um modelo simblico do mundo, e onde as decises so tomadas via raciocnio lgico ou pseudolgico baseado em reconhecimento de padres ou manipulao simblica [26]. Ou seja, a arquitetura deliberativa fixa e pr-definida. Por apresentar estas caractersticas pode ser pouco robusta, sujeitas a erros, pouco flexvel e de difcil adaptao a novas situaes. Por exemplo, um sistema especialista (baseado em regras) considerado como uma arquitetura deliberativa.

2.4.3 - ARQUITETURA REATIVA No contm o modelo do ambiente e no se utiliza de raciocnio simblico complexo. Esta arquitetura opera em um nvel muito baixo de abstrao, sem nenhum conhecimento prvio do ambiente [6]. Esta caracterstica pode ser uma vantagem, bem como pode ser uma desvantagem: Vantagem; como o tempo de resposta muito baixo isto conduz para uma comunicao eficiente entre dois agentes ou entre o agente e o ambiente. Desvantagem; o agente no pode executar anlises complexas de seus dados sensoriais, ou seja, no pode executar operaes cognitivas de alto nvel envolvendo crenas, desejos e intenes, a no ser que tenha acumulado conhecimento suficiente para executar determinada funo.

2.4.4 ARQUITETURA HBRIDA Busca obter o melhor das arquiteturas deliberativas e reativas, integrando ambas, criando assim uma arquitetura hbrida. A integrao explora a complementaridade de ambas arquiteturas com o objetivo de melhorar o sistema como um todo. Onde o reativo deve ter preferncia sobre o deliberativo por responder mais rapidamente as variaes do ambiente. Ou seja, a arquitetura deliberativa lida com a abstrao dos dados, ao contrrio da reativa que lida com os valores reais (sensores).

24

2.5 SNTESE
Finalizando o captulo sobre robtica vamos apresentar alguns dados relevantes ao trabalho desenvolvido, que utiliza alguns dos conceitos do captulo apresentado. Neste trabalho ser desenvolvido um simulador de estacionamento de um veculo autnomo, utilizando-se dos conceitos de RMA do tipo carro com rodas (seo 2.2). Este RMA contm 6 sensores de coliso do tipo infravermelhos (simulados) (seo 2.3), que fazem a leitura do ambiente. A arquitetura de controle robtico escolhida para a implementao a reativa, j que na sua verso original a arquitetura utiliza controle deliberativo (fixo e pr-definido) da tarefa de estacionar um carro, que apresenta algumas desvantagens conforme foi explicado na seo 2.4.2. O controle reativo ser feito por uma Rede Neural Artificial RNA, e seus conceitos sero descritos no captulo a seguir.

25

3 -REDES NEURAIS ARTIFICIAIS


3.1- INTRODUO
O computador capaz de pensar? Podemos ser levados a responder por este questionamento que o computador no pensa, mas ele pode, a partir de processos encadeados e estruturados, imitar os raciocnios do ser humano. Estas questes so estudadas por uma rea da computao conhecida como Inteligncia Artificial (IA). Uma das reas mais atrativas da IA so as Redes Neurais Artificiais (RNAs). As redes neurais so conhecidas tambm como, conexionismo ou sistemas de processamento paralelo e distribudo [2]. Como foi citado na sntese do captulo 2, o controle reativo do simulador robtico ser feito por uma Rede Neural, portanto neste captulo, iremos introduzir alguns conceitos sobre as RNAs para justificarmos nossa escolha.

3.2 - HISTRICO
As primeiras informaes sobre neurocomputao datam de 1943. O artigo publicado no Bulletin of Mathematical Biophysics (Boletim da Biofsica Matemtica) com o ttulo A Logical Calculus of the Ideas Immanent in Nervous Activity [24] por McCulloch e Pitts (modelo MCP), que sugeriam a construo de uma mquina baseada ou inspirada no crebro humano, foi sem dvida o primeiro artigo em redes neurais. Este modelo influenciou vrios outros modelos de RNAs de destaque na atualidade. A essncia da proposta de McCulloch e Pitts foi a seguinte: A inteligncia equivalente ao clculo de predicados que por sua vez pode ser implementado por funes booleanas. Por outro lado, o sistema nervoso composto de redes de neurnios, que com as devidas simplificaes, tem a capacidade bsica de implementar estas funes booleanas. Baseados nesta informao os autores concluram que a ligao entre inteligncia e atividade nervosa ficava estabelecida de forma cientfica [24]. Muitos outros artigos foram publicados desde ento, porm, por um longo perodo poucos resultados foram obtidos.

26 Os anos seguintes foram marcados pelo entusiasmo exagerado de alguns pesquisadores que acreditavam na criao de mquinas to poderosas, capazes de imitar o crebro humano. Em 1959 Frank Rosenblatt criou o Perceptron que ser discutido neste captulo. Similar ao Perceptron outros modelos foram criados, como o Adaline que foi criado em 1962 por Bernard Widrow [13]. Os modelos do tipo Perceptron so baseados no aprendizado supervisionado (abordado no captulo 4), por correo de erros, possuindo hoje uma larga aplicao. Nos anos 70 os poucos resultados obtidos levaram a rea de RNAs para o descrdito da comunidade cientfica. Mesmo com pouca aceitao, alguns pesquisadores como Igor Aleksander e Steve Grossberg [27] continuaram com suas pesquisas de forma silenciosa. Em meados da dcada de 80, houve uma nova exploso de interesse pela rea, influenciados principalmente pelo avano da tecnologia e da microeletrnica, permitindo a realizao fsica de modelos de RNA [2].

3.3 - NEURNIOS ARTIFICIAIS


Os neurnios naturais so divididos em trs sees: o corpo da clula ou soma, os dendritos e o axnio (figura 3.1). Cada uma executa a sua funo, onde estas se complementam. Os dendritos medem poucos milmetros e tem a funo de receber as informaes ou impulsos nervosos, oriundos de outros neurnios e conduzi-los at o corpo celular. O corpo celular, tambm medindo poucos milmetros, tem a funo de processar as informaes (impulsos nervosos) recebidas dos dendritos, criar novos impulsos e transmitir estes impulsos para o neurnio seguinte atravs do axnio. O ponto de contato entre a terminao axnica de um neurnio e o dendrito de outro chamado de sinapse. As sinapses so vlvulas capazes de controlar a transmisso de impulsos, ou seja, as sinapses controlam e modulam o fluxo da informao [27]. A comunicao dos neurnios (nodos) no crebro feita atravs de sinais eletroqumicos dentro do neurnio. A ao da membrana dos nodos que cria a habilidade de produzir e transmitir os sinais. A membrana que envolve o exterior do corpo do neurnio tem a capacidade de gerar impulsos nervosos (eltricos), uma funo vital do sistema nervoso e central sua capacidade computacional. O corpo celular por sua vez combina os sinais recebidos, e se, o valor resultante for acima do limiar de excitao do neurnio, um impulso eltrico produzido e propagado atravs do axnio para os neurnios seguintes.

27

Figura 3.1 Exemplo de Neurnio Natural [24] Baseados no neurnio natural McCulloch e Pitts (modelo MCP), propuseram o primeiro modelo de neurnio artificial. Consistia na simplificao do que se sabia do neurnio biolgico. O modelo matemtico do neurnio artificial proposto possua n terminais de entrada x1, x2, x3...(representando os dendritos) e apenas uma sada y (representando o axnio). Para simular o comportamento das sinapses, os terminais de entrada dos neurnios artificiais tm pesos acoplados w1, w2, w3..., cujos valores podem ser positivos ou negativos, dependendo se as sinapses so inibitrias ou excitatrias. Portanto o funcionamento do modelo MCP (figura 3.2) descrito da seguinte forma: sinais so apresentados entrada; cada sinal multiplicado por um nmero, ou peso, que indica a sua influncia na sada da unidade; feita a soma ponderada dos sinais que produz um nvel de atividade; se este nvel de atividade exceder um certo limite (threshold) a unidade produz uma determinada resposta de sada.

28

Figura 3.2 Neurnio de McCulloch e Pitts [24] Apesar da similaridade com o neurnio biolgico, o modelo MCP apresenta algumas limitaes: redes MCP com apenas uma camada s conseguem implementar funes lineares, e classificar padres linearmente separveis( seo 3.4); no aborda o conceito de aprendizado, o modelo foi proposto com pesos fixos, no ajustveis.

A partir deste modelo, muitos outros foram propostos, onde muitos dos problemas apresentados foram minimizados.

3.4 - FUNES LINEARES


Como foi apresentado na seo anterior, um dos problemas que o modelo MCP no resolve, so as funes que classificam padres que no so linearmente separveis. Para entender o que so padres no linearmente separveis, primeiramente vamos apresentar algumas funes booleanas cujos dados so linearmente separveis: Funo booleana AND: 0 0 1 1 A
B

AND 0 1 0 1 B

S 0 0 0 1 (0,0)
A

(0,1)

(1,1)

(1,0)

29

Funo booleana OR: OR 0 0 1 1 A 0 1 0 1 B S 0 1 1 1 (0,0) (0,1)

(1,1)

(1,0)

Figura 3.3 Funes booleanas and e or Nos grficos apresentados na figura 3.3 fica claro que os padres das funes AND e OR so linearmente separveis onde possvel encontrar retas que separam os valores de entrada em regies tal que, a sada reflete corretamente os resultados das funes booleanas. Portanto possvel implementar estas funes utilizando o modelo MCP. Funo booleana XOR: XOR 0 0 1 1 A 0 1 0 1 B (0,0) Figura 3.4 Funo booleana xor (1,0) S 0 1 1 0 (0,1) (1,1)

J no grfico da funo XOR (figura 3.4), fica clara a necessidade de duas retas para separar os pontos pretos dos pontos cinzas. Esta funo no pode ser implementada pelo modelo MCP. Para resolver este problema, foi concebido o modelo Multilayer Perceptron (Perceptron de Mltiplas Camadas), que ser abordado na prxima seo.

30

3.5 - PRINCIPAIS ARQUITETURAS DE RNAS


No final da dcada de 1950, conforme foi citado na seo 3.2, dando prosseguimento s idias de McCulloch e Pitts, Rosenblatt, criou um novo modelo de neurnio e uma regra de aprendizado, batizando este neurnio de Perceptron. Rosenblatt demonstrou que um nodo MCP treinado com o algoritmo de aprendizado do Perceptron sempre converge caso o problema em questo seja linearmente separvel [2]. A topologia de rede apresentada por ele era composta por um nvel de entrada e um nvel de sada, formada pelas unidades de respostas. Embora esta topologia apresente dois nveis, ela conhecida como Perceptron de uma nica camada, porque somente o nvel de sada (unidade de resposta) possui propriedades adaptativas. A camada de entrada recebe somente as entradas. Apesar da grande euforia da comunidade cientfica, este modelo recebeu duras crticas [11], quanto a sua capacidade computacional, o que abalou profundamente as pesquisas na poca. O modelo Adaline surgiu quase que simultaneamente com o Perceptron, mas com enfoques diferentes. Rosenblatt por ser psiclogo divulgou a descrio do Perceptron em uma revista de psicologia [24], j Bernard Windrow, enfocou a descrio do Adaline dentro do contexto de processamento de sinais na conferncia IRE (Institute of Radio Eletronics) [2]. O algoritmo de treinamento descrito por Windrow tem grande importncia na rea das RNAs, porque deu origem ao algoritmo Back-Propagation [18], para o treinamento de Perceptrons de mltiplas camadas. O Adaline podia resolver de certa forma os problemas, mas o aprendizado no podia ser realizado de forma muito natural e automatizada, pois requeria a interveno humana na construo da rede [13]. Apesar dos modelos descritos acima terem dado grande contribuio para rea das RNAs, inserindo o conceito de aprendizado, estes modelos s resolviam problemas linearmente separveis, conforme foi apresentado na seo 3.4. A soluo de problemas no linearmente separveis passa pelo uso de redes com mltiplas camadas chamadas de Multi-Layer Perceptron MLP [24]. As redes MLP possuem uma ou mais camadas intermedirias entre a entrada e a sada, conforme apresentado na figura 3.5.

31

Figura 3.5 Rede Multi-Layer Perceptron Os neurnios que constituem a camada de entrada recebem diretamente as entradas da rede, assim como os neurnios da camada de sada da rede se conectam diretamente as sadas. As camadas intermedirias so tambm conhecidas como camadas ocultas (hidden layers). As redes MLP apresentam um poder computacional muito maior que aquele apresentado pelas redes sem camadas intermedirias. Ao contrrio destas redes, MLPs podem tratar com dados que no so linearmente separveis. Teoricamente redes com duas camadas intermedirias podem implementar qualquer funo, seja ela linear ou no. A preciso obtida e a implementao da funo objetivo dependem do nmero de nodos utilizados nas camadas intermedirias. Em uma rede MLP cada neurnio computa uma soma ponderada de suas entradas e passa esta soma em uma funo no-linear limitada [27]. A funo sigmide usualmente aplicada como esta funo no linear. A sada de uma camada propagada para as camadas seguintes, at que se obtenha a sada final da rede.

3.6 RNAS
No incio deste captulo fizemos uma introduo bsica sobre RNAs, para justificarmos o seu uso. Nesta seo, sero apresentadas caractersticas mais significativas que justificam assim a adaptao do sistema para a arquitetura reativa baseada no aprendizado neural. A capacidade mais importante das RNAs sem dvida a sua habilidade de aprendizado. Possuindo a capacidade de aprender atravs de exemplos e de generalizar a informao obtida (abordado no captulo 4). As redes so capazes de extrair informaes que no lhe foram apresentadas de forma explcita nos exemplos (base de aprendizado).

32 Alguns modelos de RNAs possuem tambm a habilidade de tratar dados com rudos, de responder de forma correta a situaes no conhecidas e de no possuir um conhecimento fixo, pois se baseiam na experincia. Habilidades que podem tornar o sistema mais robusto, mais flexvel e de fcil adaptao a novas situaes. As caractersticas citadas, tornam as RNAs uma ferramenta computacional altamente poderosa e muito atrativa na soluo de problemas complexos. Justificando assim a adaptao de uma arquitetura deliberativa baseada em regras para uma arquitetura reativa baseada em aprendizado.

3.7 - SNTESE
Como foi indicado no captulo 2, o controle reativo do RMA implementado ser feito por uma Rede Neural Artificial RNA. A RNA adotada do tipo MLP (multicamadas) baseada em Perceptrons e seu treinamento feito por aprendizado supervisionado. O algoritmo de treinamento que foi adotado o Cascade-Correlation (uma verso adaptada do algortmo Back-Propagation). Os processos de aprendizagem das RNAs, sero abordados no prximo captulo.

33

4 -PROCESSOS DE APRENDIZAGEM
4.1 INTRODUO
Como foi abordado no captulo 3 a propriedade mais importante das RNAs a sua habilidade de aprendizado. Elas possuem a capacidade de aprender atravs de exemplos e fazer interpolaes e extrapolaes do que aprendem [2]. Isto feito atravs de um processo iterativo de ajustes aplicados a seus pesos. Um fator importante para o aprendizado a maneira pela qual uma RNA se relaciona com o ambiente. Neste contexto existem as seguintes classes de aprendizado: supervisionado, semi-supervisionado e no supervisionado.

Que sero abordadas neste captulo.

4.2 TIPOS DE APRENDIZADO


O conceito de processo de aprendizagem depende do ponto de vista e do objetivo. O aprendizado do ponto de vista de um psiclogo, bastante diferente do objetivo de aprendizagem de alunos em uma sala de aula. J no contexto das redes neurais, podemos definir o aprendizado como: Aprendizagem um processo pelo qual os parmetros livres de uma rede neural so adaptados atravs de um processo de estimulao pelo ambiente no qual a rede est inserida. O tipo de aprendizagem determinado pela maneira na qual a modificao dos parmetros ocorre [29]. Baseados neste contexto, nesta seo sero apresentados os principais tipos de aprendizado neural.

34

4.2.1 Aprendizado Supervisionado Utiliza um agente externo que indica rede se um comportamento bom ou ruim em relao a um padro de entrada, ou seja, a rede capaz de medir a diferena (erro) entre seu comportamento atual e o comportamento de referncia [13]. A rede ir se adaptar de modo a minimizar este erro. Podemos ilustrar este aprendizado atravs do diagrama abaixo (figura 4.1) [29]:

Vetor descrevendo o estado do ambiente AMBIENTE AGENTE Resposta Desejada

Resposta Real RNA -

Sinal de Erro

Figura 4.1 Diagrama em blocos do Aprendizado Supervisionado O agente exposto a um vetor de treinamento retirado do ambiente. Em virtude do seu conhecimento o agente capaz de fornecer rede neural uma resposta desejada para aquele vetor de treinamento. A resposta desejada significa a ao tima a ser realizada pela rede. Os parmetros da rede so ajustados sob a influncia combinada do vetor de treinamento e do sinal de erro. O sinal de erro definido como a diferena entre a resposta desejada e a resposta dada pela rede. Este ajuste realizado passo a passo, iterativamente, com o objetivo de fazer a rede emular o agente. Assim o conhecimento do ambiente disponvel ao agente transferido para a rede atravs de treinamento, da forma mais completa possvel. Quando esta condio alcanada ( a rede consegue emular o agente de forma satisfatria), podemos ento dispensar o agente e deixar a rede lidar com o ambiente por si mesma. Uma desvantagem deste tipo de aprendizado que na ausncia do agente, a rede no conseguir aprender novas estratgias para situaes no cobertas pelos exemplos usados no treinamento da rede [2].

35

4.2.2 Aprendizado Semi-Supervisionado As tcnicas deste tipo de aprendizado tambm so conhecidas como aprendizado por reforo. Neste tipo de aprendizado dispomos apenas de uma avaliao qualitativa do comportamento do sistema, sem poder medir quantitativamente o erro, ou seja, o desvio do comportamento em relao ao comportamento de referncia desejado [13]. O diagrama abaixo exemplifica o aprendizado por reforo (figura 4.2).

Reforo Vetor de estado (entrada) AMBIENTE CRTICO primrio

Reforo heurstico

aes RNA

Figura 4.2 Diagrama de Aprendizagem por Reforo

36

4.2.3 Aprendizado No-Supervisionado (auto-organizao) No h um supervisor controlando o processo de aprendizado (figura 4.3). Para este algoritmo, somente os padres de entrada esto disponveis para a rede, ao contrrio do aprendizado supervisionado, cujo conjunto de treinamento (base de aprendizado) possui pares de entradas e sada. A partir do momento em que a rede estabelece uma harmonia com as regularidades estatsticas da entrada de dados, ela desenvolve uma habilidade de formar representaes internas para codificar caractersticas das entradas e criar novas classes ou grupos automaticamente [2].

Vetor descrevendo o estado do ambiente Resposta AMBIENTE RNA

Figura 4.3 Diagrama de Aprendizado No-Supervisionado

37

4.3 - GENERALIZAO
A capacidade de aprender atravs de exemplos e de generalizar a informao aprendida , sem dvida, o atrativo principal da soluo de problemas utilizando RNAs. Generalizao a capacidade de um modelo responder corretamente aos exemplos que lhe so apresentados, sendo que estes exemplos, no devem estar presentes na base de aprendizado. Um aluno (humano) generaliza os conceitos vistos em aula e responde questes de prova, que muitas vezes no so uma cpia do que foi visto em aula. Os alunos usam recursos como similaridade entre conceitos, analogias, regras gerais que podem ser aplicadas no problema. As RNAs generalizam as informaes atravs de interpolaes e extrapolaes do que aprendem. Interpolar aproximar pelo caso mdio, ou seja, dando dois casos para a rede, o A e o C, se a rede recebe um caso B e perceber que este caso est entre A e C, ento ela interpolou a resposta. J no caso da extrapolao a rede precisaria aprender a regra geral de um comportamento. Por exemplo: dado para a rede o seno de 0 a 360 graus e se fossem pedidos valores alm de 360 graus rede, ela ter que extrapolar esses valores. Neste caso a rede teria que saber que o seno segue infinitamente o comportamento de uma curva senoide, para calcular os valores maiores de 360 graus. Portanto, o modelo que responde corretamente aos exemplos contidos na base de aprendizado e em outra base de teste (exemplos no conhecidos), aquele que tem uma boa generalizao [13].

38

4.4 - ALGORTMOS DE APRENDIZADO


Conforme o que foi visto na seo 4.2 (tipos de aprendizado), nesta seo sero apresentados alguns conceitos dos algoritmos de aprendizado supervisionado (algoritmos de treinamento), das RNAs. De acordo com os parmetros que eles atualizam, os algoritmos de aprendizado podem ser classificados em estticos e dinmicos. Para o treinamento da rede neural que ser desenvolvida neste trabalho, optamos pelo aprendizado supervisionado, onde o agente (professor) ser uma base de aprendizado, composta pelo comportamento das variveis durante a simulao. Esta base de aprendizado esta detalhada no captulo 5. O agente vai ensinar a rede como conduzir o veculo. A escolha pelo aprendizado supervisionado, justifica-se por algumas caractersticas deste tipo de aprendizado: Conhecimento emprico: o aprendizado a partir de um agente (base de aprendizado) feito de uma maneira bastante simples e permite uma aquisio de conhecimentos de forma automtica [13]. Menor sensibilidade a rudos: em geral as redes obtm uma boa generalizao dos conhecimentos presentes na base aprendizado, portanto so menos sensveis a rudos. Disponibilidade de comportamentos de referncia no caso do simulador de estacionamento de veculos (regras ou controle humano)

Os algoritmos de aprendizado podem ser estticos, no alteram a estrutura da rede, variam apenas os valores dos pesos e dinmicos que tanto podem reduzir como aumentar o tamanho da rede (nmero de camadas, nodos e nmero de conexes) [27]. O algoritmo de aprendizado do tipo esttico e mais conhecido para o treinamento de RNAs o BackPropagation.

39

4.4.1 - Algoritmo Back-Propagation O algoritmo Back-Propagation proposto por Rumelhart (captulo 3) foi um dos principais responsveis pelo ressurgimento do interesse nas RNAs. um algoritmo do tipo supervisionado (seo 4.2.1)que utiliza pares de entrada e sada desejada, que por meio de um mecanismo de correo de erros ajusta os pesos da rede [27]. O treinamento ocorre em duas fases: forward e backward. A fase forward utilizada para definir a sada da rede para um dado padro de entrada. A fase backward utiliza a sada desejada e a sada fornecida pela rede para atualizar os pesos de suas conexes (figura 4.4).
Fase forward

E N T R A D A
Fase backward

S A D A S

Figura 4.4 Fluxo de processamento do back-propagation Este algoritmo apesar de ser o mais conhecido apresenta algumas limitaes: Definio dos parmetros: devemos definir parmetros como: dados da topologia da rede (por exemplo, nmero de nveis, nmeros de unidades em cada nvel, velocidade de aprendizagem, inrcia). Este procedimento de definio dos parmetros considerado um processo pouco conhecido, onde pequenas diferenas podem levar a grandes diferenas, tanto no tempo de treinamento quanto na generalizao obtida. No raro encontrar na literatura diferentes tempos e diferentes ordens de magnitude de um parmetro para um mesmo problema, utilizando o Back-Propagation. Aprendizado seqencial, que obriga a apresentar toda a base de aprendizado a cada passo. Problema da competio entre as unidades da rede, que se adaptam mesmo se estas j possuem uma funo bem definida na rede. Este problema conhecido como moving target problem [1].

40

Torna-se muito lento para vrias aplicaes e piora sensivelmente para problemas maiores e mais complexos [2].

Segundo alguns autores, estas limitaes acabam dificultando o uso deste algoritmo, permitindo apenas o treinamento de pequenas redes, com poucos milhares de pesos ajustveis [2]. Concluindo: o algoritmo Back-Propagation no um algoritmo incremental, nem ao nvel da base de exemplos, e muito menos ao nvel de estrutura da rede. A sua arquitetura esttica continua a ser um problema a mais no que se refere ao aprendizado. Uma rede com poucas unidades e conexes tem forte chance de no ter sucesso em uma tarefa de aprendizado, pois no ter condio de alcanar o melhor desempenho possvel por falta de capacidade de representao de todos os conhecimentos envolvidos no problema tratado. J uma rede com muitas unidades, pode ter problemas de generalizao, pois quando se tem muita capacidade de armazenamento de informaes, a tendncia da rede decorar no lugar de aprender a informao [13]. Portanto fica aberta a questo de como fazer para estimar o nmero ideal de neurnios para uma dada aplicao?

41

4.4.2 - Algoritmo Cascade Correlation Como foi citado no incio desta seo, os algoritmos dinmicos possuem a capacidade de modificar a estrutura da rede. Estas modificaes podem ser tanto generativas (incremental) ou destrutivas (redutor por eliminao/simplificao). A escolha entre estes dois mtodos bastante polmica: devemos comear com uma rede pequena e ir aumentando ou devemos comear com uma rede bastante grande e ir reduzindo seu tamanho? Mesmo no existindo um consenso, podemos dizer que grande parte dos pesquisadores concordam que as redes dinmicas em geral so um dos melhores mtodos que existem obter para uma boa arquitetura de uma rede neural [13]. Um exemplo de algoritmo dinmico e incremental o Cascade-Correlation. Nesta seo sero abordadas algumas caractersticas sobre este algoritmo, j que este foi o escolhido para o treinamento da rede neural que far o controle autnomo do RMA que ser implementado neste trabalho. O Cascade-Correlation (Cascor) foi desenvolvido por Scott Fahman [4], para resolver algumas limitaes do Back-Propagation, entre elas o problema do moving target problem [1]. O treinamento do Cascor feito da seguinte forma (figura 4.5): O Cascor comea com uma rede mnima (apenas camadas de entrada e sada) e, durante o treinamento, insere novas unidades intermedirias, uma por vez, criando uma estrutura de mltiplas camadas. A nova unidade conectada entrada, sada e s unidades intermedirias que j fazem parte da rede. Quando uma nova unidade inserida, congela-se os pesos de suas entradas (resolve o problema do moving target problem). Esse neurnio comea ento a influenciar as operaes da rede, sendo utilizado para detectar novas caractersticas no grupo de padres. A unidade a ser includa na rede pode ser selecionada de um conjunto de candidatos organizados em uma camada. Essa camada conectada camada de entrada e s camadas intermedirias j existentes, mas no camada de sada, pois no deve influir diretamente no resultado da rede. O critrio de seleo do candidato a correlao que a sada desse candidato tem com a sada da rede. Portanto, o peso de conexo entre os candidatos e as camadas de entrada e intermedirias deve ser definido de modo a maximizar a correlao entre o candidato e a camada de sada. Assim, o candidato que apresentar a maior correlao ser inserido definitivamente na rede como uma camada intermediria, ligando-se a todas as outras camadas da rede, incluindo a camada de sada.

42

Unidades candidatas

Figura 4.5 Rede aps a insero de dois neurnios Portanto para justificarmos o uso do Cascor neste trabalho podemos citar algumas caractersticas : 1. Melhoria de respostas da rede, atravs do uso de um algortmo rpido e eficiente no aprendizado. 2. Este algoritmo aumenta a velocidade do aprendizado de maneira significativa. 3. bastante simples na sua utilizao (fcil definio de parmetros). 4. Mantm os conhecimentos originais da rede. 5. Otimiza a rede de modo a adquirir novos conhecimentos atravs de exemplos. Em funo destas caractersticas podemos encontrar na literatura referncias que indicam que o algoritmo Cascade-Correlation possui claramente uma maior performance que os outros algoritmos do tipo Back-Propagation [7].

43

4.5 - SNTESE
Vimos neste captulo os tipos de aprendizado de uma rede neural (seo 4.2), introduzimos o conceito de generalizao e apresentamos algumas vantagens e desvantagens entre os algoritmos de aprendizado (seo 4.4). Como foi abordado no captulo 2, o RMA desenvolvido neste trabalho ter um controle reativo, atravs de uma rede neural. A rede que far este controle do tipo MLP (Multi Layer Perceptron) (captulo 2). O treinamento da rede ser por aprendizado supervisionado (seo 4.2.1) e o algoritmo de treinamento o Cascade-Correlation. No captulo 5 vamos descrever o desenvolvimento do RMA tipo carro com rodas (captulo 2), utilizando os conceitos abordados nos captulos anteriores.

44

5- IMPLEMENTAO
5.1 APRESENTAO DO PROBLEMA
O problema escolhido para estudo e desenvolvimento consiste na implementao de tcnicas inteligentes de controle de um RMA do tipo carro com rodas. Para a soluo do problema, ser aplicado um algoritmo de aprendizado de mquinas (RNA) no controle de estacionamento de um veculo autnomo. O Simulador de Estacionamento de um Veculo Autnomo (Seva), foi desenvolvido por Farlei Heinen [15], em sua verso original utilizava-se de um sistema baseado em regras para o controle do veculo(RMA). Este sistema controlado por regras realiza um controle deliberativo (fixo pr-definido) (seo 2.4.2) da tarefa de estacionar um carro em uma vaga paralela (parallel parking). As regras, similares s regras de um sistema especialista, possuem algumas limitaes como: so pouco robustas, mais sujeitas a erros, pouco flexveis e de difcil adaptao a novas situaes. Por possuir estas limitaes, importante salientar que nas simulaes realizadas com este sistema o carro j se encontra em uma posio favorvel antes de iniciar a execuo da tarefa (por exemplo: em fila dupla prximo a vaga). Caso contrrio tarefa no poder ser executada. Aps a implementao de um novo sistema adaptativo feito junto ao Seva, este sistema dever realizar tarefas que lhe so atribudas de modo autnomo, bem como possuir a capacidade de se adaptar ao meio em que estiver inserido, desde que seja treinado para isto.

5.2 SIMULADOR SEVA


O simulador Seva Simulador de Estacionamento de Veculos Autnomos, foi desenvolvido em Visual C++, de forma modular utilizando-se de bibliotecas de classes MFC (Microsoft Foundation Classes). O simulador permite a visualizao, em uma janela grfica, da trajetria e do comportamento do veculo durante o processo de estacionamento. O simulador permite que o estacionamento seja feito de duas formas: - Por controle manual, onde o usurio pode controlar o veculo atravs do teclado, neste caso o simulador serve somente como interface, no interferindo na tarefa (instrues para o controle manual vide anexo 1).

45 Por controle das regras, neste caso o simulador totalmente autnomo, sem a interferncia humana.

A figura 5.1 apresenta a interface do simulador Seva, onde um desenho da trajetria do veculo foi sobreposto sobre a imagem da interface, permitindo visualizar o comportamento tpico do veculo.

Figura 5.1 Simulador SEVA Para a tarefa de estacionamento o Seva utiliza alguns componentes de controle da simulao que so representados atravs de variveis. Antes de apresentarmos as variveis importante salientar que os valores que elas apresentam foram definidos pelo autor do Simulador Seva . As variveis utilizadas so: Sensores: Os sensores infra-vermelhos simulados servem como sensores de proximidade, sendo capazes de determinar o quo prximo o carro est de um obstculo. Um valor igual a zero indica que o carro bateu no obstculo e um prximo a 1024 indica que est longe do obstculo. No total so 6 sensores, distribudos em pontos estratgicos do RMA (figura 5.2).

46

Figura 5.2 Visualizao dos sensores Estado: Esta varivel pode possuir os seguintes valores conforme mostra a figura 5.3, totalizando 7 diferentes estados. Ela informa qual tarefa o RMA (estado do autmato apresentado na figura 5.8) est executando naquele momento. Valor 1 2 Significado Procurando Vaga Posicionando Descrio O veculo est avanando, procurando uma vaga entre os obstculos. A vaga j foi encontrada e o veculo se posiciona ao lado do obstculo para entrar na vaga. O veculo est parado, se encontra neste estado no incio e no final da simulao. Este estado o prximo aps o estado 2, onde o veculo est dando r e girando a direo para entrar na vaga. Neste estado o veculo se posiciona dentro da vaga. O veculo otimiza vaga. sua posio na

Parado

4 5 6 7

Entrando na Vaga Posicionando Otimizando Alinhando na Vaga

Dentro da vaga o veculo alinha a direo e passa para estado 3.

Figura 5.3 Valores da varivel estado

47

Velocidade(speed): Varivel atuadora, informa a velocidade que o RMA se encontra. Pode ser ajustada em 5 diferentes estados de velocidade. Cada um destes estados (figura 5.4) associado a um valor numrico correspondente a velocidade real a ser adotada pelo RMA. Velocidade -0.02 -0.01 0.0 0.01 0.04 Estados em que utilizada Entrando na Vaga (R) Posicionando(R) Carro Parado Posicionando carro, Alinhando na Vaga Procurando Vaga e Posicionando

Figura 5.4 Valores da varivel velocidade Giro da direo(rotvel): Varivel atuadora, informa a direo do RMA, atravs de um conjunto de quatro valores adotados como ngulos de rotao, conforme a figura 5.5. Rotvel -1.5 0.0 0.85 1.0 Posio do Carro Entrando na Vaga Posicionando, Procurando Vaga Alinhando na Vaga Parado

Figura 5.5 Valores da varivel giro da direo Odmetro: Sensor de posicionamento (deslocamento relativo) implementado, que indica a distncia percorrida pelo carro. Ele usado em casos onde, aps encontrar uma vaga, necessrio primeiro avanar uma certa distncia antes de entrar de r na vaga. Esta varivel recebe um valor no estado 2 (posicionando) vai sendo decrementada a cada novo passo do veculo sendo usada na transio para estado 4 (entrando na vaga), indicando o momento para rotao do veculo.

A figura 5.6 apresenta a interface grfica da zona de status do simulador SEVA onde as variveis so apresentadas. Conforme foi abordado no incio da seo o controle do veculo pode ser feito de duas formas, onde o campo superior esquerda indica o controle escolhido, neste exemplo pela forma manual, caso seja pelo controle das regras este campo mostra o estado do veculo (por exemplo, procurando vaga). As barras esquerda indicam o estado dos sensores, neste exemplo os sensores 0 e 1 apresentam a barra totalmente preenchida, indicando valores igual a 1024 (este valor indica que no h

48 obstculos visveis no campo dos sensores 0 e 1), j o pouco preenchimento das barras dos os sensores 4 e 5, indicam a proximidade de obstculos visveis no campo desses sensores (valores mais prximos de 0). Os valores exatos dos sensores so apresentados em S0, S1, S2, S3, S4, S5 conforme mostrado na figura. Nesta zona de status tambm apresentada a escala indicando o valor da direo do veculo, que resultado da aplicao da varivel giro da direo (rotvel), e atravs de um velocmetro mostrado o valor da velocidade (speed) de deslocamento do veculo.

Figura 5.6 Zona de status do Seva Como j foi citado no incio deste captulo o sistema original foi implementado atravs da criao de um conjunto de regras (if-then) que descrevem o comportamento de um motorista (especialista) ao realizar a tarefa de estacionar o carro. Segundo o autor do simulador [15] o uso do autmato (figura 5.7) favoreceu o tratamento dos sensores em tempo real. Alm do gerenciamento da memria do estado do sistema ficar facilitado, pois esta memria representada pelos estado atual e o anterior. As regras usadas consultam o estado atual do autmato (figura 5.7), dos sensores e do odmetro, e geram como efeito o controle dos atuadores de velocidade de deslocamento (varivel speed) e de rotao (giro da direo varivel rotvel). O sistema completo possui um total de 30 regras, que esto anexadas no trabalho (vide anexo 2).

49

Procurando_Vaga

Posicionando

Entrando_Vaga

Posicionando_Vaga

Parado

Alinhando

Otimizando_Vaga

Figura 5.7 Autmato de estados

5.3 SIMULADOR NEUSIM


Antes de iniciarmos esta seo vamos adotar uma nova nomenclatura para denominar o simulador Seva original e o Seva modificado identificados com nomes distintos para facilitar a explicao deste captulo. Simuladores: Seva A: Seva Autmato Seva N: Seva Neural

Na definio do problema (seo 5.1) foram apresentadas algumas das limitaes do simulador Seva A que est baseado em um sistema especialista (uso de regras). Como o objetivo atual deste trabalho a implementao do Seva - N para o controle reativo, nesta seo vamos apresentar os parmetros que compem a estrutura da rede neural assim como a sua construo para fazer o controle do Seva - N. Para a construo de uma RNA o primeiro passo a obteno da base de aprendizado(exemplos) a ser usada pela rede neural. Adaptou-se ento o simulador Seva A de modo a gerar um arquivo de log, contendo o registro do estado dos sensores, estado do autmato e o estado dos atuadores (velocidade e giro da direo). Este arquivo permite que sejam gravados os dados referentes execuo da tarefa de estacionamento, seja esta tarefa controlada pelo sistema especialista, ou pelo controle manual (usurio). Uma vez obtida a base de aprendizado a rede poder ser treinada, utilizando o simulador neural, o Neusim [14]. A base de aprendizado ser apresentada em maiores detalhes na seo 5.4. O sistema Neusim um mdulo conexionista do sistema hbrido INSS que foi desenvolvido no Laboratoire LEIBNIZ em Grenoble na Frana por Fernando Osrio e Bernad Amy [14]. O sistema INSS est organizado em mdulos que realizam as

50 diferentes tarefas necessrias para o bom funcionamento do sistema. Os mdulos que compem este sistema so: CLIPS (Mdulo Simblico), NeuSim (Mdulo Neural Simulador / Aprendizado), NeuComp (Compilador de regras simblicas em redes), Extract (Extrao de regras partir das redes neurais) e Valid (Mdulo de verificao e validao dos conhecimentos do sistemas, representados pelos exemplos e regras). A figura 5.8 mostra um diagrama esquemtico dos componentes do sistema.

Figura 5.8 Organizao do INSS [12] O sistema INSS possui diversos mdulos e diferentes possibilidades de uso, entretanto para o treinamento da RNA vamos utilizar somente o mdulo do simulador Neusim. O Neusim precisa de dois arquivos para fazer a simulao. So eles: *.lrn e *.cfg. O *.lrn contm a base de dados para o aprendizado supervisionado da rede neural. O arquivo *.cfg (anexo 3) contm os parmetros necessrios para a simulao. Este arquivo varia de acordo com algortmo usado no treinamento. O arquivo utilizado foi a configurao padro usada com o Cascade-Correlation, onde foram modificados apenas os dados referentes s caractersticas especficas do problema [12] e anexo 3 para mais detalhes. Com estes dois arquivos gerados e configurados o Neusim est pronto para a simulao. O segundo passo da construo da RNA foi a identificao das variveis que faro parte da rede e seus valores que iro constituir o arquivo *.lrn, procedeu-se ento um levantamento das variveis envolvidas no processo do estacionamento. Identificamos as seguintes variveis: Valsens[0], Valsens[1], Valsens[2], Valsens[3], Valsens[4], Valsens[5] que so os sensores; Estado, Speed (velocidade) e Rotvel(giro da direo).

51 Identificadas as variveis, o terceiro passo constou da identificao de quais variveis (atributos) fazem parte da entrada da rede e quais so de sada. As variveis (atributos) de entrada da rede que empregamos foram: o estado dos seis sensores e uma indicao do estado atual do processo de estacionamento (um dos sete estados possveis: procurando_vaga, posicionando, etc). Na sada da rede iremos obter o estado dos atuadores (velocidade e giro da direo), assim como uma indicao do prximo estado do processo de estacionamento. Deste modo, a rede ir controlar os atuadores, mas tambm ir decidir quando devemos passar de um estado a outro de modo anlogo ao autmato de controle. A figura 5.9 apresenta o esquema das entradas e sadas da RNA adotada. Note que o estado previsto pela rede re-inserido nela como sendo o estado atual, sendo ento usado no instante de tempo seguinte.
SENSORES ESTADO ATUAL

REDE NEURAL

GIRO DA DIREO

VELOCIDADE

PRXIMO ESTADO

Figura 5.9 Descrio da RNA usada para controlar o veculo Salientamos a importncia de se conhecer o estado atual, para podermos interpretar corretamente os sensores, por exemplo: Quando estamos procurando uma vaga, temos os sensores laterais indicando a proximidade de um carro, onde isto indica que devemos continuar a avanar at encontrar uma vaga, quando ento os sensores laterais iro indicar que o obstculo no est mais to prximo; Quando estamos entrando na vaga, temos os sensores laterais indicando a proximidade de um carro (como na situao anterior), mas isto indica que devemos engatar uma r para colocar o carro na vaga previamente localizada.

Esta ambigidade a nvel sensorial faz com que seja necessria uma informao adicional para distinguir um estado do outro, esta informao o estado atual. Apesar de precisarmos de uma indicao do estado do processo de estacionamento em que nos encontramos, a rede neural capaz de aprender a detectar a passagem de um estado a outro, e uma vez terminada a fase de aprendizado, ela ser capaz de realizar o estacionamento de forma autnoma sem a interveno humana.

52

5.4 CRIAO DA BASE DE APRENDIZADO


Conforme foi citado no captulo 4 (Processos de Aprendizagem), o algortmo utilizado para o treinamento da rede foi o Cascade-Correlation. Como algumas variveis de sada so do tipo real estas precisaram ser codificadas para nmeros binrios. Isto porque uma das caractersticas deste algortmo que ele utiliza somente sadas binrias na base de aprendizado. Primeiramente vamos explicar os diferentes tipos de codificao binria usadas junto a RNA: binrio puro - figura 5.10, binrio(1 entre N) figura 5.12, termmetro figura 5.11.

Binrio Puro 0 000 1 001 2 010 3 011 4 100 5 101 6 110 7 111

Os nmeros binrios puros, possuem uma variao muito pequena entre um nmero e outro, como pode ser notado no esquema ao lado. Entre o nmero binrio 0 e o binrio 4, existe apenas um bit de diferena. Isto no muito bom para a rede, por esses nmeros serem bastante distintos quantitativamente, mas muito similares em termos de bits

Figura 5.10 Codificao binrio puro

Termmetro 0000001 0000011 0000111 0001111 0011111

Estes nmeros binrios so chamados de termmetro por avanarem como se fosse uma escala. So usados em sistemas especialistas, por exemplo, para marcar a temperatura de um paciente. A adaptao dos dados para este tipo de codificao binria no adequada para a rede desenvolvida neste trabalho, porque existem casos onde no h uma relao de ordem e de grandeza entre os dados(ex.variveis de estado)

Figura 5.11 Codificao termmetro

53
Binrio(1 entre N) 1 0000001 2 0000010 3 0000100 4 0001000 5 0010000 6 0100000 7 1000000 Estes nmeros so os mais adequados para a nossa rede, pois possuem uma diferenciao equilibrada entre as diferentes codificaes de cada valor, como pode ser visto na tabela ao lado, facilitando assim o aprendizado da rede.

Figura 5.12 Codificao binria(1 entre N) Conforme foi citado na figura 5.12, a codificao binria (1 entre n) a mais adequada para o problema tratado (codificao dos estados e demais sadas da rede). Portanto esta foi a codificao de dados adotada, por facilitar o aprendizado da rede. A seguir so apresentados na figura 5.13 os valores das variveis de sada da rede neural codificados para binrio(1 entre N). As variveis de sada so: prximo estado, velocidade e giro da direo, conforme mostra a figura 5.9.
Prximo estado 1 2 3 4 5 6 7 Codificao binria 0000001 0000010 0000100 0001000 0010000 0100000 1000000

Velocidade -0.02 -0.01 0.0 0.01 0.04

Codificao binria 00001 00010 00100 01000 10000

Giro da Direo -1.5 0.0 0.85 1.0

Codificao binria
0001 00010 0100 1000

Figura 5.13 Codificao binria das variveis de sada da rede neural Aps a realizao das seguintes tarefas: Identificao das variveis. Gravao do arquivo de log. Organizao das variveis da rede neural. Codificao das variveis de sada.

Obtemos assim a base de aprendizado da RNA. A figura 5.14 apresenta uma amostra da primeira base de aprendizado utilizada para o treinamento supervisionado da rede neural.

54

Figura 5.14 Amostra da base de aprendizado supervisionado da rede neural. Conforme mostrado na figura 5.14 a varivel estado atual mesmo sendo uma varivel de entrada da rede neural est codificada para binrio, isto porque a rede que ir decidir quando dever passar de um estado a outro, conforme foi descrito na seo 5.3. Como a rede copia o prximo estado do tempo T (sada da rede) no estado atual do tempo T+1 (entrada da rede), a codificao usada para codificar ambos dever ser a mesma. O arquivo de aprendizado ser gravado com a extenso *.lrn e ser usado para o aprendizado da rede neural. Os valores localizados no canto superior esquerda da figura 5.14 constituem o cabealho do arquivo *.lrn onde os valores indicam o seguinte: -

13 unidades de entradas (6 sensores mais 7 bits do valor do estado atual). 16 unidades de sadas (5 bits do valor da velocidade, mais 4 bits do valor da rotao e mais 7 bits do valor do prximo estado). 185 exemplos na base de aprendizado (este arquivo contm 185 linhas com entradas e as respectivas sadas).
0 um nmero constante que deve aparecer sempre no final do cabealho.

55 Na prxima seo vamos apresentar os resultados das simulaes realizadas com o simulador Neusim.

56

5.5 RESULTADOS DA SIMULAO


Os resultados das simulaes de aprendizado da RNA, em um conjunto de 10 simulaes (figura 5.15) que realizamos, com inicializaes diferentes dos pesos da rede, foram os seguintes: obtivemos uma taxa de aprendizado com uma mdia de acerto de 98.649% nas respostas da rede; foram inseridas apenas 2 unidades na camada intermediria (adicionadas pelo algoritmo Cascade-Correlation) e o nmero mdio de pocas de aprendizado foi de 572 (melhor poca) pocas. Como foi utilizada uma base de 185 exemplos, cerca de 3 exemplos no foram corretamente aprendidos pela rede.

Figura 5.15 Tela de resultados do Neusim Como a rede no aprendeu 3 exemplos, fizemos alguns testes usando uma base de dados contendo somente os exemplos de troca de estado. Este o momento mais crtico, porque caso a rede no aprendesse a trocar de estados todo o processo ficaria comprometido. Mas segundo os resultados dos testes o aprendizado da passagem de estado foi de 100%. Significando que os 3 exemplos no aprendidos aparentemente no iriam comprometer todo o processo, para sabermos se afetam ou no o processo preciso a adaptao para a rede neural assumir o processo.

57

5.6 ADAPTAO DO SEVA A COM A REDE NEURAL


Os resultados obtidos nas simulaes foram bastante satisfatrios, mas para atingirmos o objetivo deste trabalho e sabermos realmente se a rede aprendeu a realizar a tarefa, foi preciso ento fazer a adaptao do simulador Seva A integrando a rede neural, a ser usada para controlar o veculo no lugar das regras obtendo assim o Seva N. O simulador Neusim foi desenvolvido em Gnu C (gcc) e o Seva A em Visual C++ portanto tivemos que compilar o executvel do Neusim (Simneu.c) em C++. Esta transformao foi mais simples que pensvamos. Poucas funes no compilaram em C++, uma delas foi a funo calloc (alocao de memria), para resolver este problema precisamos adicionar dois includes para que estas funes compilassem (stdlib.h e process.h). Aps estas pequenas mudanas o Simneu.c compilou em C++ e passou a ter a extenso Simneu .cpp . Fizemos testes com a base de dados da funo booleana Xor por ser mais simples e todas tiveram 100 % de aprendizado (figura 5.16).

2140 0 1 0 1 0 0 1 1 0 1 1 0

Figura 5.16 Base de aprendizado do Xor e resultado da simulao usando Neusim complilando com o Visual C++ Com simulador Neusim compilando em Visual C++, partimos para a integrao com o Seva A . Como j foi citado neste captulo o Seva A foi desenvolvimento de forma modular (figura 5.17), onde o programa principal (DialogGLDg.cpp) chama os demais mdulos atravs das funes para executarem a simulao. Isto facilitou a integrao, porque o Simneu.cpp passou a ser mais um mdulo do simulador. A integrao foi realizada da seguinte forma: Inserimos o Simneu.cpp no Seva A, substitumos o main ( ) (funo principal de programas *.c) pela funo Inicializa e RodaRede.

58 A funo Inicializa l o arquivo com os pesos da rede j treinada. A funo RodaRede passa ser a funo principal do Simneu. Ela recebe como parmetros o ponteiro do vetor de sensores (valsens) e o do vetor do estado atual do veculo (estado_atual) e retorna a velocidade (speed) a rotao (rotvel) e o prximo estado (prox_estado) do veculo. No mdulo DialogGLDg.cpp a funo OnTimer ( ) que inicia a simulao, ao invs de chamar as regras, passou a chamar a funo RodaRede que passa a fazer o controle do veculo.

Aps estas implementaes o Seva N est pronto para iniciarmos as simulaes, usando uma rede neural para controlar o veculo.

Figura 5.17 Workspace do Visual C++ apresentando mdulos do SEVA - N

59

5.7 - SIMULAES COM O SEVA N


Para verificar se a rede realmente aprendeu a controlar corretamente o veculo durante toda a execuo da simulao, realizamos as simulaes com o controlador neural do Seva N. Desta forma pode ser verificado se os exemplos no aprendidos pela rede eram significativos ou no, ou seja, se um aprendizado com 98% de acerto era suficiente para controlar o veculo na tarefa de estacionamento do incio ao fim da simulao. Nas primeiras simulaes aps a adaptao a rede no conseguiu completar a tarefa, o veculo iniciava passando por cima dos obstculos e acabava desaparecendo da rea grfica. Isto vazia com que os valores passados para a rede fossem invlidos e ela deixava de controlar o veculo. A figura 5.18 apresenta as primeiras simulaes apresentando o problema.

Figura 5.18 Resultado das primeiras simulaes Este problema foi facilmente identificado, a simulao deveria iniciar com o valor do giro da direo igual a 0.0 (direo reta) e no foi este valor que o veculo apresentou. Portanto verificamos a base de aprendizado e constatamos que o valor do giro da direo tinha um erro de codificao binria e acabou recebendo o valor igual a 1.5 que o valor para entrar na vaga e no 0.0 que o valor certo para o incio da simulao. A base de aprendizado foi ento novamente criada e treinada. No houve alteraes com os ndices de aprendizado apresentados na seo 5.5. Com a base de aprendizado corrigida e treinada refizemos as simulaes usando o Seva - N. Nas simulaes seguintes a rede conseguiu controlar o veculo, trocou de estados, ajustou a velocidade e identificou a vaga para estacionar. At o momento de entrar na vaga, o comportamento do simulador mostrou-se perfeito, mas quando iniciou a r para

60 entrar na vaga, o tempo de r foi insuficiente para ajustar o giro da direo para -1.5 (entrando na vaga) e o veculo acabou batendo no obstculo da frente, a figura 5.19 apresenta este problema. Novamente tivemos problema com o giro da direo.

Figura 5.19 Novas simulaes aps a correo do erro de inicializao do giro da direo Devido a este problema a rede no conseguiu completar a tarefa, porque os valores dos sensores mudaram significamente e a rede acabou perdendo o controle. A soluo deste problema exigiu uma nova anlise de todo processo de aprendizado.

5.7.1 IDENTIFICAO DO PROBLEMA


Para identificarmos este problema, a tarefa inicial foi verificar novamente a base de aprendizado, tentando verificar se no tinha ocorrido mais um problema na converso dos dados. Verificamos que desta vez base de aprendizado estava correta. Ento passamos para novas analises das regras do Seva A. Identificamos assim que a utilizao da varivel odmetro (seo 5.2) nas regras a de contar o quanto o veculo andou para deslocar o veculo inicialmente em linha reta e aps um certo deslocamento, ento alterar o valor de giro de direo e estado. Isto permite que o simulador seja capaz de estacionar (contando o tempo de r no momento que o veculo se posiciona para entrar na vaga ) sabendo o tempo certo de comear a girar a direo do veculo.

61

5.7.2 VARIVEL ODMETRO


Uma vez identificado que esta varivel um componente indispensvel para que a tarefa seja realizada de forma completa e com sucesso, tivemos ento que incorpor-la no simulador Seva N. Estudamos ento com detalhes o seu comportamento nas regras e identificamos o seu funcionamento que da seguinte forma: A varivel odmetro inicializada com o valor 0.0 Quando o veculo entra no estado 2 (procurando vaga) a varivel recebe o valor 2.00 (equivalente o tamanho de dois carros), que vai sendo decrementada de 0.4, quando atinge um valor menor igual a 0.0 a varivel estado recebe o valor 4 (entrando na vaga). No estado 4 a varivel odmetro recebe o valor 0.55 (equivalente a carro) que vai sendo decrementada, quando atinge o valor menor igual 0.0 a varivel do giro da direo recebe o valor 1.5 (entrando na vaga). Assim o veculo controla o tempo de r de modo a deslocar o carro suficiente at a direo rotacionar e comear a entrar na vaga, evitando assim a coliso.

Verificamos portanto que o odmetro fundamental para o sucesso da simulao. No incio dos trabalhos quando identificamos as variveis que faziam parte da base de dados inicial, deixamos o odmetro de fora por que no identificamos a sua real utilidade, o que s foi possvel depois que iniciamos as simulaes com o Seva N.

Figura 5.20 Simulao com o Seva N, aps o problema solucionado

62

5.8 ADAPTAO DO SEVA N A NOVAS SITUAES


Com a incluso do odmetro no simulador, fizemos novas simulaes e a rede conseguiu efetuar a tarefa corretamente. Alm de aprender a tarefa corretamente, o outro objetivo da modificao para um o controle reativo neural a capacidade de adaptao a novas situaes. Com a criao do odmetro e o treinamento da rede com diferentes bases de aprendizado ser possvel capacitar o simulador novas situaes.

Figura 5.21 Simulao com o Seva N, aps o problema solucionado

63

64

6 CONCLUSO
Neste trabalho foram vistos conceitos sobre robtica, redes neurais e formas de aprendizado e de redes neurais. Foram abordadas caractersticas de robs mveis e sua atuao na sociedade. Foram tambm mostradas diferenas entre, as arquiteturas robticas (deliberativas e reativas), assim como suas vantagens e desvantagens. Partindo deste estudo inicial, foi desenvolvida uma proposta de implementar a adaptao de um sistema de controle deliberativo baseado em regras para o controle reativo baseado em uma rede neural. O sistema proposto deve ser capaz de aprender a realizar tarefas que lhe so atribudas de modo autnomo, bem como dever possuir a capacidade de se adaptar a novas situaes. O simulador por controle neural Seva N est capacitado a executar o mesmo comportamento desenvolvido pelas regras e se adaptar a novas situaes, desde que seja treinado para isto. As simulaes realizadas revelaram que o sistema proposto foi capaz de alcanar com sucesso os objetivos previstos, tanto no que se refere ao aprendizado da tarefa (com altos nveis de acerto), quanto ao que se refere ao controle do veculo na tarefa de estacionamento. Em relao ao trabalho desenvolvido, como perspectivas para uma possvel continuidade do trabalho, ainda existem melhorias como: treinamento da rede para novas situaes a fim de obter tarefas de conduo autnoma de veculos mais sofisticadas e at o possvel uso de um veculo real. As perspectivas em relao a robtica mvel so animadoras, principalmente com a constante evoluo do hardware e o grande nmero de pesquisas na rea. Para que num futuro no muito distante, os robs possam se tornar ferramentas comuns no nosso cotidiano.

65

ANEXO 1 COMANDOS PARA O CONTROLE MANUAL DO SEVA -A


Teclas para o controle manual do Seva A, onde o usurio controla o veculo. Teclas: A = Acelera para frente Z = Acelera para trs S = Stop - Para o carro < = Gira para a esquerda > = Gira para a direita R = Reset - Volta a posio inicial) G = Go - Comea o procedimento automtico para estacionar o carro O procedimento automtico (tecla G), quando as regras tomam o controle do veculo.

66

ANEXO 2 REGRAS DO SEVA A


void AvaliaEstado()
{ verifica_sensores(); switch(estado) { case PARADO: break; case PROCURANDO_VAGA: speed = 0.04f; rotvel = 0.0f; // mantem o carro alinhado if(phi < 0.0f) phi += 0.15f; if(phi > 0.0f) phi -= 0.15f;

// evita colisoes frontais if(valsens[0] < 128.0f) { speed = 0.0f; estado = PARADO; } // evita colisoes traseiras if(valsens[1] < 128.0f) { speed = 0.0f;

67 estado = PARADO; } if(valsens[2] < 128.0f) { speed = 0.0f; estado = PARADO; } // evita colisoes traseiras if(valsens[3] < 128.0f) { speed = 0.0f; estado = PARADO; }

// se afasta quando estiver muito perto dos obstaculos if(valsens[4] < 300.0f) phi-= 0.20f; if(valsens[5] < 300.0f) phi-= 0.20f;

if( (valsens[2] > 1000.0)&& (valsens[3] > 1000.0)&& (valsens[4] > 1000.0)&& (valsens[5] > 1000.0)) { estado = POSICIONANDO; odometro = 2.0f; }

break; case POSICIONANDO: speed = 0.04f;

68

// mantem o carro alinhado if(phi < 0.0f) phi += 0.1f; if(phi > 0.0f) phi -= 0.1f; // se afasta quando estiver muito perto dos obstaculos if(valsens[4] < 300.0f) phi-= 0.2f; if(valsens[5] < 300.0f) phi-= 0.2f; // evita colisoes frontais if(valsens[0] < 128.0f) { speed = 0.0f; estado = PARADO; } // evita colisoes traseiras if(valsens[1] < 128.0f) { speed = 0.0f; estado = PARADO; } if(valsens[2] < 180.0f) { speed = 0.0f; estado = PARADO; } // evita colisoes traseiras if(valsens[3] < 180.0f) { speed = 0.0f; estado = PARADO; }

69 if( (odometro < 0.0f) && (valsens[4] > 1000.0f) ) { estado = ENTRANDO_VAGA; odometro = 0.55f; } if(valsens[4] < 1000.0f) { estado = ENTRANDO_VAGA; odometro = 0.55f; } odometro -= speed; break; case ENTRANDO_VAGA: speed = -0.02f; rotvel = -1.5f; phi += rotvel; if(odometro > 0.0f) phi -= rotvel; if(valsens[2] < 512.0f) { estado = POSICIONANDO_VAGA; } if(phi < -60.0f) { estado = POSICIONANDO_VAGA; }

70

if(valsens[1] < 512.0f) { estado = POSICIONANDO_VAGA; } odometro += speed; break; case POSICIONANDO_VAGA: speed = -0.01f; rotvel = 1.0f; phi += rotvel; if(valsens[1] < 128.0f) { estado = OTIMIZANDO_VAGA; } if(phi >= 0.0f) { estado = OTIMIZANDO_VAGA; } break; case OTIMIZANDO_VAGA: speed = 0.01f; rotvel = 0.85f; phi += rotvel;

71 if(valsens[0] < 128.0f) { estado = ALINHANDO; } if(phi >= 0.0f) { estado = ALINHANDO; } break; case ALINHANDO: if(valsens[0] > valsens[1]) speed = 0.01f; if(valsens[1] > valsens[0]) speed = -0.01f; if(fabs(valsens[0] - valsens[1]) < 50) { speed = 0.0f; estado = PARADO; } break; default: break; } }

72

ANEXO 3 ARQUIVO DE CONFIGURAO DO CASCADECORRELATION


%% %% NEUSIM Configuration %% Task LTWSOG MaxEpochs 1500 NInputs 13 NOutputs 16 Learning 1 Cascor 8 % % CasCor parameters % CCOutPat 16 CCOutECh 0.01 CCHidPat 16 CCHidECh 0.03 EpLearn 1 % % Learning parameters % RndRange 0.001 Epsilon 0.0001 Momentum 0.0 MaxErr 0.39 StopCrit 1 SPOffset 0.1 % % Report % RepLevel 128 ErrLevel 0 RepFreq 50 UserFreq 10 UserRep 1 %% %% End of CFG %% File - log with Cascade-Correlation learning % Learn + Final Test % Start with no hidden units % Learning method: % Cascade-Correlation (8 candidate units)

% CasCor use quick-prop (epoch oriented)

% Stop when 100% correct (learning data)

73

BIBLIOGRAFIA
[1] Batavia, Parag; Pomerleau, Dean & Thorpe, Charles. Applying Advanced Learning Algorithms to ALVINN. CMU Technical Report CMU-RI-TR-96-31. Carnegie Mellon University. Pittsburgh. 1996. [2] Braga, Antnio de Pdua; Ludermir, Tereza Bernarda; Carvalho, Andr Carlos Ponce de Leon Ferreira. Redes Neurais Artificiais, Teoria e Aplicaes; LTC Editora, Rio de Janeiro. 2000. [3] Borenstein, J e Everett, H.R. e Feng, L. Where am I? Sensors and Mathods for mobile Robot Positioning. Abril, 1996. [4] Fahlman, Scott E. & Lebiere, Christian. The Cascade-Correlation Learning Architecture. Carnegie-Mellon University CMU, Computer Science Techincal Report. CMU-CS-90-100. 1990. [5] Garnier, Philippe; Fraichard, Thierry; Laugier, Christian; Paromtchik, I. and Scheuer. Motion Autonomy Through Sensor-Guided Manoeuvres. IEEE-RSJ International Conference on Intelligent Robots and Systems, Procedings of the Intelligent Cars and Automated Highway Systems Workshop. Sept. 1999. Grenoble, France. [6] Heinen, Farlei Jos. Robtica Autnoma: Integrao entre Planificao e Comportamento Reativo; UNISINOS Editora, So Leopoldo, Novembro, 1999. [7] Joost M, W.Schiffmann, R. Werner. Comparison of Optimized Backpropagtion Algoritms. Presented at ESANN 93, Brssel. [8] Lemonick, Michel. Dante Tours the Inferno. Domestic/Science. Vol. 144, No. 7. August 15, 1994. Time Magazine Time

[9] Medeiros, Adelardo. Introduo a Robtica. ENA-98 Encontro Nacional de Automtica (50 Congresso da SBPC). Natal, RN. pp.56-65. 1998. [10] Michel, Olivier. Khepera Simularor Version 2.0 User Manual. Universit de Nice Sophia Antipolis. Laboratoire I3S - CNRS, France / EPFL Lausanne, Swiss. March 1996. [11] Minsky, M; Papert, S. Perceptrons an Introduction to Computacional Geometry. MIT Press, Cambridge, 1969.

74

[12] Osrio, Fernando Santos. INSS: Un System Hybride Neuro-Symbolique pour lApprentissage Automatique Constructif. Thse de Doctorat (Ph.D) en Informatique. Laboratorie Leibniz - IMAG / INPG. Grenoble, France, 1998. [13] Osrio, Fernando S. & Vieira, Renata. Sistemas Hbridos Inteligentes. Tutorial apresentado no ENIA99 Encontro Nacional de Inteligncia Artificial, Congresso da SBC, Rio de Janeiro 1999. [14] Osrio, Fernando S & Amy, Bernard. INSS: A hybrid system for constructive machine learning. Neurocomputing, Elsevier Press. Netherlands. 1999. [15] Osrio, Fernando; Heinen, Farlei; Fortes, Luciane. Controle Inteligente de Veculos Autnomos Automatizao do Processo de Estacionamento de Carros. X Seminco Furb Blumenau. Agosto, 2001. [16] Paromtchik, I. E. & Laugier, C. Autonomous Parallel Parking of a Nonholonomic Vehicle. Procedings of the IEEE International Symposium on Intelligent Vehicles., pp. 13-18. September, 1996. [17] Pomerleau, D. Neural network based autonomous navigation. In: Thorpe, C.(Ed). Vision and Navigation: The CMU Navlab. Kluwer Academic Publihers, 1990. [18] Rumelhart, D.; Hinton, G; Williams, R. L. Learning Internal Representations by Error Propagation. In: Parallel Distributed Processing Vol. 1. MIT Press, Cambridge. 1986. [19] Sheuer, A. & Laugier, C. Planning Sub-Optimal and Continuous-Curvature Paths for Car-Like Robots. IEEE-RSJ International Conference on Intelligent Robots and Systems. Victoria, British-Columbia, Canada. Oct. 1998. [20] Mars Rover Research MIT . Web: http://www.ai.mit.edu/projects/mars-rovers/ [21] Dante Nasa Project. Web: http://img.arc.gov/Dante/dante.html [22] Stone, H. W. Mars Pathfinder Microver: A low-cost, low-power Spacecraft. Proceeding of the 1996 AIAA. Forum on advanced developments in Space Robotics. Madison, WI. August 1996. [23] Universidade do Porto - Portugal. URL: http://alf.fe.up.pt (setembro 2001) [24] Zsolt, Kovcs L. Redes Neurais Artificiais Fundamentos e Aplicaes. Cognitivo, 1996. [25] Grupo de Inteligncia Artificial da Unisinos. URL: http://inf.unisinos.br /~osorio/gia.html (Jul. 2001).

75

[26] Wooldrige, Michael e Jennings, Nicholas. Intelligente Agents: Theory and Pratice. Engineering review, outubro, 1994. [27] M. A. Tafner, M. De Xerez E I. W. R. Filho, Redes Neurais Artificiais Introduo E Princpios De Neurocomputao. Editora Eko, Blumenau, SC, 1995. [28] GSI, Grupo de Sistemas Inteligentes. http:// www.din.uem.br. (15/06/2001) [29] Haykin, Simon. Redes Neurais Princpios e Prtica. Bookman, 2000.

Você também pode gostar