domingo, 24 de outubro de 2010

Robôs x Computadores (II)

Este artigo é, em parte, baseado no livro Robot Programming - A Practical Guide to Behavoir-Based Robotics, de Joseph L. Jones (embora não seja mera tradução).

Execução Serial x Paralela
Na maioria das aplicações computacionais, a execução serial de instruções é suficiente para a obtenção dos objetivos. Programas típicos de computadores estabelecem um diálogo com o usuário (ou operador), analisam os dados informados e geram uma saída correspondente, seja o armazenamento de informações em uma base de dados, a criação dinâmica de uma página da internet, um relatório em tela ou papel, um gráfico, a execução de alguma música, o download de um arquivo, ou o disparo de uma arma em algum jogo qualquer. Todas as entradas são previstas, cada entrada tem um tipo de dados e uma faixa de valores que são testados, e as saídas são funções destas entradas conhecidas. Se o usuário digita alguma bobagem, o programa emite uma mensagem de erro (muitas vezes enigmática, sarcástica ou mesmo desaforada), e espera-se que o próprio usuário resolva a situação, digitando os dados corretos.

Um robô, diferentemente de um computador, exige processamento paralelo. São muitos sensores a serem lidos, diversos atuadores (tipicamente motores) a serem acionados simultaneamente. Não se pode parar um motor para acionar outro.

Mais, a atuação de um robô tem mais semelhança com a atuação de um ser vivo, pois ele precisa descobrir seu ambiente a cada instante (por meio dos sensores) e responder a este ambiente (via atuadores), buscando realizar a tarefa a ele designada. E para isto ele precisa ler e interpretar o ambiente, agindo de forma a evitar riscos e armadilhas (uma colisão ou queda, por exemplo).

Um robô também precisa - e nisto se assemelha a um note-book - monitorar constantemente seu fornecimento de energia. Mas, ao contrário do note-book, o próprio robô pode ser o responsável por tomar a iniciativa de retornar à sua base e buscar o reabastecimento.

Potência
Um computador mais potente resultará, via de regra, em uma execução mais rápida, porém com os mesmos resultados; ou, eventualmente, poderá fornecer resultados mais precisos, ou processar uma maior quantidade da mesma informação, ou melhorar substancialmente a resolução em uma aplicação gráfica.

E, ao contrário do que acontece com os computadores, um robô mais rápido não é garantia de nada, é apenas um robô mais rápido (e, eventualmente, mais propenso a acidentes).

Nenhum comentário:

Postar um comentário