Formación de robots

B

Buenas!

Que guapo tener un foro de ciencia :P. Voy a contribuir con mi mierda xD.

En unos seis meses creo que terminaré finalmente el PhD y me encuentro en una fase de "recopilación de resultados", lo que viene siendo escribir la tesis.
Pero quiero hacerlo más accesible al público en general, así que para ello voy a crear una serie de vídeos explicando lo que he estado haciendo.

Este es el primer vídeo:

Necesito feedback, así que toda crítica constructiva y destructiva es bienvenida. Me interesa sobre todo el saber si entendeis que es lo que sucede en el vídeo.

De momento a las personas que se lo he enseñado hay opiniones dispares, que si la música les estresa, o necesitan más tiempo para leer y entender el texto.

Respecto a la música estoy contento con ella, es algo más personal. Sobre lo segundo dudo, ya que siempre puedes pausar el vídeo cuando tú quieras y no habría razón de extenderlo con pausas más largas.

Ya me contais, y en base a ello, ya voy editando otros vídeos con los resultados.

3
B

Muy guapo. La musica no me estresa pero me parece demasiado potente si quieres hablar durante el video (de otro modo sin problema). Lo unico que he echado de menos es saber como se detectan entre ellos y por que uno de ellos no detecta a la "presa".

1 respuesta
Slowbro

Vaya pasada, enhorabuena por tu trabajo!

Como mini-detalle te sugeriría un poco más de énfasis en la introducción para entender que es lo que quieres conseguir ademas de la motivación (viendo el vídeo y las conclusiones me hago a la idea, pero desde mi punto de vista quedaría más claro y accesible).

La verdad es que no tengo mucha idea de como lo haces, pero me recuerda a las constelaciones GPS y observadores de estados... ¿Utilizas un filtro de Kalman para la estimación? Asumo que conoces siempre la posición de tus robots (relativa) y determinas la posición y velocidad del objetivo con las mediciones (relativas) a lo largo del tiempo. Lo que no estoy tan seguro es como posicionas los robots en base a las medidas y a la geometría deseada, aunque sabiendo lo que quieres y lo que tienes será resolver el problema de control.

Lo de los mismatches (discordancias?) me ha dejado loco. No lo entiendo del todo y estaría bien también como determinas las que son validas para la rotación, ya que me ha parecido entender que surgen varias. La solución que se me ocurre a ese problema es que una vez estén en órbita, cuando el objetivo se mueva, se compare el triangulo anterior (k-1) con el generado tras el movimiento (k) y se generen unos vectores de velocidad para mantener la figura. ¿Se parece en algo a esto?

Por lo demás, recalcar mi enhorabuena y desearte suerte con tu defensa.

1 respuesta
B

#2

La verdad que no tenía pensado hablar nada durante el vídeo xD, sólo texto.

Los "agentes" sólo necesitan saber la posición relativa de sus vecinos con respecto a sí mismos. Por lo tanto cada agente utiliza un sistema de coordenadas local, que puede ser distinto al de los otros agentes.

Las relaciones entre vecinos están relacionados por un grafo. De hecho lo que hago es "empotrar" el grafo con las posiciones de los agentes, así cada agente es un nodo y cada posición relativa es un enlace.

El tercer agente perseguidor no necesita detectar a la presa porque para "dibujar" la formación deseada no lo necesita. En este ejemplo son dos triángulos isósceles (mira el dibujo en la esquina superior derecha), en un extremo está la presa, y en el otro extremo está el tercer perseguidor, por lo que no están directamente conectados.

En la práctica cómo medir posiciones relativas depende de los sensores que utilices. Con robots móviles es muy común utilizar un láser a modo de radar, por lo que puedes medir dirección y distancia al objetivo. Otros utilizan cámaras para saber lo mismo, dirección y distancia. A partir de ahí construyes el vector para la posición relativa.

En el vídeo uso una cámara para detectar un punto en los "data-matrix", calculo las distancias en el PC que tiene la cámara y las envío a los robots que lo necesitan. De esta manera emulo que tienen un radar a bordo.

#5

Sí, ya he pillado tres gazapos :P, gracias.

Amazon

En 2:49 tienes una falta de ortografía

1
ArThoiD

Mola, pero a mi la música sí me parece inadecuada, me pone al instante en un estado de acción, y lo que pasa en el vídeo no me parce acorde.

Cuidaría mucho más las flechas made in Paint. Queda algo cutre ese aspecto la verdad.

Por lo demás, poco más puedo decir xD

1 respuesta
B

#3

Gracias por el ánimo y el feedback xD. Así sabiendo lo que entendeis puedo mejorar en mi explicación.

Como mini-detalle te sugeriría un poco más de énfasis en la introducción para entender que es lo que quieres conseguir ademas de la motivación (viendo el vídeo y las conclusiones me hago a la idea, pero desde mi punto de vista quedaría más claro y accesible).

Esto ya me ha pasado con otras dos personas que no saben nada de matemáticas y/o robots. Sólo ven cosas "moviéndose". Por lo que creo que he de mejorar la introducción, para que sepan por qué quiero que se muevan xD.

La verdad es que no tengo mucha idea de como lo haces, pero me recuerda a las constelaciones GPS y observadores de estados... ¿Utilizas un filtro de Kalman para la estimación? Asumo que conoces siempre la posición de tus robots (relativa) y determinas la posición y velocidad del objetivo con las mediciones (relativas) a lo largo del tiempo. Lo que no estoy tan seguro es como posicionas los robots en base a las medidas y a la geometría deseada, aunque sabiendo lo que quieres y lo que tienes será resolver el problema de control.

En efecto, una de las características de este algoritmo es que se puede utilizar en escenarios dónde en la práctica no existe un sistema claro de coordenas. Es decir, no existe un norte magnético claro o un GPS. Ejemplos son aplicaciones espaciales o submarinos en escenarios dónde el campo magnético no sea muy fiable y puedan detectarse por sónar/radio.

No todas las posiciones relativas son necesarias. Si te fijas, el tercer perseguidor no necesita para nada saber su posición con respecto al objetivo. En cambio la información siempre se necesita disponible. No hay un estimador de posiciones relativas, aunque se podría incluir sin problema en el algoritmo. El performance bajaría, pero sería más robusto en una situación realista.

Nadie mide velocidades, es una característica chula del algortimo. Se puede estimar la velocidad del objetivo sin necesidad de ningún radar de "efecto doppler". Los perseguidores estiman esa velocidad en función del error en la forma deseada.

El cómo se consigue la forma está basado en seguir un gradiente de un potencial. Ese potencial tiene un mínimo en la forma deseada. La forma deseada se puede conseguir con sólo distancias (un escalar) si esta forma define un cuerpo rígido. Esto está muy relacionado con ingeniería civil a la hora de construir puentes y edificios.

Lo de los mismatches (discordancias?) me ha dejado loco. No lo entiendo del todo y estaría bien también como determinas las que son validas para la rotación, ya que me ha parecido entender que surgen varias. La solución que se me ocurre a ese problema es que una vez estén en órbita, cuando el objetivo se mueva, se compare el triangulo anterior (k-1) con el generado tras el movimiento (k) y se generen unos vectores de velocidad para mantener la figura. ¿Se parece en algo a esto?

Sí! son discordancias y es mi idea feliz jaja. Es lo que pone en el vídeo. Imagina que yo quiero mantener una distancia con respecto de ti de 5m , y tú con respecto de mi de 10m. Lo que ocurre al final es que estaremos a una distancia de 7.5m, pero yo moviéndome hacia ti y tu huyendo de mi xD. Pues si lo ves al revés, el 7.5m y la velocidad a la que nos movemos lo puedes tomar cómo un patrón de diseño! es convertir una desventaja que ocurre en la práctica en una ventaja "dando la vuelta a las ecuaciones".

Eso es una dimension con dos cuerpos. Si lo extrapolamos a dos o tres dimensiones con más cuerpos, el efecto que conseguimos es el de tener rotaciones y traslaciones. Dependiendo de cómo sean esas discordancias, la forma que se genera por los cuerpos es una u otra. Por lo que si tú quieres una forma en concreto, tienes que diseñar las discordancias correspondientes.

No surgen varias discordancias, simplemente que el conjunto de discordancias que mantiene una figura dada no es aleatorio y viene dado por unas ecuaciones.

Una ventaja del algoritmo es que las discordancias están siempre presentes, no únicamente cuando forman la figura deseada. Por lo que no hay un swtich diciendo, ahora sí, ahora no. Lo que ocurre es que "las fuerzas" para generar la figura son más "potentes" que las que generan la rotación.

Por lo demás, recalcar mi enhorabuena y desearte suerte con tu defensa.

Gracias! en cuanto mande el artículo para publicar, lo cuelgo en el Dropbox y podeis ver los detalles de cómo se calculan todas estas cosas.

B

#6

Sí, tengo que mirar lo de la música.

Lo de las flechas hechas con paint es a propósito xD, es una decisión más personal.

1 respuesta
ArThoiD

#8 OK, pero almenos cuida que tengan todos +/- los mismos ángulos en las rayas de la flecha, que no se pase una raya de frenada y cosas así xD

Me refiero a esto:

1

Usuarios habituales