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

Ariel

  • Global Moderator
  • dsPIC
  • ****
  • Mensajes: 10753
    • uControl
Re: Robot "aspiradoras" (Robot Vacuum Cleaner)
« Respuesta #15 en: Marzo 08, 2010, 07:49:54 pm »
Voy a trarar de hacer un dibujito. Y vengo!  ;D

No soy capaz de dibujar nada....vamos con ASCII :

Este esquema es el del ejemplo anterior. Tenemos los puntos A y B, y el robot podria esta a "10 unidades" de distancia de A y de B si estuviese en los sitios marcados con "*".....

                             ^ +Y 
                             |
                             |
                             |
                             |
                     *     10|........A
                             |       .
                             |       .
                    -10      |       . 
------------------------------------------------------------->
                     .       |       10                     +X
                     .       |
                     .       |
                     ........| -10    *
                    B        |
                             |
                             |
                             |
                             |


¿Me explico?

Si no me estoy mareando, hay mas puntos. Aunque ahora estoy dudando: Revise un poco y la elipse son los puntos donde la SUMA DE LOS RADIOS es constante....en este caso, no se aplicaria. Quizas solo son dos puntos y no infinitos.

¿Se entendio algo?
OJO: Puedo estar terriblemente errado, y no me jode reconocerlo, eh!!!! Pero me parece que es asi.  ;)
« Última modificación: Marzo 08, 2010, 07:53:09 pm por Ariel »
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 #16 en: Marzo 08, 2010, 08:24:39 pm »
No creo que nos vayamos a las piñas  ;D

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...

V=E/T ==> Si conocés la velocidad y obtenés el tiempo el espacio se despeja sin problemas, la dirección es simple, está a 0 grados o a 90, o a 180 o a 270 grados!

Lo que estoy pensando no es un sistema de posicionamiento en forma genérica, estoy pensando en función al problema que estamos resolviendo.

Es por eso que si el robot limpia tu casa, podemos decir establecemos el origen de coordenadas virtual (0,0), en una esquina cualquiera y cada metro cuadrado forma una ubicación posible del aparato, y de esta manera no hay coordenadas negativas.

No comparto lo de puntos infinitos  ???, a ver, si te paras frente a una pared a un metro, y a dos metros de otra pared ortogonal (perpendicular) a esta, solo puede existir uno y solo un punto de coordenada donde estás a un metro de la pared A y a dos de la B (simultaneamente).

« Última modificación: Marzo 08, 2010, 08:26:47 pm por Felixls »

Suky

  • **----- ^^ ------**
  • Moderador
  • dsPIC
  • ******
  • Mensajes: 5442
  • Con Qt...
    • micros-designs
Re: Robot "aspiradoras" (Robot Vacuum Cleaner)
« Respuesta #17 en: Marzo 08, 2010, 08:41:31 pm »
Estoy con Felixls!  ;D Teniendo el punto de partida, con 2 coordenadas sabes donde está  ;)


Saludos!

Felixls

  • Moderador
  • PIC24F
  • ******
  • Mensajes: 3125
    • Felixls
Re: Robot "aspiradoras" (Robot Vacuum Cleaner)
« Respuesta #18 en: Marzo 08, 2010, 08:46:43 pm »
 ;D ;D

La pelea del siglo, a la izquierda está Ariel con una garra voladra, yo engordé un poco, pero logro hacer la gruya



Ariel

  • Global Moderator
  • dsPIC
  • ****
  • Mensajes: 10753
    • uControl
Re: Robot "aspiradoras" (Robot Vacuum Cleaner)
« Respuesta #19 en: Marzo 08, 2010, 09:37:35 pm »
y de esta manera no hay coordenadas negativas.

Todosimo aclarado!

Si pones los emisores en dos paredes perpendiculares y el robot no sale de la habitacion, entonces CERO problemas.

Has ganado en justa ley.

En cuanto a la pelea de gatos....yo estoy asi:


Impresentable.... ;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

Felixls

  • Moderador
  • PIC24F
  • ******
  • Mensajes: 3125
    • Felixls
Re: Robot "aspiradoras" (Robot Vacuum Cleaner)
« Respuesta #20 en: Marzo 08, 2010, 09:58:03 pm »
Si pones los emisores en dos paredes perpendiculares y el robot no sale de la habitacion, entonces CERO problemas.
Si usas los sensores de ultrasonido

No necesitarias poner emisores en las paredes y podrías salir de la habitación recorriendo toda la casa  ;)

Ajax

  • PIC10F
  • *
  • Mensajes: 20
    • Electrónica sudamericana
Re: Robot "aspiradoras" (Robot Vacuum Cleaner)
« Respuesta #21 en: Marzo 08, 2010, 11:52:29 pm »
Amagando a retornar al tema (dando una solución mas o menos práctica quiero decir) propongo usar UN solo equipo de ultrasonido como el de la imagen que puso felixls convertido en un sonar (esto es: una plataforma que rota a dos por hora, la cual tiene un potenciometro para medir la posición de la misma, etc,  etc) colgando del techo, por decir algo, que rastree el robot y lo guíe; sin embargo, este sistema es muy costoso en cuánto a memoria, por lo que éste se utilizaría solamente para verificar que el equipo cumpla su "recorrido", detección de obstáculos y su función principal sería la de detectar si el bot se enterró o no.
O podría usarse un sonar para la detección de obstáculos, y unos tres micrófonos que detecten la frecuencia del sonar, ubicados al estilo del clásico bot sigue-luz.
Lamentablemente desconozco en absoluto cómo utilizar estos aparatos en CCS (o CSS, no me acuerdo  :idiot:)
por lo que código no me pidan. Pero claro, nunca es tarde para aprender esas cosas.

Bueno, siguiendo con el tema, este sería el esquemático Gral. del sistema:

---------------gráficos: Próximamente  :P ---------

Felixls

  • Moderador
  • PIC24F
  • ******
  • Mensajes: 3125
    • Felixls
Re: Robot "aspiradoras" (Robot Vacuum Cleaner)
« Respuesta #22 en: Marzo 09, 2010, 12:10:38 am »
Amagando a retornar al tema (dando una solución mas o menos práctica quiero decir) propongo usar UN solo equipo de ultrasonido como el de la imagen que puso felixls convertido en un sonar (esto es: una plataforma que rota a dos por hora, la cual tiene un potenciometro para medir la posición de la misma, etc,  etc) colgando del techo, por decir algo, que rastree el robot y lo guíe; sin embargo, este sistema es muy costoso en cuánto a memoria, por lo que éste se utilizaría solamente para verificar que el equipo cumpla su "recorrido", detección de obstáculos y su función principal sería la de detectar si el bot se enterró o no.
O podría usarse un sonar para la detección de obstáculos, y unos tres micrófonos que detecten la frecuencia del sonar, ubicados al estilo del clásico bot sigue-luz.
Ajax, es justamente la idea que intenté explicar sobre el sonar en mis post anteriores!

Manejar esos sensores ultrasónicos es muy sencillo, lo difícil va a ser pagarlos, son medio saladitos, y difíciles de conseguir.
« Última modificación: Marzo 09, 2010, 12:12:59 am por Felixls »

mundotronic

  • PIC12F
  • **
  • Mensajes: 167
    • mundotronic CNC
Re: Robot "aspiradoras" (Robot Vacuum Cleaner)
« Respuesta #23 en: Marzo 09, 2010, 08:36:15 am »
A ver... mi idea en mi primer respuesta fue:

"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.
"


Lo que yo quise expresar con esa idea es esto, parecido a lo que dijo felixls.

Sobre un plano o eje de coordenadas (X,Y) colocamos el plano de la casa con sus medidas correspondientes y a partir de ese plano colocar el ORIGEN del robot o base del robot que va a ser el punto de referencia que el tendra dentro de la casa, despues de eso solo resta saber si giró y que angulo (para saber el sentido) y cuando se desplazó. En este grafico (medio fulero :idiot:) explico mas o menos lo que quiero decir.




Ahora vamos a suponer que hoy martes 9 de marzo de 2010 a las 9:00am el robot esta programado para limpiar el invernadero, generando su trayectoria de limpieza haciendo un "raster" o barrido a lo largo del eje X
virtual. El robot deberia:

  • Girar 90º a su izquierda, o lo que es lo mismo quedar en 0º real equivalente a "+X"
  • El robot sabe que dentro de este sistema de coordenadas virtual su origen esta en X=10 e Y=3, ademas sabe que la habitacion donde se encuentra tiene una longitud en X de 3.5m y en Y de 3m. Sabe que la puerta esta en la posicion X=13 e Y=4 y es lindante cn el invernadero. Entonces... avanza hasta X=12.5m e Y=3, gira 90º a su izquierda nuevamente (90º reales o sentido +Y, Direccion o recta de accion paralela a Y), avanza a X=12.5m e Y=4m, gira 90º a su derecha (0º reales o +X)... Atencion!, ya sabe que de frente tiene la puerta que lo lleva al el invernadero, solo falta avanzar hasta X=13m e Y=4m para estar en el limite y entrar.
  • Ahora si, a encender la boba de vacio, comenzar con la estrategia de limpieza programada para esta habitacion. Las coordenadas para realizar la limpieza seria mas o menos asi:

    X=13.5m, Y=4m
    X=13.5m, Y=5m
    X=19.5m, Y=5m
    X=19.5m, Y=4.5m
    X=13.5m, Y=4.5m
    X=13.5m, Y=4m
    X=19.5m, Y=4m
    X=19.5m, Y=3.5m
    X=13.5m, Y=3.5m
    X=13.5m, Y=3m
    X=19.5m, Y=3m
  • Solo resta volver a la base para recargar su bateria, leer otro programa, etc. :bang:.
    Abajo se puede ver en rojo la trayectoria del robot para aspirar el invernadero.



El eje de coordenadas es una referencia y podemos ubicar el plano de la casa en cualquier lugar dentro de los ejes, solo debemos conocer al menos un punto del plano.

Lo del sonar esta bueno, pero me parece mas economico y facil de implementar un detector con los CNY70.

Lo que yo dije con respecto a implementar un sistema de posicionamiento global dentro de la casa con 3 emisores RF, habla de saber la ubicacion del robot en el espacio a partir del piso o plano terrestre, con solo 3 como lo hace el GPS puede saberse la posicion en 3 ejes (XYZ) dentro de la casa pero es desperdiciar un eje (Z) ya que el robot no vuela, por lo tanto, haciendo los calculo adecuados siempre nos diria que el robot esta sobre el piso. Este es un sistema de "lazo cerrado", puede corregir errores de posicionamiento a partir de las señales recibidas (FeedBack). Con este sistema se puede saber la altura con respecto al piso y la velocidad de desplazamiento y a cada segundo en que posicion exacta se encuentra el robot dentro de la casa. Este sistema con apoyo de acelerometros, inerciales y demas utilizan los sistemas de "Piloto Automatico" de las aeronaves para tomar decisiones de rumbo, curso, compensacion por turbulencias, etc. segun la ruta seleccionada... este tema es mas largo todavia pero igual de interesante ;D.
En cuanto tenga un tiempito hago un grafico de la casa como un espacio y la colocacion de cada emisor en la periferia de la casa y siempre por encima del robot.


La idea que estoy dando habla pura y exclusivamente sobre un plano partiendo de un punto de referencia, sin saber la posicion real del objeto en el espacio, por lo tanto es un sistema de "lazo abierto" y que supone un cierto error ya que si la rueda del robot tiene 20cm de perimetro medidos, esa medida ya tiene un error, sumandole que las paredes dentro de una casa no son exactamente paralelas ni perpendiculares, el error va incrementadose a medida que se desplaza.

En fin, esta es mi breve ejemplo de mi idea. Espero se entienda.


Saludos! :rolleyes2:
« Última modificación: Marzo 09, 2010, 10:54:54 am por mundotronic »

nachomanz

  • PIC12F
  • **
  • Mensajes: 160
Re: Robot "aspiradoras" (Robot Vacuum Cleaner)
« Respuesta #24 en: Marzo 09, 2010, 10:21:48 am »
Me gusto la idea de mundotronic....  :bang:

gracias todos por la ayuda y todas las ideas aportadas!!!

Este finde voy a ver de ponerme a hacer algunas simulaciones.

saludos
Nacho

Felixls

  • Moderador
  • PIC24F
  • ******
  • Mensajes: 3125
    • Felixls
Re: Robot "aspiradoras" (Robot Vacuum Cleaner)
« Respuesta #25 en: Marzo 09, 2010, 02:42:36 pm »
Lo del sonar esta bueno, pero me parece mas economico y facil de implementar un detector con los CNY70.
Hummm, un CNY70 no tiene una distancia máxima de 10mm y mínima de 0.3mm?
No parece que fuera lo mismo que un sensor ultrasónico...

mundotronic

  • PIC12F
  • **
  • Mensajes: 167
    • mundotronic CNC
Re: Robot "aspiradoras" (Robot Vacuum Cleaner)
« Respuesta #26 en: Marzo 09, 2010, 02:59:47 pm »
Lo del sonar esta bueno, pero me parece mas economico y facil de implementar un detector con los CNY70.
Hummm, un CNY70 no tiene una distancia máxima de 10mm y mínima de 0.3mm?
No parece que fuera lo mismo que un sensor ultrasónico...


Es verdad, hay que descartar el CNY70, lo maximo son 10mm segun su datasheet en la pag. 5. Pero con IR seria mas economico no felixls?

Saludos! :rolleyes2:

Felixls

  • Moderador
  • PIC24F
  • ******
  • Mensajes: 3125
    • Felixls
Re: Robot "aspiradoras" (Robot Vacuum Cleaner)
« Respuesta #27 en: Marzo 09, 2010, 03:12:18 pm »
Pero con IR seria mas economico no felixls?
No creo que puedas "ver" a más de 80cm con un IR, con un sonar podrías "escuchar" hasta 4mts

Ariel

  • Global Moderator
  • dsPIC
  • ****
  • Mensajes: 10753
    • uControl
Re: Robot "aspiradoras" (Robot Vacuum Cleaner)
« Respuesta #28 en: Marzo 09, 2010, 03:13:35 pm »
El sensor que puso Felixls en la foto tengo entendido que es caro. Pero se consiguen los tranductores sueltos, el "parlante" y el "microfono" identicos a los que usa ese modulo, y uno puede armarse su propio hard.

En alguna parte creo que tengo algun esquema....searching... ;)
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 #29 en: Marzo 09, 2010, 03:27:40 pm »
Con 80cm alcanza para detectar algun obstaculo. Yo no digo para encontrar la posicion del robot, eso lo hace con la idea que describi anteriormente.

Saludos! :rolleyes2: