Archivo de la categoría: minicurso

El slalom de los robots

En la última entrada Buscando caminos nos enfrentamos al problema de cómo calcular la trayectoria más corta entre dos puntos. Ya señalamos entonces que una vez calculada la ruta, tendríamos que hacer que nuestro robot fuera capaz de ejecutar esa ruta. En otras palabras, sabiendo la trayectoria que nos llevará a nuestro destino, tenemos que calcular los comandos de velocidad que haremos llegar a los motores en cada instante, para seguir la trayectoria calculada. En la literatura, este problema recibe muchos nombres diferentes: navegación local, evitación de obstáculos, seguimiento de trayectorias, planificación local… todos ellos tienen matices que los hacen ligeramente diferentes. Sin meternos a justificar nuestra elección, el problema descrito lo conoceremos cómo planificación local.

Sigue leyendo

Buscando caminos

Proseguimos con el minicurso de Navegación autónoma. ¿Cómo vuelve un robot de la panadería?

Ahora que nuestro robot sabe localizarse en un entorno, sólo hace falta que sepa cómo debe moverse desde su posición a su destino. Curiosamente un robot no se diferencia mucho de un ser humano en la forma de afrontar este problema.

Básicamente, cuando un ser humano está en su casa y tiene que ir a comprar el pan, ¿qué es lo que hace? Primero, recurre al mapa mental que ya tiene en su cabeza, en la cual puede ver dónde está la panadería más cercana. Acto seguido, planifica el camino más corto para llegar a ese punto del mapa. Evalúa de forma totalmente natural las distancias que debería recorrer si va por esta calle o por aquella otra. El resultado de esta reflexión es el camino que debe seguir para llegar a la panadería.

Sigue leyendo

Electronvoltio

Vamos a empezar una serie de entradas con las que iremos aclarando e intentando explicar algunos conceptos que se usan muy a menudo para hablar de física de partículas y de aceleradores. Esto nos permitirá conocer algunos detalles y entender mejor lo que vamos leyendo por ahí sobre estos temas. Teniendo en cuenta de que se espera que este año nos empiece a dar sorpresas ya mismo sobre el Higgs, supersimetrías y otras lindezas, pues mejor que nos vayamos poniendo a ello.

Agruparemos estas entradas en el minicurso:

Aceleradores de partículas: Conceptos

Así que nos meteremos ya en harina.

Cuando se habla del LHC (u otro acelerador) generalmente se leen cosas como: “colisiones a 7 TeV”, “la masa de tal partícula es de 126 GeV”, etc. En esta entrada vamos a explicar qué es el electronvoltio y para qué se usa.

Sigue leyendo

… y con Bayes hemos topado!

Al final de la entrada anterior sobre localización comentamos que detrás del proceso explicado con el ejemplo del pasillo y las puertas, se encontraba el llamado Filtro Bayesiano. En esta entrada intentaremos explicar por encima en qué consiste y cómo hemos aplicado dicho filtro para localizar a nuestro robot en su mundo.

El Filtro Bayesiano es un algoritmo probabilístico recursivo que permite estimar una variable dada en función de otras. Es decir, tenemos una variable que no se puede medir directamente (la posición del robot), pero que sí se puede inferir teniendo la información de otras variables (mediciones de sensores, movimientos ejecutados y el mapa del entorno). Este algoritmo se puede utilizar para muchísimas cosas, entre ellas, para estimar la posición de un robot. Lo que el Filtro Bayesiano nos dará es una forma de calcular p(x | z, u, m), que es justo lo que necesitamos en el problema de la localización. Antes de entrar en harina quisiéramos resaltar lo potente que es este algoritmo a pesar de su sencillez.

Sigue leyendo

Modelando la incertidumbre

Seguimos con las entradas del minicurso Robótica: Navegación autónoma by Gorka @gazkune

Una de las tareas mas importantes de la robótica es percibir el entorno. Como ya hemos visto en entradas anteriores, para eso los robots utilizan los sensores. Por un lado, los sensores permiten a los robots obtener información de sus alrededores, pero también les permiten saber sobre su propio estado. Este ultimo caso quedo ilustrado con la explicación de la odometría y los encoders.

Pues bien, siempre que utilizamos sensores no podremos escaparnos de la incertidumbre. Los sensores realizan mediciones que ni son siempre las mismas para las mismas condiciones, ni son totalmente precisas. A cada medición que realizamos ha de asociársele cierta incertidumbre. En el caso de la odometría, quedó bastante claro que las lecturas provenientes de los encoders no eran fiables del todo. Pero la cosa va más allá. La incertidumbre no solo se da para las mediciones, sino también para las acciones. Si yo comando a una rueda que vaya a una velocidad de x m/s, he de asumir que la rueda no podrá ejecutar mi comando con total precisión.

Entonces, la pregunta es obvia: ¿podemos hacer algo para eliminar o mitigar esa incertidumbre? En esta entrada no responderemos a esa pregunta. Mas bien, intentaremos explicar como podemos modelar esa incertidumbre para el movimiento y para las mediciones. Partiremos de la premisa de que un robot que es consciente de la incertidumbre que le rodea, es un robot con mayor potencial.

Por lo tanto, en las secciones que vienen veremos dos grupos de modelos importantes para la navegación autónoma: los modelos de movimiento y los modelos de medición. Estos modelos son modelos probabilísticos. Al tener incertidumbre tanto en las medidas como en las acciones, ya no nos preguntaremos por la posición del robot, sino que intentaremos averiguar cual es la distribución de probabilidades de la posición del robot. En otras palabras, la pregunta será: ¿que probabilidad existe de que el robot se encuentre en posición (x, y,\theta)?

Sigue leyendo