Autor Tema: Robot "aspiradoras" (Robot Vacuum Cleaner)  (Leído 17725 veces)

nachomanz

  • PIC12F
  • **
  • Mensajes: 160
Robot "aspiradoras" (Robot Vacuum Cleaner)
« en: Marzo 04, 2010, 11:58:17 pm »
Hola,

El otro dia u amigo me mostro un Robot Vacuum Cleaner (aspiradora robot)  :baba .... la verdad me gusto mucho la idea...y pense se podra hacer una con las cosas que tenemos a mano??  :duda

Lei que algunas tienen hasta sensores para detectar no caerse por las escaleras ni chocarse con cosas...hasta ahi pareciera que los principio a aplicar son casi iguales a cualquier robot que se pueda armar ...pero...siempre hay un pero...lo primero que se me paso por la cabeza fue...como hacen para saber por donde limpiar y el area a trabajar?

Estuve buscando y no encontre informacion al respecto...no por lo menos al detalle necesrio para darse una idea mas clara de como funciona esto.

Alguien tiene alguna idea?

Algunos links de robot interesantes son:

http://www.irobot.com/
http://www.robotshop.ca/robot-vacuums.html

Agrego algunos links de informacion
http://en.wikipedia.org/wiki/Roomba
http://www.howstuffworks.com/gadgets/home/robotic-vacuum.htm

Desde ya como siempre muchas gracia a todos!
saludos
Nacho

PD: Ariel lo puse aca en off-topic porque no sabia donde meter este post :)
« Última modificación: Marzo 05, 2010, 12:01:00 am por nachomanz »

Ariel

  • Global Moderator
  • dsPIC
  • ****
  • Mensajes: 10753
    • uControl
Re: Robot "aspiradoras" (Robot Vacuum Cleaner)
« Respuesta #1 en: Marzo 05, 2010, 12:18:58 pm »
Hola!
Quizas el soft "de abordo" aprenda donde estan las cosas a medida que circula por la casa....no?
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

nachomanz

  • PIC12F
  • **
  • Mensajes: 160
Re: Robot "aspiradoras" (Robot Vacuum Cleaner)
« Respuesta #2 en: Marzo 05, 2010, 01:00:54 pm »
Si, lo pense eso...pero lo que no se bien como resolver es como armar el "mapa" por donde ya fue pasando :duda  ...para poder saber asi la superficies ya cubiertas sino se corre el riesgo de que se quede dando vueltas en un mismo sector de una habitacion.

Pense en algun algoritmo que primero determine el perimetro a ser limpiado y luego trabaje dentro de ese perimetro mediante limpieza por sectores...pero no se si es una solucion muy rebuscada....

gracias!
Nacho

Ariel

  • Global Moderator
  • dsPIC
  • ****
  • Mensajes: 10753
    • uControl
Re: Robot "aspiradoras" (Robot Vacuum Cleaner)
« Respuesta #3 en: Marzo 05, 2010, 01:15:40 pm »
Ademas de tooodo eso, está el problema de que las ruedas (o lo que usas para sensar el piso) no deberian "patinar" nunca....sino todo el mapa se va al demonio  >:D

Otro sistema podria ser elaborar un algoritmo que permita recorrer el "terreno" como lo haria una persona inteligente. Hay muchos algoritmos que permiten recorrer laberintos, por ejemplo, que podrian ser adaptados. Serian una serie de reglas del tipo:

1) Avanzo
2) Si choco algo, retrocedo, giro 90 grados a ka derecha, avanzo 10 cm, giro 90 grados a la izquierda y vuelvo a 1)

Con reglas lo suficientemente buenas se deberia poder limpiar una habitacion.

Los algorimos usados para "pintar" superficies cerradas en programas como el PAINT tambien podrian darte una pista.  ;)
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Felixls

  • Moderador
  • PIC24F
  • ******
  • Mensajes: 3125
    • Felixls
Re: Robot "aspiradoras" (Robot Vacuum Cleaner)
« Respuesta #4 en: Marzo 05, 2010, 05:21:34 pm »
Esto encontré en el manual del usuario de uno de los bichos estos

Hace 5 pasos diferentes repetidos:



Jeje, toda una ciencia  ;D

Ariel

  • Global Moderator
  • dsPIC
  • ****
  • Mensajes: 10753
    • uControl
Re: Robot "aspiradoras" (Robot Vacuum Cleaner)
« Respuesta #5 en: Marzo 05, 2010, 05:22:59 pm »
Y yo pensando que era una especie de HAL9000 con bolsa para el polvo.......  :'(
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

nachomanz

  • PIC12F
  • **
  • Mensajes: 160
Re: Robot "aspiradoras" (Robot Vacuum Cleaner)
« Respuesta #6 en: Marzo 06, 2010, 12:10:22 pm »
Excelente informacion Felixls!!!

Yo pense que el robot tenia algo de IA o algo por el estilo para poder determinar la zona a limipar....

Bue por loe que veo seria perfectamente viable adaptar alguno de nuestros robot para que siga ese patron, sera cuestion de armar el robot programarlo y ver como se "pasea" por la pieza...

muchas gracias a todos!
Saludos
Nacho

mundotronic

  • PIC12F
  • **
  • Mensajes: 167
    • mundotronic CNC
Re: Robot "aspiradoras" (Robot Vacuum Cleaner)
« Respuesta #7 en: Marzo 08, 2010, 11:59:30 am »
Hola nachomanz, siempre tuve la idea de un robotito que se pasee por la casa (creo que todos la tuvimos ;D).
Mi idea es la siguiente:

El robotito debe saber en un principio, en que parte de la casa esta, que superficie tiene (ancho y largo) la habitacion en donde se encuentra y en que direccion esta apuntando. Ademas puede contar con sensores ultrasonicos o infrarrojos para detectar obstaculos y asi aplicar la estategia que dijo antes Ariel, pero al girar hacia algun lado debe ser capaz de saber que distancia en esa direccion y sentido le queda por recorrer... Ademas podria agregarse la posicion en donde esta la puerta de la habitacion. Por lo gral. en una casa las paredes contiguas una a otra formal aprox. 90º por lo tanto si se coloca el robot paralelo a una pared deberia 90º o sus multiplos (180º, 270º o 360º).

Como sabe que distancia recorre?. Podria acoplarse a las rueda el encoder de un mouse en desuso y saber exactamente el perimetro de la rueda, de esa manera se sabe que distancia recorrio o se desplazo en tal sentido.

Como reconoce el sentido y la posicion exacta en donde esta?. En la casa debe haber un punto cualquiera, pero siempre el mismo y una direccion y un sentido que elijamos que tambien debe ser siempre la misma y que ese va a ser el origen o "0 casa" y desde donde va a partir y sacar los calculos para saber su posicion.
Se deberia armar un plano de la casa en el PIC para que vaya deduciendo la posicion segun lo que diga el encoder y el angulo que haya girado.

Creo que de esa manera podria hacerse programando un poco (o bastante).

Obviamente podemos agregarle un modulito bluetooth para que nos envie la posicion a nuestro Nokia (I Love Nokia  ;) ), y varias cosas mas. Espero se haya entendido lo que quis explicar, cualquier cosa hago algun grafico para que apoye esta explicacion.

Saludos! :rolleyes2:

nachomanz

  • PIC12F
  • **
  • Mensajes: 160
Re: Robot "aspiradoras" (Robot Vacuum Cleaner)
« Respuesta #8 en: Marzo 08, 2010, 12:15:42 pm »
Hola mundotronic!,

Si desde hace rato vengo con esta idea.

Concuerdo con los ptos. que mencionas, habria que ver como se podria saber dentro de la pieza donde esta el robot, es decir el sentido de orientacion, asi el robot sabe hasta por ejemplo donde esta su base para recargarse como hacen algunos modelos.

Me comento un amigo , no lo vi en internet, que hay unos modelos re avanzados que como que tienen un camara y "ven" la pieza y con eso esquivan obstaculos y saben por donde van....

saludos
nacho

Ariel

  • Global Moderator
  • dsPIC
  • ****
  • Mensajes: 10753
    • uControl
Re: Robot "aspiradoras" (Robot Vacuum Cleaner)
« Respuesta #9 en: Marzo 08, 2010, 12:45:03 pm »
Se deberia armar un plano de la casa en el PIC para que vaya deduciendo la posicion segun lo que diga el encoder y el angulo que haya girado.

Yo creo que -programando mucho y bien- el robot podria ir metiendo en una EEPROM el plano de la casa a medida que la recorre. Debe haber algo parecido por ahi en que basarse....Alguien ya debe haber usado algun formato de datos para registrar coordenadas o vectores o lo que sea para "almacenar" los datos cartograficos de una casa. De hecho, la forma en que lo hace un GPS serviria, aunque los datos no provengan de un GPS, se puede usar la misma lógica para almacenar los recorridos y la posicion de cada obstaculo.

Repito: yo no se como hacerlo, pero estoy seguro que buscando un rato en google hay algo de código aprovechable en lo que basarse. Insisto con los robots que recorren laberintos....por que para mi, topograficamente un labertinto o la habitacion de una casa llena de muebles es practicamente la misma cosa :P

Saludos!
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

mundotronic

  • PIC12F
  • **
  • Mensajes: 167
    • mundotronic CNC
Re: Robot "aspiradoras" (Robot Vacuum Cleaner)
« Respuesta #10 en: Marzo 08, 2010, 03:28:21 pm »
Es buena idea la de los laberintos, tambien recien estaba pensando lo del GPS y leyendo bien cual es el funcionamiento. Basandose en eso, aunque mas costoso seria colocar en la periferia de la casa 3 emisores y 3 receptores RF, el robotito deberia tener un emisor RF y un receptor RF tambien (pueden ser los TLP434 y RLP434) y asi el robot emitir una señal y que sea devuelta por cada "satelite" con su prefijo. Sabiendo el tiempo que tarda cada una de las 3 señales en volver sabemos la posicion en el espacio del robot.

Basta de ciencia ficcion casera, en un rato cuando termine los graficos de mi idea los subo.

Saludos! :rolleyes2:

EDITO: Miren este enlace a cerca del sistema GPS
« Última modificación: Marzo 08, 2010, 03:31:58 pm por mundotronic »

Felixls

  • Moderador
  • PIC24F
  • ******
  • Mensajes: 3125
    • Felixls
Re: Robot "aspiradoras" (Robot Vacuum Cleaner)
« Respuesta #11 en: Marzo 08, 2010, 03:35:51 pm »
Tengo entendido que se puede saber cuando y en que dirección se desplaza el robot.

El robot se mueve en 2D (así que es más fácil que en el caso del GPS), para un posicionamiento en 2D hacen falta dos referencias.

Como este bicho va a limpiar nuestras habitaciones, las referencias serían las paredes,  me parece que con un sensor tipo sonar se soluciona, y con una distancia máxima promedio de 3mts no habría problemas de hacer un algoritmo "inteligente" que arme el mapa.

Igualmente no olvidar que estamos limpiando, lo que significa que lo más probable es que tengamos que recorrer ese mapita varias veces para asegurarnos una mejor limpieza, y esto nos ayude a corregir dicho mapa en la memoria.


Ariel

  • Global Moderator
  • dsPIC
  • ****
  • Mensajes: 10753
    • uControl
Re: Robot "aspiradoras" (Robot Vacuum Cleaner)
« Respuesta #12 en: Marzo 08, 2010, 03:54:03 pm »
Hola Felixls!

Me parece que hacen falta 3 puntos para moverse en 2 D. Tengo fiaca para dibujar, asi que va la explicacion ;)

Imaginate que estas a 3 metros del punto A y a dos metros del punto B....¿Donde estas? Hay MUCHOS lugares que cumplen con esa condicion. Podes imaginarte que A y B son los dos radios de una elipse...asi que podrias estar en cualquiera de los infinitos puntos de la misma. Agregando otro, CREO que todavia te quedas corto...puede que un tercer punto C te reduzca a DOS puntos sobre la elipse, asi que harian falta 4. :(

Los GPS usan 4 en realidad, y eso da DOS lugares posibles. Pero uno de ellos queda afuera de la sup terrestre (enterrado o en el espacio), y el sistema lo descarta ;)


(Explicacion aca)
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Felixls

  • Moderador
  • PIC24F
  • ******
  • Mensajes: 3125
    • Felixls
Re: Robot "aspiradoras" (Robot Vacuum Cleaner)
« Respuesta #13 en: Marzo 08, 2010, 07:09:06 pm »
Cita de: Ariel
Los GPS usan 4 en realidad, y eso da DOS lugares posibles. Pero uno de ellos queda afuera de la sup terrestre (enterrado o en el espacio), y el sistema lo descarta ;)
No es así, el GPS necesita 4 satélites ya que usa 3 para la triangulación (longitud, latitud y altitud) o (x,y,z) y la cuarta dimensión, osea el tiempo, para realizar las correcciones del tiempo en que cada satelite emitió su señal.

Me parece que hacen falta 3 puntos para moverse en 2 D. Tengo fiaca para dibujar, asi que va la explicacion ;)

Imaginate que estas a 3 metros del punto A y a dos metros del punto B....¿Donde estas? Hay MUCHOS lugares que cumplen con esa condicion.
Tampoco, en un plano de dos dimensiones se necesitan solo dos puntos, pero como requisito el aparato siempre parte de una posición fija (que puede ser donde está el cargador).

En este dibujito que hice puse un rayito donde estaría el cargador.



Al ser un sensor ultrasónico tipo sonar (rota sobre una superficie), está calculando en realidad varios puntos de referencia.
Luego, el algoritmo solo tiene que tener en cuenta la rotación de 90grados del aparato, y la cantidad de espacio en el movimiento.



« Última modificación: Marzo 08, 2010, 07:14:12 pm por Felixls »

Ariel

  • Global Moderator
  • dsPIC
  • ****
  • Mensajes: 10753
    • uControl
Re: Robot "aspiradoras" (Robot Vacuum Cleaner)
« Respuesta #14 en: Marzo 08, 2010, 07:43:20 pm »
Aca nos agarramos a las piñas!! ja ja ja ja!

Insisto en que con dos no podes fijar la posicion en un plano.  ;)

Una cosa es decir que con dos coordenadas (x,y) podes saber donde queda un punto tomando un punto (0,0) como referencia (hasta ahi estamos completamente de acuerdo), y otra es que podamos decir donde esta algo teniendo la distancia a la que se encuentra de dos puntos. Recorda que al medir el tiempo que tarda en llegarte una señal (acustica, de radio o lo que sea) no tenes la direccion de donde viene...

Imaginate que sos el robot, y estas en (x,y). A esta en (10,10) y B esta en (-10,10). Esos valores son para hacer las cuentas faciles, pero lo que sigue es igual independientemente de donde pongas a A y B. Interrogas y obtenes que estas a "10" del punto A y a "10" del punto "B" ¿Donde estas?

Podes estar en infinitos lugares. Dos de ellos, con valores enteros, son que el robot este en (10, -10) o en (-10, 10).....en esos dos puntos (y en infinitos mas), el robot encontaria que el tiempo que le tardan en llegar las señales es igual....

Voy a trarar de hacer un dibujito. Y vengo!  ;D
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

 

anything