A concepção de um robot envolve a criação de um conjunto de algoritmos, permitindo cada um deles realizar uma função específica. A dinâmica, o controlo, o planeamento de trajectórias, a utilização de sensores são algumas das funções que estes algoritmos implementam. Este conjunto de algoritmos utilizados para completar as tarefas estão normalmente incluídos em módulos de software. No entanto, existem diversas formas de comunicar com o robot, sendo importante destacar três delas: reconhecimento de palavras, a estratégia "teach and playback" e as linguagens de alto nível. Será essencialmente sobre estas últimas que o nosso estudo recairá.
Os sistemas de reconhecimento de palavras encontram-se ainda num estado primitivo e dependentes do orador. Estes sistemas podem reconhecer um conjunto de palavras discretas de entre um vocabulário bastante restrito sendo, na maioria dos casos, necessário que o orador efectue pausas entre palavras.
A segunda estratégia referida anteriormente é muito comum nos robots industriais dos dias de hoje. Este método envolve o ensino ao robot dos movimentos que o utilizador pretende que ele realize e caracteriza-se essencilamente por três fases. Numa primeira fase, o utilizador guia o robot usando os comandos manuais por todos as fases que constituem a tarefa a realizar registando todos os ângulos e localizações dos braços do robot e do próprio robot por forma a poder repetir o processo. Numa segunda fase será necessário editar, inserir e recapitular os movimentos ensinados ao robot. Finalmente, se os movimentos estiverem correctos é possível passar para a utilização prática do robot. Em caso contrário será necessário repetir todo o processo.
As linguagens de programação permitem uma abordagem mais geral para resolver o problema das comunicações Homem-Máquina. A programação de robots, no entanto, difere de forma significativa da programação tradicional. Existem alguns pormenores que devem ser considerados antes de iniciar a programação de um robot. Por um lado, os objectos a manipular são tridimensionais e operam numespaço físico complexo. Por outro lado, a descrição e representação do conhecimento são imprecisas sendo necessário obter, tratar e utilizar um quantidade considerável de informação proveniente dos diversos sensores.
As linguagens de programação podem ser divididas em duas categorias fundamentais: linguagens nível robot e linguagens nível tarefa. Na programação orientada ao robot, uma tarefa é explicitamente definida como uma sequência de movimentos do robot. O robot é guiado e controlado por um programa durante toda a execução da tarefa existindo quase que uma correspondência entre cada linha de código e a cada operação efectuada. Por outro lado, as linguages orientadas à tarefa, definem uma tarefa como um conjunto de objectivos posicionais dos objectos em vez dos movimentos necessários para atingir esses mesmos objectivos. Estas abordagens são discutidas em detalhe nos dois pontos seguintes.
Linguagens nível robot
A abordagem mais comum utilizada aquando da concepção de uma linguagem ao nível do robot consiste em extender uma linguagem de alto nível já existente de forma a satisfazer os requisitos da programação de robots. A maioria destas linguagens apresentam características chave que são comuns umas às outras. Vejamos um exemplo que elucidará o funcionamento deste tipo de abordagem: colocar uma rolha numa garrafa, estando a rolha numa caixa de rolhas. Os passos utilizados para elaborar este programa seriam os seguintes. Numa primeira fase, definir a área de operação. De seguida, seria necessário estabelecer a posição e orientação dos objectos e das suas características numa estrutura de dados definida pela linguagem utilizada. Numa terceira fase, dividir-se-ia a tarefa em sequências de acções (por exemplo mover o robot, pegar numa rolha da caixa, inserir rolha na garrafa). Após o estabelecimento da referida sequência seria necessário adiccionar comandos sensoriais para detectar situações anormais e para supervisionar a evolução da tarefa. Finalmente dever-se-ia depurar todo o programa e refiná-lo repetindo os passos anteriores à excepção do primeiro. Convém referir, que as duas linguagens mais utilizadas são a AL desenvolvida na universidade de Standford e a AML desenvolvida pela IBM. A preferência por estas duas linguagens não é arbitrária. A AL influenciou o desenvolvimento de muitas linguagens orientadas ao robot e ainda está a ser desenvolvida. Fornece um vasto conjunto de comandos para fazer face aos requisitos da programação de robots e suporta também programação de alto nível. A linguagem AML está disponível como um produto da IBM para o controlo dos se us robots sendo a sua abordagem um pouco diferente da anterior. A sua filosofia consiste em fornecer um ambiente onde diferentes interfaces de programação de robots possam ser construídas. Deste modo contém um vasto conjunto de primitivas para operações em robots que permitem aos utilizadores definir comandos de alto nível de acordo com as suas necessidades. Estas duas linguagens são a referência no mundo das linguagens de programação orientadas a robots.
Linguagens nível tarefa
Uma abordagem bem diferente na programação de robots é a utilizada nas linguagens nível tarefa. A forma natural para descrever uma tarefa é feita em termos de objectos que são manipulados em vez de movimentos do robot. As linguagens nível tarefa tiram partido deste facto e simplificam a tarefa de programação.
Um sistema de programação orientado à tarefa permite ao utilizador descrever uma tarefa numa linguagem de alto nível (especificação da tarefa). De seguida, o planeador de tarefas consulta a base de dados, que contém modelos de mundos, e transforma a especificação da tarefa num programa nível robot que efectuará a tarefa. Desta forma, podemos dividir o planeamento de tarefas em três fases: modelamento do mundo, especificação de tarefas e síntese do programa.
O modelamento do mundo é necessário para descrever as propriedades geométricas e físicas dos objectos (robot incluído) e para representar o estado dos objectos, em termos de programação, na área de actuação. O modelo geométrico fornece informação espacial, como a dimensão, o volume, a forma dos vários objectos. As propriedades físicas como a inércia, a massa e a fricção podem limitar o tipo de movimento que o robot pode efectuar.
A especificação de tarefas é feita com uma linguagem de alto nível. Ao nível mais elevado teríamos uma linguagem natural como entrada não sendo necessário especificar nenhum passo computacional. No entanto, o estado de desenvolvimento das entradas encontra-se um pouco distante do estado descrito. A abordagem utilizada consiste no uso de uma linguagem com uma sintaxe e semântica bem definidas onde a sequência computacional tem que ser fornecida sendo que cada tarefa pode ser descrita como uma sequência de estados no mundo real.A síntese do programa para o robot a partir da especificação da tarefa é um dos passos mais importantes e difíceis do planeamento de tarefas. Não será aqui discutido a evolução de todo o programa que permitirá ao robot cumprir as tarefas que foram especificadas, devido essencilamente à sua complexidade e extensão.

segunda-feira, 20 de outubro de 2008
Assinar:
Postar comentários (Atom)
0 comentários:
Postar um comentário