Conteúdo

Actividades

Actividade 3 (Lego NXT)

Vamos programar o nosso robô (NXT) para realizar algumas tarefas simples de interacção com o ambiente. Em particular, são comportamentos típicos da maioria dos animais. Apesar da simplicidade das tarefas, vamos poder constatar que, dada a pobreza sensorial do robô, e até limitações de programação vai ser necessária imaginação e algum esforço para as podermos levar a cabo.

Os desafios desta actividade podem todos considerar-se na categoria de comportamentos de “evitar obstáculos” e de “seguir objectos”.

DESAFIO 1

Tacteando”

Neste primeiro desafio pretende-se pôr o robô como que a tactear paredes, seguindo ao longo delas.

Suponha que o robô arranca paralelo a uma parede, a uma distância de cerca de 10 cm, e que deve continuar andando ao longo da parede.

Pode começar por usar o sensor de Infra-Vermelhos (IV) para medir a distância à parede.

A ideia base é afastar o robô da parede quando a distância for mais pequena e aproximá-lo quando a distância for maior.

Suponha que a distância acima referida (10 cm) é um valor médio. Ou seja, aceita-se que o robô esteja ligeiramente mais perto (7 cm) antes de o afastar, e que esteja ligeiramente mais afastado da parede (13 cm) antes de o aproximar. Podemos considerar estes valores como margens de tolerância de proximidade e de afastamento, respectivamente.

Experimente valores diferentes para estas “margens”. O que acontece quando são iguais?

Experimente situações “complicadas”, como por exemplo ter de contornar um armário ou uma porta aberta. Nota sensibilidade de alguns parâmetros do seu programa a estas situações? Em particular, a velocidade (de rotação) com que ele se afasta ou se aproxima da parede deve ser avaliada com este intuito.

DESAFIO 2

Tacteando mesmo!

Visto que o desafio anterior foi ultrapassado com brilhantismo, podemos adaptar o resultado de modo a que o robô faça o mesmo (seguir ao longo de uma parede) usando agora o sensor de contacto (botão de pressão).

Há-de notar que esta solução não é tão eficiente, com certeza.

Por isso...

DESAFIO 3

Tacteando apoiado

Experimente agora fazer o robô seguir paredes, usando os dois sensores: infra-vermelhos e contacto.

DESAFIO 4

Tacteando com “tudo”

Sabe, com certeza, que o NXT também tem um sensor activo de ultra-sons (US). Experimente agora fazer o robô seguir paredes usando todos os sensores (IV, US e contacto) ou o sub-conjunto que considere mais eficiente.

DESAFIO 5

Vagueando

Bom, agora que o robô consegue andar “apoiado” a uma parede, vamos dotá-lo de mais capacidade. Ou seja, pretende-se que o robô ande livremente até encontrar um obstáculo. Nesse caso deve evitá-lo e continuar a sua senda exploradora.

Será que os resultados dos desafios anteriores ajudam neste?

Há-de reparar que, se o espaço for vasto, vaguear sempre em frente é pouco interessante para quem está a observar. Experimente dotar o seu robô da capacidade de virar, para a esquerda ou para a direita, de vez em quando.

Também pode fazê-lo parar, de vez em quando. Naturalmente sem ter a ver com o “de vez em quando” anterior.

Por fim pode ainda fazer variar a velocidade. Mas aqui, em vez de ser “de vez em quando” podemos fazer com que ele ande mais devagar se detecta obstáculos e acelere se está em espaço livre.

Cada vez mais o comportamento do robô se vai parecer com o de um pequeno animal, não acha?

  

DESAFIO 6

Seguindo uma presa

Já que o nosso “animal” consegue explorar o ambiente vamos agora fazê-lo passar “ao ataque”. Ou seja, vamos tentar fazer com que ele consiga seguir objectos.

A ideia é tentar utilizar o resultado do desafio anterior e, nos períodos em que o robô está parado, permitir que ele detecte se surge algum objecto. Quando isso acontecer o robô deve aproximar-se do objecto “intruso” e tentar segui-lo. Pode “desinteressar-se” do objecto que está a seguir se este parar durante muito tempo.

Se tiver dificuldade em fazer com que o robô consiga seguir um objecto, pode sempre detectar o “intruso” e “atacá-lo”. Isto é, quando o robô está no modo de detecção de intrusos, assim que detecta um, pode avançar com uma velocidade elevada. Se além disso, ainda fizer um movimento “ameaçador” com um braço móvel, vai com certeza assustar o “intruso”. Já que não os “caça”, assusta-os! ;-)

© 2007 DI-FCUL – Todos os direitos reservados.

Design & Development by Core Factor