SlideShare una empresa de Scribd logo
1 de 17
ROOMBA
Sumo y Odometría con Roomba


                  Robots Autonomos
                  Universidad de Salamanca

                  Arturo San Feliciano Martín
Computación Neuro-Borrosa   2




Índice

     1
         • Introducción

     2
         • RoombaSumo

     3
         • Odometría

     4
         • Conclusiones
Robots Autonomos           3




Introducción
               • Proyecto Java en Eclipse


                • es.usal.ra.sumo  Contiene
                  las clases necesarias para la
                  implementación de la practica
                  de RoombaSumo

                • es.usal.ra.odometria 
                  Contiene las clases que
                  implementan la practica de
                  odometría.
Computación Neuro-Borrosa   4




Índice

     1
         • Introducción

     2
         • RoombaSumo

     3
         • Odometría

     4
         • Conclusiones
Computación Neuro-borrosa   5




RoombaSumo
• Algoritmo sencillo

        while( true ) {

             Si detectamos colisión en el bumper izquierdo
                         Girar a la izquierda
                         Continuar hacia adelante

             Fin si

             Si detectamos colisión en el bumper derecho
                         Girar a la derecha
                         Continuar hacia adelante
             Fin si

             Si encontramos una pared virtual
                         giramos
                         continuamos hacia adelante
             Fin si

             Continuamos hacia adelante

             Actualizamos la información de los sensores
         }


• Adicionalmente se ha incorporado una funcionalidad que permite conocer cuando se ha
  encontrado una pared virtual mediante el cambio de color en el indicador de status.

• Principal problema encontrado  el sensor de bumper se quedaba pulsado.
Computación Neuro-Borrosa   6




Índice

     1
         • Introducción

     2
         • RoombaSumo

     3
         • Odometría

     4
         • Conclusiones
Computación Neuro-borrosa               7




Roomba: Odometría
 • En este caso se ha desarrollado una interfaz para controlar el robot
  roomba y visualizar los resultados de la odometría.

 • Las clases utilizadas son las siguientes:

                             • IRoomba: Interfaz con las operaciones que se pueden
                               hacer con el robot

                             • Roomba: Clase mapea al Roomba

                             • RoombaSim: Clase que simula un Roomba

                             • DatosDebugRoomba: Frame que muestra una consola
                               con los datos que genera el uso del robot

                             • VisualizarRuta: Frame que dibuja gráficamente la ruta
                               que ha seguido el robot

                             • Principal: Frame principal
Computación Neuro-borrosa   8




Roomba: Odometría II
 • Principal:
Computación Neuro-borrosa   9




Roomba: Odometría III
 • Consola:
Computación Neuro-borrosa   10




Roomba: Odometría IV
 • Visualización del camino:
Computación Neuro-borrosa     11




Roomba: Odometría IV
• El algoritmo es mas complejo que RoombaSumo

  1.   Mientras este accionado un mando se ejecuta la operación

  2.   Cuando se levanta la pulsación se realizan los cálculos de la
       nueva posición a partir de la posición anterior, la distancia y el
       ángulo.

  3.   Se almacenan los datos del nuevo punto y se genera las
       coordenadas para pintarlas en la grafica.


• El punto importante es el punto 2.
Computación Neuro-borrosa                           12




Roomba: Odometría V
• Para el calculo de posiciones se tienen en cuenta las siguientes premisas

    No se puede realizar dos operaciones al mismo tiempo (e.j. girar y andar)

    Si la distancia recorrida es prácticamente nula, se considera que la operación realizada es un giro.

    Solo se calcula el nuevo punto si hay distancia recorrida, si giramos únicamente estamos cambiando el
     ángulo.

    Se han redondeado a números enteros las distancias para su representación grafica.

    Para el calculo de la nueva posición se realizan las siguientes operaciones:

      •   dya = (float) (distance * Math.sin(Math.toRadians(anguloTotalGirado)));
      •   dxa = (float) (distance * Math.cos(Math.toRadians(anguloTotalGirado)));

      •   x = ultimoPunto.x + (int) dxa;
      •   y = ultimoPunto.y - (int) dya;

       El punto (x,y) indica donde se va a colocar en la gráficamente, para el calculo de la posición solo hay que multiplicar
          por -1 el valor de y.

                             Nueva posición de Roomba: (x, -y)
Computación Neuro-borrosa   13




Roomba: Odometría VI
Computación Neuro-borrosa   14
Computación Neuro-Borrosa   15




Índice

     1
         • Introducción

     2
         • RoombaSumo

     3
         • Odometría

     4
         • Conclusiones
Computación Neuro-borrosa    16




Conclusiones
• Trabajar con rumba es complicado:
   • Los sensores no son muy fiables
   • Los bumpers se quedaban pulsados
   • Gran retardo al iniciar la comunicación con Roomba.


• El calculo odométrico no es bueno.
  • Realizamos una prueba donde se realiza un spin(360) y se median los
    ángulos y no coincidían  Creación de un parámetro ajusteAngulo
    para multiplicar a las medidas de los ángulos dados.

• Como mejoras y posibles desarrollos:
  • Estudiar los motivos de que el ángulo no sea el esperado.
  • Mejoras en la interfaz.
  • Añadir nuevas características (Velocidad, luces, otros sensores…)
  • “Vuelve a casa por navidad”  Crear el camino inverso al recorrido
Computación Neuro-borrosa   17




¿Dudas?

    Robots autónomos
    Master en Sistemas Inteligentes

    Universidad de Salamanca



    Arturo San Feliciano Martín
    asanfeliciano@usal.es

Más contenido relacionado

Similar a Robots Autonomos - Sumo roomba y odometria

Arquitectura del computador rulfix
Arquitectura del computador rulfixArquitectura del computador rulfix
Arquitectura del computador rulfixrulfur
 
Arquitectura del computador
Arquitectura del computadorArquitectura del computador
Arquitectura del computadorNew Horizons
 
Unidad 4 robotica(4º)
Unidad 4 robotica(4º)Unidad 4 robotica(4º)
Unidad 4 robotica(4º)guti2002
 
Robótica prueba
Robótica pruebaRobótica prueba
Robótica pruebaguti2002
 
Actividades robotica
Actividades roboticaActividades robotica
Actividades roboticaesandemetrio
 
Informe 2 geodesia listo
Informe 2 geodesia listoInforme 2 geodesia listo
Informe 2 geodesia listooscaar02
 
UDESA 2010 - Educación y Tecnología - Ciencias de la Educación - Taller 07
UDESA 2010 - Educación y Tecnología - Ciencias de la Educación - Taller 07UDESA 2010 - Educación y Tecnología - Ciencias de la Educación - Taller 07
UDESA 2010 - Educación y Tecnología - Ciencias de la Educación - Taller 07Ramiro Nahuel Pol
 
Unidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.pptUnidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.pptssuser6eba56
 
Presentacion proyecto final de carrera grado sistemas informática Valencia
Presentacion proyecto final de carrera grado sistemas informática ValenciaPresentacion proyecto final de carrera grado sistemas informática Valencia
Presentacion proyecto final de carrera grado sistemas informática ValenciaUniversidad CEU Cardenal Herrera
 
Clase 1 Visual Basic_progr..pdf
Clase 1 Visual Basic_progr..pdfClase 1 Visual Basic_progr..pdf
Clase 1 Visual Basic_progr..pdfDanielAlcalde3
 
Estaciones totales
Estaciones totalesEstaciones totales
Estaciones totalespancho1112
 
0104 arquitectura-del-computador
0104 arquitectura-del-computador0104 arquitectura-del-computador
0104 arquitectura-del-computadorProfesorCorona
 
Procedimientos de elaboracion de trabajos topograficos
Procedimientos de elaboracion de trabajos topograficosProcedimientos de elaboracion de trabajos topograficos
Procedimientos de elaboracion de trabajos topograficoscarlos vinta
 
Unidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmosUnidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmosAlexandra Ochoa
 
Manual open roberta
Manual open robertaManual open roberta
Manual open robertaalexxandrom
 

Similar a Robots Autonomos - Sumo roomba y odometria (20)

Robotica
RoboticaRobotica
Robotica
 
Arquitectura del computador rulfix
Arquitectura del computador rulfixArquitectura del computador rulfix
Arquitectura del computador rulfix
 
Arquitectura del computador
Arquitectura del computadorArquitectura del computador
Arquitectura del computador
 
Unidad 4 robotica(4º)
Unidad 4 robotica(4º)Unidad 4 robotica(4º)
Unidad 4 robotica(4º)
 
Robótica prueba
Robótica pruebaRobótica prueba
Robótica prueba
 
Menares taller poligonación
Menares taller poligonaciónMenares taller poligonación
Menares taller poligonación
 
Actividades robotica
Actividades roboticaActividades robotica
Actividades robotica
 
Informe 2 geodesia listo
Informe 2 geodesia listoInforme 2 geodesia listo
Informe 2 geodesia listo
 
Informe de topografiaaaa
Informe de topografiaaaaInforme de topografiaaaa
Informe de topografiaaaa
 
UDESA 2010 - Educación y Tecnología - Ciencias de la Educación - Taller 07
UDESA 2010 - Educación y Tecnología - Ciencias de la Educación - Taller 07UDESA 2010 - Educación y Tecnología - Ciencias de la Educación - Taller 07
UDESA 2010 - Educación y Tecnología - Ciencias de la Educación - Taller 07
 
Unidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.pptUnidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.ppt
 
cosimir Sensor
cosimir Sensorcosimir Sensor
cosimir Sensor
 
Presentacion proyecto final de carrera grado sistemas informática Valencia
Presentacion proyecto final de carrera grado sistemas informática ValenciaPresentacion proyecto final de carrera grado sistemas informática Valencia
Presentacion proyecto final de carrera grado sistemas informática Valencia
 
Clase 1 Visual Basic_progr..pdf
Clase 1 Visual Basic_progr..pdfClase 1 Visual Basic_progr..pdf
Clase 1 Visual Basic_progr..pdf
 
Estaciones totales
Estaciones totalesEstaciones totales
Estaciones totales
 
0104 arquitectura-del-computador
0104 arquitectura-del-computador0104 arquitectura-del-computador
0104 arquitectura-del-computador
 
Procedimientos de elaboracion de trabajos topograficos
Procedimientos de elaboracion de trabajos topograficosProcedimientos de elaboracion de trabajos topograficos
Procedimientos de elaboracion de trabajos topograficos
 
Unidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmosUnidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmos
 
Memoria agentes reactivos
Memoria agentes reactivosMemoria agentes reactivos
Memoria agentes reactivos
 
Manual open roberta
Manual open robertaManual open roberta
Manual open roberta
 

Más de Arturo San Feliciano Martín

Más de Arturo San Feliciano Martín (8)

Localización, planificación de rutas y guiado visual en interiores
Localización, planificación de rutas y guiado visual en interioresLocalización, planificación de rutas y guiado visual en interiores
Localización, planificación de rutas y guiado visual en interiores
 
Algoritmo BUG2 - Planificacion trayectorias
Algoritmo BUG2 - Planificacion trayectoriasAlgoritmo BUG2 - Planificacion trayectorias
Algoritmo BUG2 - Planificacion trayectorias
 
Navegacion de Robots
Navegacion de RobotsNavegacion de Robots
Navegacion de Robots
 
Web usage mining tools
Web usage mining toolsWeb usage mining tools
Web usage mining tools
 
La estructura de la argumentación
La estructura de la argumentaciónLa estructura de la argumentación
La estructura de la argumentación
 
Metrica 3
Metrica 3Metrica 3
Metrica 3
 
Informatica Industrial - Simulación de RC con condensador
Informatica Industrial - Simulación de RC con condensadorInformatica Industrial - Simulación de RC con condensador
Informatica Industrial - Simulación de RC con condensador
 
RNA aplicadas a economía - Predicción de demanda eléctrica
RNA aplicadas a economía - Predicción de demanda eléctricaRNA aplicadas a economía - Predicción de demanda eléctrica
RNA aplicadas a economía - Predicción de demanda eléctrica
 

Robots Autonomos - Sumo roomba y odometria

  • 1. ROOMBA Sumo y Odometría con Roomba Robots Autonomos Universidad de Salamanca Arturo San Feliciano Martín
  • 2. Computación Neuro-Borrosa 2 Índice 1 • Introducción 2 • RoombaSumo 3 • Odometría 4 • Conclusiones
  • 3. Robots Autonomos 3 Introducción • Proyecto Java en Eclipse • es.usal.ra.sumo  Contiene las clases necesarias para la implementación de la practica de RoombaSumo • es.usal.ra.odometria  Contiene las clases que implementan la practica de odometría.
  • 4. Computación Neuro-Borrosa 4 Índice 1 • Introducción 2 • RoombaSumo 3 • Odometría 4 • Conclusiones
  • 5. Computación Neuro-borrosa 5 RoombaSumo • Algoritmo sencillo while( true ) { Si detectamos colisión en el bumper izquierdo Girar a la izquierda Continuar hacia adelante Fin si Si detectamos colisión en el bumper derecho Girar a la derecha Continuar hacia adelante Fin si Si encontramos una pared virtual giramos continuamos hacia adelante Fin si Continuamos hacia adelante Actualizamos la información de los sensores } • Adicionalmente se ha incorporado una funcionalidad que permite conocer cuando se ha encontrado una pared virtual mediante el cambio de color en el indicador de status. • Principal problema encontrado  el sensor de bumper se quedaba pulsado.
  • 6. Computación Neuro-Borrosa 6 Índice 1 • Introducción 2 • RoombaSumo 3 • Odometría 4 • Conclusiones
  • 7. Computación Neuro-borrosa 7 Roomba: Odometría • En este caso se ha desarrollado una interfaz para controlar el robot roomba y visualizar los resultados de la odometría. • Las clases utilizadas son las siguientes: • IRoomba: Interfaz con las operaciones que se pueden hacer con el robot • Roomba: Clase mapea al Roomba • RoombaSim: Clase que simula un Roomba • DatosDebugRoomba: Frame que muestra una consola con los datos que genera el uso del robot • VisualizarRuta: Frame que dibuja gráficamente la ruta que ha seguido el robot • Principal: Frame principal
  • 8. Computación Neuro-borrosa 8 Roomba: Odometría II • Principal:
  • 9. Computación Neuro-borrosa 9 Roomba: Odometría III • Consola:
  • 10. Computación Neuro-borrosa 10 Roomba: Odometría IV • Visualización del camino:
  • 11. Computación Neuro-borrosa 11 Roomba: Odometría IV • El algoritmo es mas complejo que RoombaSumo 1. Mientras este accionado un mando se ejecuta la operación 2. Cuando se levanta la pulsación se realizan los cálculos de la nueva posición a partir de la posición anterior, la distancia y el ángulo. 3. Se almacenan los datos del nuevo punto y se genera las coordenadas para pintarlas en la grafica. • El punto importante es el punto 2.
  • 12. Computación Neuro-borrosa 12 Roomba: Odometría V • Para el calculo de posiciones se tienen en cuenta las siguientes premisas  No se puede realizar dos operaciones al mismo tiempo (e.j. girar y andar)  Si la distancia recorrida es prácticamente nula, se considera que la operación realizada es un giro.  Solo se calcula el nuevo punto si hay distancia recorrida, si giramos únicamente estamos cambiando el ángulo.  Se han redondeado a números enteros las distancias para su representación grafica.  Para el calculo de la nueva posición se realizan las siguientes operaciones: • dya = (float) (distance * Math.sin(Math.toRadians(anguloTotalGirado))); • dxa = (float) (distance * Math.cos(Math.toRadians(anguloTotalGirado))); • x = ultimoPunto.x + (int) dxa; • y = ultimoPunto.y - (int) dya;  El punto (x,y) indica donde se va a colocar en la gráficamente, para el calculo de la posición solo hay que multiplicar por -1 el valor de y. Nueva posición de Roomba: (x, -y)
  • 13. Computación Neuro-borrosa 13 Roomba: Odometría VI
  • 15. Computación Neuro-Borrosa 15 Índice 1 • Introducción 2 • RoombaSumo 3 • Odometría 4 • Conclusiones
  • 16. Computación Neuro-borrosa 16 Conclusiones • Trabajar con rumba es complicado: • Los sensores no son muy fiables • Los bumpers se quedaban pulsados • Gran retardo al iniciar la comunicación con Roomba. • El calculo odométrico no es bueno. • Realizamos una prueba donde se realiza un spin(360) y se median los ángulos y no coincidían  Creación de un parámetro ajusteAngulo para multiplicar a las medidas de los ángulos dados. • Como mejoras y posibles desarrollos: • Estudiar los motivos de que el ángulo no sea el esperado. • Mejoras en la interfaz. • Añadir nuevas características (Velocidad, luces, otros sensores…) • “Vuelve a casa por navidad”  Crear el camino inverso al recorrido
  • 17. Computación Neuro-borrosa 17 ¿Dudas? Robots autónomos Master en Sistemas Inteligentes Universidad de Salamanca Arturo San Feliciano Martín asanfeliciano@usal.es