jueves, 14 de junio de 2012

Video de recorrido

Acabo de encontrar este video promocional del próximo robot cortacésped de Bosch, el Indego.
Se trata de un robot que detecta el contorno de la superficie a recorrer mediante hilo perimetral; en el video se centran en comparar dos estrategias de recorrido en entornos ideales: la aleatoria frente a la de zig-zag.
Aquí os lo dejo. Es muy ilustrativo de los problemas que estoy enfrentando.
  

viernes, 1 de junio de 2012

Cambio de estrategia

El algoritmo de recorrido se complica.

El problema básico es la dificultad en detectar el contorno de la superficie a recorrer.
Tengo demasiados tipos de obstáculos distintos que delimitan el borde; tengo paredes, tengo plantas en la valla, tengo un árbol con su alcorque y además tengo un escalón. El escalón, para más inri, obliga a un giro a derechas cuando la estrategia de giros es siempre hacia la izquierda.

Un caos para el pobre robot de sólo tres sensores.
Por eso algunos robots comerciales requieren de un hilo perimetral para posicionarse.

En fin, cambiaré de estrategia y usaré sólo los sensores para evitar obstáculos imprevistos y el recorrido tendrá que ir 'pregrabado' de algún modo.

viernes, 17 de febrero de 2012

El ojo tuno

Para evitar que el robot se caiga por los escalones voy a tener que añadirle al montaje un sensor adicional para 'mirar' el suelo. Vamos, que voy a tener que instalarle un 'ojo tuno'.


El sensor sólo deberá mirar que haya suelo bajo el robot. Decido utilizar un sensor de proximidad por infrarrojos, que será más asequible que los de ultrasonidos y además el rango de distancias a medir es más cortito.


El Sharp GP2D120 tiene un rango de medida de 4 a 30 centímetros. Yo creo que servirá.
Lo colocaré en la parte delantera, enfocando al suelo y midiendo cada vez que se mire si hay obstáculos delanteros. Si la distancia al suelo aumenta por encima de un umbral consideraré que hay obstáculo y haré que el robot reaccione deteniendo el avance y forzando una maniobra de giro.

martes, 7 de febrero de 2012

Estrategia del caracol

Los giros serán maniobras sucesivas de alejamiento y aproximación al obstáculo en ángulos de unos 8 o 10 grados.
En el vídeo de la entrada anterior se puede ver cómo se enfrenta el robot a un obstáculo:
  1. Detecta el obstáculo mediante el sensor frontal.
  2. Lo intenta esquivar con una primera maniobra.
  3. El sensor frontal sigue detectando el obstáculo por lo que realiza otra maniobra.
  4. Un vez superados los 15 grados, el sensor frontal deja de detectar el obtáculo (ver diagrama de sensibilidad del sensor )  El sensor lateral todavía está lejos por lo que se reanuda el avance.
  5. El sensor lateral detecta el obstáculo. Realiza otra maniobra.
  6. En el siguiente avance, el sensor lateral vuelve a detectar el obstáculo y repite la maniobra hasta que supera el obstáculo.


El recorrido óptimo para economizar en los giros y no hacer pasadas innecesarias es el recorrido en espiral.

Voy a intentar implementar un algoritmo que detecte el contorno de la zona a recorrer y luego lo recorra en espiral. Mi área de trabajo no será tan compleja como la del dibujo así que no me complicaré en exceso. 

martes, 17 de enero de 2012

Problemas de vista


A pesar de la precisión de los sensores de ultrasonidos SRF08 de Devantech, la posición de los mismos en el robot hace que el alcance real sea limitado. De los teóricos 6 metros de alcance, pasamos a unos 50 cm por el efecto de la cercanía del suelo. Y no tiene sentido levantarlos más porque entonces no vería los obstáculos en su trayectoria.

En fin, el robot no es capaz de ver los límites del área a recorrer por lo que la estrategia de recorrido deberá cambiar de forma radical. ¡Ah! Y además tenemos el problema añadido de no disponer de un 'ojo' mirando al suelo para detectar escaleras, ¡claro!

Todo esto me recuerda la famosa escena de El Jovencito Frankestein con el ciego...

viernes, 13 de enero de 2012

Problemas de movilidad

La tracción por cadenas permite superar todo tipo de obstáculos pero trae asociados unos cuantos problemas de movilidad, especialmente en los giros.

En teoría, en una superficie plana y con potencia sobrada, el robot es capaz de rotar sobre sí mismo con sólo hacer girar las cadenas en sentidos opuestos a la misma velocidad.

Pero la realidad siempre se opone a nuestros deseos. En la hierba, el rozamiento es mucho mayor y no tenemos potencia suficiente para hacer los giros de este modo.

Para suavizar los movimientos y no forzar en exceso los motores finalmente decido realizar los giros poniendo los motores en el mismo sentido y con la cadena interior a media velocidad.

Además, los dos sensores de ultrasonidos situados en ángulo de 90º tienen una zona ciega que impide hacer los giros correctamente frente a un obstáculo.



Será preciso colocar los sensores a unos 45º de forma que en los giros sea visible el obstáculo en todo momento.