ROOMBASumo y Odometría con Roomba
Robots AutonomosUniversidad de Salamanca
Arturo San Feliciano Martín
Computación Neuro-Borrosa 2
Índice
1• Introducción
2• RoombaSumo
3• Odometría
4• Conclusiones
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.
Robots Autonomos
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
Robots autónomosMaster en Sistemas Inteligentes Universidad de Salamanca
Arturo San Feliciano Martí[email protected]
¿Dudas?
Top Related