3
Pr´ acticas con Lego NXT Rob´ otica 3 o curso de Ingenier´ ıa T´ ecnica en Inform´ atica de Sistemas y Gesti´on Universidad Rey Juan Carlos Pr´ actica 1 - Radar En la fase 0 aprendimos a utilizar el sensor de ultrasonido, uno de los sensores as ´ utiles del kit NXT. Con ´ el fuimos capaces de detectar obst´aculos, de manera que pod´ ıamos esquivarlos para no chocar con ellos, de manera reactiva. Como era de esperar este sensor no es perfecto y, debido al fen´ omeno de la reflexi´on especular, cuando nos acerc´abamos a un obst´ aculo con bajo grado de incidencia, el sensor no registraba el rebote de los ultrasonidos y choc´abamos contra la pared u obst´ aculo. En esta fase vamos a construir un sensor m´ as elaborado y rico que simule un radar, aunque m´as bien deber´ ıamos llamarle ultrasonido de barrido. Preparando el robot Para esta fase deber´as modificar el dise˜ no de tu robot para que el sensor de ultrasonidos pueda abarcar un rango de 180 (siempre apuntando hacia la parte frontal del robot). Deber´as utilizar el tercer motor incluido en el kit para gobernar el giro del sensor. Presta especial atenci´ on al guiado de los cables, para evitar que al girar se enganchen con alg´ un elemento del robot. Evita los dise˜ nos ultra- sofisticados y pesados. Si tu soluci´on es funcional, cuanto m´ as simple mejor. En la red puedes encontrar algunos dise˜ nos, aqu´ ı te damos un ejemplo usando un sensor no convencional. Figura 1: Ejemplo de montaje

practica1

Embed Size (px)

Citation preview

Page 1: practica1

Practicas con Lego NXTRobotica3o curso de Ingenierıa Tecnica en Informatica de Sistemas y GestionUniversidad Rey Juan Carlos

Practica 1 - Radar

En la fase 0 aprendimos a utilizar el sensor de ultrasonido, uno de los sensoresmas utiles del kit NXT. Con el fuimos capaces de detectar obstaculos, de maneraque podıamos esquivarlos para no chocar con ellos, de manera reactiva. Como erade esperar este sensor no es perfecto y, debido al fenomeno de la reflexion especular,cuando nos acercabamos a un obstaculo con bajo grado de incidencia, el sensor noregistraba el rebote de los ultrasonidos y chocabamos contra la pared u obstaculo.En esta fase vamos a construir un sensor mas elaborado y rico que simule un radar,aunque mas bien deberıamos llamarle ultrasonido de barrido.

Preparando el robot

Para esta fase deberas modificar el diseno de tu robot para que el sensor deultrasonidos pueda abarcar un rango de 180◦ (siempre apuntando hacia la partefrontal del robot). Deberas utilizar el tercer motor incluido en el kit para gobernarel giro del sensor. Presta especial atencion al guiado de los cables, para evitarque al girar se enganchen con algun elemento del robot. Evita los disenos ultra-sofisticados y pesados. Si tu solucion es funcional, cuanto mas simple mejor. En lared puedes encontrar algunos disenos, aquı te damos un ejemplo usando un sensorno convencional.

Figura 1: Ejemplo de montaje

Page 2: practica1

Almacenando la informacion

El objetivo principal de la practica es crear una nueva clase Radar.java quecontenga los siguientes metodos publicos:

public Radar (int vel,int resol,int amp,UltrasonicSensor sonar,Motor motor)

Este sera el contructor de la clase y queremos que acepte como parametrosla velocidad de escaneo, la resolucion en grados del radar, la amplitud en gradosque es capaz de sensar, el objeto de tipo UltrasonicSensor que vamos a usar comosensor y el motor que va a controlar el movimiento de escaneo.

public int[] newScan()

Este metodo provocara un nuevo movimiento de escaneo. Se debera hacer unbarrido completo con los parametros apropiados y se deberan registrar las medidaspara ser devueltas en forma de array.

public void showOnScreen(boolean value)

Este metodo habilitara o deshabilitara la presentacion de los datos del radarpor pantalla. Si esta habilitada, cada nuevo escaneo provocara un nuevo refrescode la pantalla con los datos actualizados.

Usando nuestro radar

Para usar nuestro radar crearemos la clase NavigationRadar.java. En ella ins-tanciaremos un objeto de tipo Radar y lo usaremos para navegar por el entorno.A continuacion mostramos un ejemplo de un pequeno programa principal que pre-senta por pantalla los datos capturados por el radar.

import lejos.nxt.*;public class testRadar {

public static void main(String[] args) throws Exception {

UltrasonicSensor sonic = new UltrasonicSensor(SensorPort.S1);Radar radar = new Radar(500,20,180,sonic, Motor.B);radar.showOnScreen(true);int[] data = new int[180 / 20];

while(!Button.ESCAPE.isPressed()) {data = radar.newScan();

}}

}

2

Page 3: practica1

Debes programar un mecanismo de navegacion que, haciendo uso del radar,comande al robot movimientos para viajar a las zonas con menos obstaculos. Me-diante el radar deberas observar que el robot ahora dispone de mayor informaciona la hora de seleccionar una direccion o asumir que hay un obstaculo en la direccionde avance del robot.

3