domingo, 24 de outubro de 2010

Robôs x Computadores (I)

O mundo da computação (ao qual eu estou acostumado) é asséptico e "bem comportado": um computador é uma máquina fechada, os comandos funcionam e são claramente determinísticos, todas as variáveis são conhecidas e quando ocorrem problemas com componentes físicos você simplesmente pragueja e chama a manutenção, que irá trocar o componente defeituoso por outro equivalente. O mesmo raciocínio ocorre em relação a problemas de sistema operacional, rede, conexões e assim por diante. Um ambiente de programação é algo próximo a uma utopia, onde apenas os erros de programação conspiram contra o programador (supondo que haja uma definição exata dos requisitos de programação, o que é outra utopia, mas fora do nosso escopo).

O mundo da robótica é quase o posto disto. Dificuldades na obtenção de componentes, sensores com respostas não lineares, soldas frias, fios com encapamento derretido, motores sem especificação, ruídos, histerese, circuitos impressos, curtos-circuitos, queima de componentes, caixas, relés barulhentos, e por aí segue a confusão. Os tempos de resposta não são desprezíveis, e nem sempre previsíveis: algo que funciona em teoria na prática nem se move - ou, pelo contrário, sai saltando descontroladamente. É o mundo físico, cuidadosamente escondido nos computadores, que aflora com sofreguidão e sem piedade. É, tipicamente, um mundo "mal comportado", rebelde, que necessita ser domesticado.

Uma questão crucial no mundo da robótica é o relacionamento do robô com o ambiente: como interpretar o ambiente, quais variáveis devem ser lidas, quais são mais importantes, como agir em caso de conflito de informações, como detectar objetos e evitar colisões, como agir sobre o ambiente. Por trás de tudo isto haverá um programa de computador tentando ser inteligente, tentando tomar decisões, tentando otimizar o consumo de energia (problema crítico na robótica, e que deve ser levado em consideração na hora do projeto).

Antes de mais nada, um robô precisa ser concebido levando em consideração:
  • em que meio (terra, ar, água, espaço sideral) o robô irá se locomover;
  • quais tarefas irá realizar;
  • que conhecimento terá do ambiente;
  • como será controlado.
Enquanto isto, quando você quiser comprar um computador, escolhe o modelo conforme as aplicações desejadas, entra na internet (ou na loja física), e compra o que desejar, sem se preocupar com projeto de nada.

    Nenhum comentário:

    Postar um comentário