Blog de robótica e inteligencia artificial

3/15/2015

Si los Formula1 fueran robots

El lector habitual del blog sabrá de mi afición a la Formula1, cuya edición número 66 ha comenzado hoy en Australia. El post de hoy viene a colación de tal acontecimiento, y ahí va la pregunta:

¿Qué criterio emplean los pilotos de F1 para trazar las curvas? ¿Van por el trazado más corto para recorrer una vuelta completa? ¿O circulan por el trazado que les permite ir siempre a la máxima velocidad posible? 

Si vemos las siguientes imágenes, parece que el trazado a) es mejor que el b), ya que realiza giros con más sentido común y sin cambios bruscos de trayectoria. Sin embargo, puede que no sea la mejor solución.




Como datos de partida, diremos que todos los equipos tienen el mismo criterio y que este es aplicable no sólo a la máxima competición del motor, sino a cualquier otra modalidad que consista en vueltas periódicas al mismo dibujo. Y la respuesta es única.

En la disciplina ingenieril de teoría de control, la respuesta a la pregunta la da el principio del Mínimo de Pontryagrin, que busca los parámetros de control óptimos en cada instante para que el tiempo de una acción sea mínimo. Y esa es la respuesta a la pregunta: los F1 recorren el trazado que les permite dar la vuelta en menos tiempo

No deseo entrar en los detalles de programación de este control en programas de simulación. El problema de que sistemas dinámicos vayan de un estado A a otro B ha sido estudiado con profundidad a lo largo de los últimos años, pero ahora está un poco más de moda por el boom de coches autónomos. Apostaría en que Audi, para realizar el récord de circuito que consiguió hace unos meses, empleó el principio de Pontryagrin, entre otras herramientas. El coche estaba programado para dar la vuelta perfecta y llevaba las instrucciones grabadas: donde un ser humano no tiene la precisión suficiente para ir siempre al máximo del rendimiento de la máquina, una máquina no tiene problema.

Solucionar este problema del Principio del Mínimo de Pontryagrin no es baladí, y todo parte de un modelo matemático que reproduzca de manera fiable el comportamiento de un coche. Pero después, el control no se reduce a dar la orden "siempre gas a fondo" y listo. No. 

Hay que ir con gas a fondo siempre que se pueda, pero hay restricciones físicas inviolables en el caso que estemos hablando de vehículos que realizan maniobras extremas. Hay que programar la función de control del coche para las siguientes condiciones:

- si nuestro coche tiene que durar X vueltas, no podemos ir al máximo en todas las vueltas, sino al máximo para llegar casi casi sin gasolina a la meta al final.

- no podemos ir tan rápido que el coche en curva tenga peligro de volcar por exceso de aceleración lateral.

- un correcto trazado en curva se basa en un punto de frenado tardío, una buena tracción y una entrada bien dirigida en curva. Todo eso no se reduce a "gas a fondo".

y un sinfín más de condiciones, como cuidado de neumáticos, aprovechamiento de la aerodinámica, etc. Todo esto lo estoy asumiendo para un coche que circula en solitario por un circuito. Incluir otros competidores en la pista complicaría mil veces el problema.

La aplicación de este principio está verde, pero se plantea como opción de control para vehículos híbridos de calle y hace tiempo que ya existen patentes que se basan en este principio (esta de 2005). En robótica experimental, ya es una realidad.

A quién le guste salsear, puede obtener información de teoría de control sobre cómo se resolvía este problema anterioridad en las curvas de Dubins, o las de Reeds y Sheep.





Fuente

Comparte:

3/05/2015

La pregunta Naukas 2015

En la plataforma de divulgación Naukas se están publicando a lo largo de este mes las respuestas a la una pregunta que nos han planteado a todos los autores que estamos ahí metidos. Ninguno sabemos lo que responden los demás hasta que no se publica. Se trata de una iniciativa que Naukas comenzó el año pasado en honor a The Verge. Probablemente, mejor que yo lo expliquen ellos mismos aquí:



Este año la pregunta era: 

¿Qué avance o descubrimiento de la ciencia moderna ha hecho progresar más a la Humanidad?

Entendemos como ciencia moderna desde Copérnico hasta nuestros días.




No consigo decidirme por qué invento ha sido más determinante. Me vienen a la cabeza el avión, la máquina de vapor, los rayos X o la tecnología espacial.

Sin embargo, sí que creo que hay un factor común a la hora de dar pasos grandes en la ciencia. No solo en la ciencia moderna, sino desde tiempos de nuestros más antiguos antepasados: en la mayoría de los grandes avances, la actitud humana que más ha permitido desarrollar importantes tecnologías ha sido el ser conscientes que tenían algo peligroso en sus manos, y aún así, seguir profundizando en su estudio.

¿Acaso creemos que el dominio del fuego en la Antigüedad ocurrió sin más contratiempos? ¿No es el fuego una de los fenómenos más peligrosos y a la vez más valiosos, de los primeros hombres? ¿No prohíben ahora las madres a sus hijos pequeños que no jueguen con fuego? ¿No es esta actitud una de las características fundamentales que distingue a seres humanos y animales?

Algunos de los inventos que costó miles de vidas incorporarlas de manera segura a nuestro día a día han sido el avión, la máquina de vapor, los rayos X o la tecnología espacial.

De cara al futuro, será imprescindible hacer frente a retos que nos pueden parecer igual de arriesgados. Hoy en día hay detractores de la inteligencia artificial, los alimentos transgénicos, la investigación de células madre, mecánica cuántica, viajes espaciales más largos, etc. Estos detractores critican o la inutilidad de inversión de recursos de estas disciplinas o la peligrosidad de su desarrollo para la sociedad.

Quizás dentro de algunos siglos estemos hablando de los nuevos medios de transporte, terapias genéticas, curas médicas o incluso formas de vida diferentes a la nuestra como consecuencia de haber afrontado hoy los peligros y obstáculos que presentan las ciencias y oportunidades de mi penúltimo párrafo.

Comparte:

3/01/2015

Asedio con matemáticas: fundíbulo

¿Qué es un fundíbulo, trabuquete o lanzapiedras medieval? Esto:



A cualquiera que haya pasado un rato, o muchas horas, con juegos del estilo Age of Empires, Empire Earth o similares, seguro que le es familiar. Esta arma de asedio lanza proyectiles con la siguiente secuencia (fuente): 
El fundíbulo parece que es originario de China y se introdujo en Europa en el siglo XIII. Se trata de un arma de asedio pesada que lanza proyectiles como piedras contra una fortaleza desde una gran distancia.

Si consideramos el proyectil como una única partícula sólida, podríamos calcular varios movimientos de esta máquina con ecuaciones físicas elementales. Una de ellas dice cuál es el máximo alcance de una partícula lanzada con un cierto ángulo y una velocidad inicial:

donde R es el alcance, v es la velocidad inicial, g es la gravedad y alfa representa el ángulo en el momento en el que la piedra se separa del arma. Por lo tanto, el valor máximo de R se obtiene cuando alfa es 45º. Es decir, algo así (fuente):




Lo más curioso de la fórmula precedente es ver que el lanzamiento no depende de la longitud de los brazos del fundíbulo, al contrario de lo que pueden pensar alumnos de universidades en los que se suele reproducir este experimento.

Aunque los técnicos medievales no lo superan, estaban empleando un péndulo doble para el asedio, algo que ahora es muy típico en robótica para hablar de equilibrio de un sistema y su control. De hecho, cosas de estas son claves en el funcionamiento del famoso Segway.

El caso es que muchos futbolistas y golfistas emplean un doble péndulo para dar sus mejores golpes, tal y como lo demuestra artículos como este o este otro. De hecho, el segundo paper recoge un experimento en el que se modela la pierna de un futbolista como un doble péndulo. De la cadera hasta la rodilla va un péndulo, y de la rodilla al tobillo otro. Cada uno de las articulaciones corporales tiene su propio sistema de referencia. Sin embargo, se demuestra que para que el tobillo alcance la velocidad máxima es conveniente que la rodilla gire todo lo que pueda, ya que se suman velocidades. Lo mismo ocurre en el golf.


Comparte:

2/15/2015

Cualquiera va a ser capaz de hacer un estropicio informático

Este artículo es una pequeña reflexión personal sobre el rumbo que percibo que está tomando la seguridad informática. El título elegido para las siguientes líneas puede parecer que la inseguridad informática sólo afecta a las empresas, servidores, webs, a los gobiernos... y no es verdad. Los usuarios corrientes, si no tomamos precauciones mínimas en el uso de nuestros móviles, aplicaciones instaladas, conexiones de Internet, etc., somos uno de los blancos más fáciles para que nos puedan hacer un roto.

Hacker hace ya tiempo que se corrompió como término y es una palabra denostada. Nada más lejos de la realidad, ya que en su origen la palabra hacker respondía a una sed de conocimiento y de dominio de una disciplina, una tecnología o un concepto, para poder mejorarlo.

Hace 20 años, para los amantes de la seguridad informática cada avance o logro obtenido en una incursión en un sistema era todo una hazaña. Internet no estaba tan extendido, y no había casi por ningún sitio manuales. Sí que había un fuerte sentimiento colectivo y muchos de los éxitos cosechados se conseguían gracias a la pertenencia a una comunidad. Sin embargo, hoy en día hay miles de herramientas software destinadas a rastrear redes, realizas tests de pentesting, búsqueda de vulnerabilidades, y también hay millones de vídeos y manuales que explican cómo usarlos. El uso de esas herramientas, en mi modesta opinión, no requiere de unos grandes conocimientos informáticos. Sí que se necesita un dominio de la técnica para crear la herramienta, depurarla, mejorarla, etc. El hacker de verdad es quien la desarrolla, no quién la usa. Es como los magos: un mago de verdad es el que tiene la creatividad y capacidad para inventarse nuevos trucos que miles de aficionados a la magia imiten o estudien.

Hoy en día ya hay herramientas de software para que aficionadillos sin mucha idea intenten hacer un ataque DoS, o distribuciones enteras que recopilan miles de herramientas de seguridad (Kali Linux es la estrella). Pero desde hace un tiempo, cada vez están apareciendo más sistemas de botón gordo. Es decir, cada vez los sistemas requieren de menos conocimientos por parte de los atacantes, y su modo de uso se está simplificando para que con mínimos conocimientos se infrinjan varias vulnerabilidades importantes.

Algunos de estos aparatos son: hardware keylogger, Pinneaple Mark, aparatos para jugar con redes wireless, RTL-SDR para sniffar comunicaciones de radio, etc. Estos aparatos se pueden adquirir a un precio al alcance de cualquiera, y pueden afectarnos sin darnos cuenta (que es el objetivo ideal de cualquier ataque).

Como consecuencia, cada vez se hace más necesario una concienciación de seguridad digital y seguir unos simples pasos, sin entrar en la paranoia. Por ejemplo, cosas tan simples como elegir contraseñas robustas, doble autenticación de login, desconectar el acceso Bluetooth, WiFi o cualqueir otro cuando no se esté usando, eliminar de la caché las redes que no usas, leer y ser crítico con los permisos que pide una aplicación de móvil al ser instalada, tener el ordenador y el móvil lo más actualizado posible, contar con un antivirus, no pinchar en cualquier hipervinculo sin estar seguros, etc.

Son medidas muy simples que nos pueden ahorrar más de un susto. El empleo de máquinas o herramientas sencillas sin entender qué hacen ni cómo funcionan se denominan script-kiddies, y no tienen buena fama entre los aficionados a la seguridad. Siempre han existido este tipo de recursos muy usables, y es ahora cuando se están masificando y están al alcance de cualquiera.

Existen varias iniciativas que intentan explicar a los usuarios los peligros de la Red, como X1RedMasSegura o Hácker Épico. No hace falta estudiarse grandes tomos para protegerse mínimamente, es como cerrar la puerta de casa con llave.

Pero lo que tengo claro, es que ahora un buen roto en tu vida digital te lo puede hacer alguien con mala idea, y no con muchos conocimientos.


Comparte:

1/30/2015

Euler tiene la culpa de que no te pases el vídeojuego

Para los que no lo conozcan, Doom Quake es un vídeojuego de hace ya unos cuantos años de disparos en primera persona. Para quien no tenga ni idea de lo que digo, el jugador sólo veía en la pantalla de su ordenador una mano sujetando un arma, y el escenario del juego se movía desde un punto de vista en primera persona.

Este vídeojuego tenia un motor de simulación de la física de juego llamado Id Tech, del cual hubo varias ediciones. Este motor lo llevaron otros juegos, como el Quake o Wolfenstein, Pero resulta curioso un fallo que tenía el Doom Quake1:

Una de las cosas básicas que hay que simular en todo juego donde hay que correr, saltar, matar criaturas, etc... es la gravedad del mundo (ya sea Tierra u otra). ¿Cómo programarías la gravedad en un vídeojuego? La gravedad es un valor concreto de aceleración, y constante. Por lo tanto, ¿cómo calcularíais la posición en cada instante a partir de la aceleración instantánea?

Quizás se os ocurra esto:



Fijémonos en la velocidad: La velocidad en un instante es igual a la velocidad en el instante anterior + la gravedad* un intervalo de tiempo. Este intervalo ha de ser pequeño, de décimas o centésimas de segundo

A esto se le llama integración numérica de Euler. Sirve para pasar de la aceleración del juego a la posición. Si graficamos la posición según la fórmula de arriba, tendremos:


Lo cual es totalmente incorrecto. La gráfica ideal que buscamos es la siguiente. 



De hecho, si el intervalo de tiempo (dt) es muy grande en la fórmula incorrecta, o las imágenes por segundo que es capaz de procesar el ordenador son bajas, nos encontraremos con que el protagonista de Doom no salta lo mismo. ¡Lo cual hacía que en algunos ordenadores se pudiera pasar el juego y en otros no!


Cuanto más grande es el dt, más corto o bajo era el salto. Este despropósito se puede corregir de una manera sencilla:



Y así, el área integrada es la siguiente. Este área es exactamente igual que la que hay dos más arriba (con lo cual, es la gráfica correcta). Debajo de la línea están encerradas las mismas áreas.



La integración de Euler es la manera más simple de pasar de integrar numéricamente. Se sigue usando mucho, pero no sirve para todos los procesos. De hecho, una de las expresiones más usadas al respecto es only idiots use Euler integration (fuente).

A la hora de implementar un algoritmo de integración en un videojuego o una simulación física, hay que tener en cuenta estas características (fuente):

- Precisión
- Conservación de la energía
- Estabilidad

Euler tiene un grave problema de precisión y tampoco conserva la energía. No lo hace tampoco una alternativa muy usada, el algoritmo de Runge-Kutta4. Sí que lo hacen el método de Verlet, Newmark y Gauss-Runge-Kutta implícito. Estos métodos que conservan la energía se denominan symplectic (en inglés).

De hecho, ahora mismo la mayoría de videojuegos y simuladores pueden usar un motor como Physx, cuyos algoritmos conservan la energía (fuente). 

Echemos un vistazo a qué hacen RK4 y qué hace Verlet.

El primero tiene fama de ser un algoritmo difícil de implementar (sobre todo en según qué industria y con qué objetivo):


La ecuación principal de Runge-Kutta es y(n+1) = y(n) + un incremento formado por k1, k2, k3, k4, cuyas fórmulas están descritas abajo. Estos coeficientes son el resultado de la función que estamos analizando para distintos valores de t, y.  

¿Y qué hay de Verlet? Estrictamente, no vamos a ver la integración de Verlet, sino la integración de velocidad de este matemático (fuente).


Y este algoritmo no depende de los fraps per second, tal y como demuestran aquí, comparando Euler vs Verlet.

¿No os parecen todos los métodos muy parecidos? Pues así es. Euler y Verlet forman parte de una familia de métodos llamados Runge Kutta (concretamente, son RK1 y RK2). 

No dejéis de ver los enlaces que cito abajo, y esta presentación donde se comparan gravedad, fricción y resistencia aerodinámica de una manera muy gráfica según distintos métodos.




Fuente: 
http://www.niksula.hut.fi/~hkankaan/Homepages/gravity.html
http://gafferongames.com/game-physics/integration-basics/
https://www.reddit.com/r/programming/comments/15f4qc/on_using_rk4_over_euler_to_integrate_for_physics/
http://www.adrianboeing.com/pal/papers/p281-boeing.pdf
http://codeflow.org/entries/2010/aug/28/integration-by-example-euler-vs-verlet-vs-runge-kutta/
https://news.ycombinator.com/item?id=4934855
http://www.niksula.hut.fi/~hkankaan/Homepages/gravity.html
http://www.richardlord.net/presentations/physics-for-flash-games
http://lolengine.net/blog/2011/12/14/understanding-motion-in-games
Comparte:

1/13/2015

Foucault y Napoleón III

Pensemos en un péndulo formado por una bolita de masa m y un hilo de longitud L. L es bastante grande. Este hilo está atado en su extremo libre al techo de una sala y describiendo un movimiento pendular en el espacio. Usamos el triedro X-Y-Z y consideramos que la velocidad angular del péndulo tiene dirección Y (ωy).

Supongamos que el ángulo del péndulo oscila entre ± 30º, y que ahora empieza a girar respecto al eje Z la sala entera de la que cuelga el péndulo. Su velocidad de giro es ωz.



En Mecánica Aplicada, este problema puede tratarse como un sistema de arrastre + relativo. Es decir, hay un sólido que tiene un movimiento propio (el péndulo), pero hay otro sólido superior a él en la cadena cinemática que afecta a la cinemática del péndulo.

La velocidad relativa del péndulo se calcula teniendo en cuenta solo ωy. Para una posición genérica, la velocidad de la bolita sería:

Vr = L · ωy · (sinφ i + cosφ k)

(ojo, que en algunos momentos la ωy toma valores positivos y a veces negativos)

Para la velocidad de arrastre, solo se cuenta la velocidad de giro de la sala. Para otra posición genérica, si pensamos que el péndulo está centrado en el eje Z:

Va = L · ωz· (sinθ i + cosθ j)

En este caso, consideramos la ωz que siempre gira en el mismo sentido, positiva. Por lo tanto, la velocidad total de la bolita del péndulo en un momento cualquiera es el sumatorio de la componente de arrastre + relativo. Es decir, por lo general, la velocidad de nuestro sistema va a tener las 3 componentes del espacio. El péndulo no se va a mover en un único plano.



¿Sigues sin verle la gracia? No te preocupes, en 1851 el gran físico francés Leon Foucault ya se la vio, ya que con este experimento demostró la rotación de la Tierra. Su experimento tuvo tanta repercusión, que Napoleón III lo llamó a su presencia para que realizase su trabajo en el Panteón de París. Hoy es una actividad habitual en cualquier museo de ciencia que se precie. No en vano, ha sido citado como uno de los 10 experimentos más bellos de la ciencia por el NY Times.

Por ejemplo, aquí tenéis un vídeo ilustrativo:





Artículo original aparecido en el blog de la Escuela Politécnica de San Sebastián
Comparte:

1/11/2015

¿Qué caballo vio Enzo Ferrari?

Enzo Ferrari, fundador de la escudería que lleva su apellido, vio las hazañas del soldado de la foto:



Se trata de Francesco Baracca, héroe de la aviación durante la Primera Guerra Mundial por parte de Italia, cómo no. Baracca tiene registrados 34 derribos en en el aire en 63 combates. Falleció en 1918 durante el transcurso de un ataque a objetivos de tierra, y dado que se le encontró cadáver con una pistola en la mano días más tarde, se piensa que prefirió suicidarse a ser atrapado prisionero.

La primera toma de contacto entre la familia Ferrari y Baracca ocurrió el 16 de junio de 1923 en Ravenna, cuando se encontró al padre de Francesco, Enricco. 

El emblema que portaba el piloto tiene su origen en la Piemonte Cavalleria, tal y como se puede ver en esta imagen, y lo eligió como su emblema personal para mostrar su origen militar y amor por los caballos.


De hecho, al principio el escudo en el avión era así un caballo plateado sobre fondo blanco, tal y como aparece en esta imagen a color real realizada en la época (fuente). 


Y es que, tal y como explica el fabricante Ferrari, el fondo amarillo se lo añadió el propio Enzo Ferrari por ser el color más identificativo de su región, Modena.






Nota final
Hace ya mucho tiempo, explicamos por aquí de dónde venían muchos más escudos de otros grandes fabricantes de automoción.



Fuentes:




Comparte:

Sígueme en redes:

descripción descripción descripción

En mi mesilla

Blog Archive