Good morning. I'm here today to talk about autonomous flying beach balls.
Buenos días. Hoy vine a hablarles
(Laughter)
de las pelotas de playa voladoras.
No, agile aerial robots like this one. I'd like to tell you a little bit about the challenges in building these, and some of the terrific opportunities for applying this technology. So these robots are related to unmanned aerial vehicles. However, the vehicles you see here are big. They weigh thousands of pounds, are not by any means agile. They're not even autonomous. In fact, many of these vehicles are operated by flight crews that can include multiple pilots, operators of sensors, and mission coordinators.
No, de robots ágiles aéreos como este. Me gustaría hablar un poco de los desafíos de su construcción y de algunas aplicaciones fabulosas de esta tecnología. Estos robots están emparentados con los vehículos aéreos no tripulados. Sin embargo, los vehículos que ven aquí son grandes. Pesan miles de kilos no son ágiles, en absoluto. Ni siquiera son autónomos. De hecho, muchos de estos vehículos son operados por tripulaciones de vuelo que pueden contar con varios pilotos, operadores de sensores y coordinadores de misión.
What we're interested in is developing robots like this -- and here are two other pictures -- of robots that you can buy off the shelf. So these are helicopters with four rotors, and they're roughly a meter or so in scale, and weigh several pounds. And so we retrofit these with sensors and processors, and these robots can fly indoors. Without GPS.
Nos interesa desarrollar robots como este -aquí hay dos fotos más de robots que se comercializan. Estos son helicópteros con cuatro rotores miden más o menos un metro a escala y pesan cientos de gramos. Nosotros adaptamos estos robots con sensores y procesadores para que puedan volar sin GPS.
The robot I'm holding in my hand is this one, and it's been created by two students, Alex and Daniel. So this weighs a little more than a tenth of a pound. It consumes about 15 watts of power. And as you can see, it's about eight inches in diameter. So let me give you just a very quick tutorial on how these robots work.
El robot que tengo en la mano es éste, y fue creado por dos estudiantes, Alex y Daniel. Este pesa unos 50 gramos. Consume unos 15 vatios de potencia. Y, como pueden ver, mide unos 20 cm de diámetro. Así que voy a dar un tutorial rápido sobre su funcionamiento.
So it has four rotors. If you spin these rotors at the same speed, the robot hovers. If you increase the speed of each of these rotors, then the robot flies up, it accelerates up. Of course, if the robot were tilted, inclined to the horizontal, then it would accelerate in this direction. So to get it to tilt, there's one of two ways of doing it. So in this picture, you see that rotor four is spinning faster and rotor two is spinning slower. And when that happens, there's a moment that causes this robot to roll. And the other way around, if you increase the speed of rotor three and decrease the speed of rotor one, then the robot pitches forward.
Tiene cuatro rotores. Si los cuatro rotores giran a la misma velocidad lo hacen cernerse. Al aumentar la velocidad de cada uno de los rotores el robot vuela hacia arriba, acelera. Claro, si el robot estuviera inclinado respecto a la horizontal aceleraría en esa dirección. Hay dos maneras de hacer que se incline. En esta imagen ven que el rotor 4 gira más rápido y que el rotor 2 gira más despacio. Cuando ocurre eso se produce un impulso que lo hace rodar. Y, al revés, si se incrementa la velocidad del rotor 3 y decrementa la del rotor 1, se lanza hacia adelante.
And then finally, if you spin opposite pairs of rotors faster than the other pair, then the robot yaws about the vertical axis. So an on-board processor essentially looks at what motions need to be executed and combines these motions, and figures out what commands to send to the motors -- 600 times a second. That's basically how this thing operates.
Y, por último, si se giran los pares opuestos de rotores más rápido que los otros pares, el robot vira en torno al eje vertical. Un procesador de a bordo analiza los movimientos a ejecutar, combina estos movimientos y calcula los comandos a enviar a los motores 600 veces por segundo. Básicamente, así funciona.
So one of the advantages of this design is when you scale things down, the robot naturally becomes agile. So here, R is the characteristic length of the robot. It's actually half the diameter. And there are lots of physical parameters that change as you reduce R. The one that's most important is the inertia, or the resistance to motion. So it turns out the inertia, which governs angular motion, scales as a fifth power of R. So the smaller you make R, the more dramatically the inertia reduces. So as a result, the angular acceleration, denoted by the Greek letter alpha here, goes as 1 over R. It's inversely proportional to R. The smaller you make it, the more quickly you can turn.
Una de las ventajas de este diseño es que, al disminuir la escala, el robot es naturalmente más ágil. Aquí R es la longitud característica del robot. Es la mitad del diámetro. Hay muchos parámetros físicos que cambian al reducir R. Uno de los más importantes es la inercia o resistencia al movimiento. Resulta que la inercia, que regula el movimiento angular, se eleva a la quinta potencia de R. Así, cuanto más chica es R más acentuadamente se reduce la inercia. Como resultado, la aceleración angular, denotada aquí con la letra griega alfa, es 1 sobre R. Es inversamente proporcional a R. Cuanto más chica sea R, más rápido se puede girar.
So this should be clear in these videos. On the bottom right, you see a robot performing a 360-degree flip in less than half a second. Multiple flips, a little more time. So here the processes on board are getting feedback from accelerometers and gyros on board, and calculating, like I said before, commands at 600 times a second, to stabilize this robot. So on the left, you see Daniel throwing this robot up into the air, and it shows you how robust the control is. No matter how you throw it, the robot recovers and comes back to him.
Esto debería quedar claro con estos videos. Abajo a la derecha se ve un robot que da un giro de 360 grados en menos de medio segundo. Y varios giros en un poco más de tiempo. Aquí los procesos de a bordo reciben respuesta de los acelerómetros y giroscopios de a bordo y calculan comandos, como dije antes, 600 veces por segundo para estabilizar al robot. A la izquierda ven a Daniel que arroja el robot al aire. Eso muestra la robustez del control. Sin importar como uno lo lance, el robot se recupera y regresa a su mano.
So why build robots like this? Well, robots like this have many applications. You can send them inside buildings like this, as first responders to look for intruders, maybe look for biochemical leaks, gaseous leaks. You can also use them for applications like construction. So here are robots carrying beams, columns and assembling cube-like structures. I'll tell you a little bit more about this. The robots can be used for transporting cargo. So one of the problems with these small robots is their payload-carrying capacity. So you might want to have multiple robots carry payloads. This is a picture of a recent experiment we did -- actually not so recent anymore -- in Sendai, shortly after the earthquake. So robots like this could be sent into collapsed buildings, to assess the damage after natural disasters, or sent into reactor buildings, to map radiation levels.
¿Por qué construir robots así? Bien, estos robots tienen muchas aplicaciones. Se los puede enviar a edificios como este, como primera repuesta en busca de intrusos, o en busca de escapes bioquímicos, o de una fuga de gas. Se los puede usar también en la construcción. Aquí hay robots que transportan vigas y columnas que montan estructuras cúbicas. Les contaré más al respecto. Pueden usarse en el transporte de carga. Pero uno de los problemas de estos pequeños robots es su capacidad de carga útil. Por eso querríamos distribuir la carga útil en varios robots. Esta es una imagen de un experimento reciente -ya no tan reciente- en Sendai, poco después del terremoto. Podrían enviarse robots como este a edificios derrumbados para evaluar los daños luego de desastres naturales o a edificios radiactivos para medir el nivel de radiación.
So one fundamental problem that the robots have to solve if they are to be autonomous, is essentially figuring out how to get from point A to point B. So this gets a little challenging, because the dynamics of this robot are quite complicated. In fact, they live in a 12-dimensional space. So we use a little trick. We take this curved 12-dimensional space, and transform it into a flat, four-dimensional space. And that four-dimensional space consists of X, Y, Z, and then the yaw angle.
Un problema fundamental que tienen que resolver los robots para ser autónomos es averiguar cómo llegar del punto A al punto B. Esto se hace un poco difícil porque la dinámica de este robot es muy complicada. De hecho, opera en un espacio de 12 dimensiones. Por eso usamos un truco. Usamos este espacio curvo de 12 dimensiones y lo transformamos en un espacio plano de 4 dimensiones. Y ese espacio de 4 dimensiones está formado por X, Y, Z y el ángulo de viraje.
And so what the robot does, is it plans what we call a minimum-snap trajectory. So to remind you of physics: You have position, derivative, velocity; then acceleration; and then comes jerk, and then comes snap. So this robot minimizes snap. So what that effectively does, is produce a smooth and graceful motion. And it does that avoiding obstacles. So these minimum-snap trajectories in this flat space are then transformed back into this complicated 12-dimensional space, which the robot must do for control and then execution.
Así, el robot planifica lo que denominamos la trayectoria de sacudida mínima. Recordando un poco de física, tenemos la posición, la derivada, la velocidad, luego la aceleración, luego viene el tirón y después la sacudida (snap). Este robot minimiza la sacudida. Y eso da como resultado un movimiento suave y elegante. Y todo eso, evitando obstáculos. Estas trayectorias de sacudida mínima en el espacio plano luego son transformadas en este espacio complicado de 12 dimensiones que el robot debe realizar para el control y posterior ejecución.
So let me show you some examples of what these minimum-snap trajectories look like. And in the first video, you'll see the robot going from point A to point B, through an intermediate point.
Les mostraré algunos ejemplos de trayectorias de sacudida mínima. En el primer video verán al robot ir del punto A al punto B, pasando por un punto intermedio.
(Whirring noise)
So the robot is obviously capable of executing any curve trajectory. So these are circular trajectories, where the robot pulls about two G's. Here you have overhead motion capture cameras on the top that tell the robot where it is 100 times a second. It also tells the robot where these obstacles are. And the obstacles can be moving. And here, you'll see Daniel throw this hoop into the air, while the robot is calculating the position of the hoop, and trying to figure out how to best go through the hoop. So as an academic, we're always trained to be able to jump through hoops to raise funding for our labs, and we get our robots to do that.
El robot puede recorrer cualquier trayectoria curva. En estas trayectorias circulares el robot experimenta unas dos fuerzas G. En la parte superior hay cámaras aéreas de captura de movimiento que le indican al robot dónde está, 100 veces por segundo. Además, le dicen dónde están los obstáculos. Los obstáculos pueden moverse. Y aquí vemos a Daniel lanzando el aro al aire mientras el robot calcula la posición del aro y trata de averiguar la mejor manera de atravesarlo. Como académicos, estamos entrenados para saltar aros y así conseguir fondos para el laboratorio y logramos que nuestros robots lo hagan.
(Applause)
(Aplausos)
So another thing the robot can do is it remembers pieces of trajectory that it learns or is pre-programmed. So here, you see the robot combining a motion that builds up momentum, and then changes its orientation and then recovers. So it has to do this because this gap in the window is only slightly larger than the width of the robot. So just like a diver stands on a springboard and then jumps off it to gain momentum, and then does this pirouette, this two and a half somersault through and then gracefully recovers, this robot is basically doing that. So it knows how to combine little bits and pieces of trajectories to do these fairly difficult tasks.
Otra cosa que puede hacer el robot es recordar partes de la trayectoria que aprende o que tiene pre-programada. Por eso aquí ven al robot combinando un movimiento que acumula impulso, después cambia su orientación y luego se recupera. Tiene que hacerlo porque el hueco de la ventana es ligeramente más grande que el ancho del robot. Así, al igual que un clavadista se para en el trampolín luego salta para ganar impulso, hace esa pirueta, dos saltos mortales y medio y se recupera con gracia; este robot hace básicamente eso. Sabe cómo combinar pequeños tramos de trayectorias para realizar estas tareas bastante difíciles.
So I want change gears. So one of the disadvantages of these small robots is its size. And I told you earlier that we may want to employ lots and lots of robots to overcome the limitations of size. So one difficulty is: How do you coordinate lots of these robots? And so here, we looked to nature. So I want to show you a clip of Aphaenogaster desert ants, in Professor Stephen Pratt's lab, carrying an object. So this is actually a piece of fig. Actually you take any object coated with fig juice, and the ants will carry it back to the nest. So these ants don't have any central coordinator. They sense their neighbors. There's no explicit communication. But because they sense the neighbors and because they sense the object, they have implicit coordination across the group.
Quiero cambiar de marcha. Una de las desventajas de estos pequeños robots es el tamaño. Como les dije antes quisiéramos emplear gran cantidad de robots para sortear las limitaciones del tamaño. Y una de las dificultades es la manera de coordinar muchos de estos robots. Por eso recurrimos a la naturaleza. Quiero mostrarles un video de las hormigas aphaenogasters del desierto cargando un objeto en el lab. del Profesor Stephen Pratt Es un pedacito de higo. En realidad, cualquier objeto cubierto con jugo de higo sirve para que las hormigas lo lleven al hormiguero. Estas hormigas no tienen un coordinador central. Detectan a sus vecinas. No hay comunicación explícita. Pero como detectan a sus vecinas y detectan al objeto tienen, como grupo, una coordinación implícita.
So this is the kind of coordination we want our robots to have. So when we have a robot which is surrounded by neighbors -- and let's look at robot I and robot J -- what we want the robots to do, is to monitor the separation between them, as they fly in formation. And then you want to make sure that this separation is within acceptable levels. So again, the robots monitor this error and calculate the control commands 100 times a second, which then translates into motor commands, 600 times a second. So this also has to be done in a decentralized way. Again, if you have lots and lots of robots, it's impossible to coordinate all this information centrally fast enough in order for the robots to accomplish the task. Plus, the robots have to base their actions only on local information -- what they sense from their neighbors. And then finally, we insist that the robots be agnostic to who their neighbors are. So this is what we call anonymity.
Ese es el tipo de coordinación que queremos para nuestros robots. Cuando tenemos un robot rodeado por vecinos -miremos al robot I y al J- queremos que los robots controlen la separación entre ellos mientras vuelan en formación, y asegurarnos de que la separación entre ellos sea aceptable. De nuevo, los robots controlan este error y calculan los comandos correctivos 100 veces por segundo que luego se traducen en comandos al motor, 600 veces por segundo. Esto tiene que hacerse de manera descentralizada. Otra vez, si tenemos muchos robots es imposible coordinarlos con información centralizada lo suficientemente rápido como para que cumplan la tarea. Además, los robots tienen que basar sus acciones sólo en la información local que detecten de sus vecinos. Y, finalmente, insistimos en que los robots desconozcan quiénes son sus vecinos. Esto es lo que llamamos anonimato.
So what I want to show you next is a video of 20 of these little robots, flying in formation. They're monitoring their neighbors' positions. They're maintaining formation. The formations can change. They can be planar formations, they can be three-dimensional formations. As you can see here, they collapse from a three-dimensional formation into planar formation. And to fly through obstacles, they can adapt the formations on the fly. So again, these robots come really close together. As you can see in this figure-eight flight, they come within inches of each other. And despite the aerodynamic interactions with these propeller blades, they're able to maintain stable flight.
Ahora quiero mostrarles un video de 20 pequeños robots que vuelan en formación. Observan la posición de sus vecinos. Mantienen la formación. Las formaciones pueden cambiar. Pueden ser formaciones planas, pueden ser tridimensionales. Como pueden ver aquí pasan de una formación tridimensional a una formación plana. Y para volar sorteando obstáculos pueden modificar las formaciones sobre la marcha. Estos robots pueden acercarse mucho unos a otros. Como pueden ver en este vuelo en forma de 8, están a centímetros unos de otros. Y a pesar de las interacciones aerodinámicas de las palas de las hélices, pueden mantener un vuelo estable.
(Applause)
(Aplausos)
So once you know how to fly in formation, you can actually pick up objects cooperatively. So this just shows that we can double, triple, quadruple the robots' strength, by just getting them to team with neighbors, as you can see here. One of the disadvantages of doing that is, as you scale things up -- so if you have lots of robots carrying the same thing, you're essentially increasing the inertia, and therefore you pay a price; they're not as agile. But you do gain in terms of payload-carrying capacity.
Así que una vez que uno sabe volar en formación, puede levantar objetos en forma colaborativa. Esto demuestra que podemos duplicar, triplicar, cuadruplicar, la fuerza del robot con sólo hacerlo trabajar en equipo con sus vecinos, como ven aquí. Una de las desventajas de esto, a medida que agrandamos la escala, es que si tenemos muchos robots llevando la misma cosa efectivamente aumentamos la inercia y por ende pagamos un precio: no son tan ágiles. Pero lo ganamos en términos de capacidad de carga útil.
Another application I want to show you -- again, this is in our lab. This is work done by Quentin Lindsey, who's a graduate student. So his algorithm essentially tells these robots how to autonomously build cubic structures from truss-like elements. So his algorithm tells the robot what part to pick up, when, and where to place it. So in this video you see -- and it's sped up 10, 14 times -- you see three different structures being built by these robots. And again, everything is autonomous, and all Quentin has to do is to give them a blueprint of the design that he wants to build.
Esta es otra aplicación que quiero mostrarles de nuestro laboratorio. Es un trabajo de Quentin Lindsey, un estudiante graduado. Su algoritmo le dice al robot cómo construir en forma autónoma estructuras cúbicas con armazones. Su algoritmo le dice al robot qué parte levantar, cuándo y dónde ubicarlo. En este video vemos -está acelerado de 10 a 14 veces- a los robots construyendo tres estructuras diferentes Y nuevamente de manera autónoma, lo que Quentin hace es darles un plano del diseño que quiere que construyan.
So all these experiments you've seen thus far, all these demonstrations, have been done with the help of motion-capture systems. So what happens when you leave your lab, and you go outside into the real world? And what if there's no GPS? So this robot is actually equipped with a camera, and a laser rangefinder, laser scanner. And it uses these sensors to build a map of the environment. What that map consists of are features -- like doorways, windows, people, furniture -- and it then figures out where its position is, with respect to the features. So there is no global coordinate system. The coordinate system is defined based on the robot, where it is and what it's looking at. And it navigates with respect to those features.
Todos estos experimentos que hemos visto hasta ahora, todas estas demostraciones, requieren sistemas de captura de movimiento. Pero, ¿qué pasa cuando salimos del laboratorio y vamos al mundo real? ¿Y si no hay GPS? Pues este robot está equipado con una cámara y un telémetro láser de Hokuyo. Y usa estos sensores para trazar un mapa del entorno. Ese mapa tiene características como puertas, ventanas, gente, muebles... y calcula su posición respecto de esas características. No hay sistema de posicionamiento global. El sistema de coordenadas se define respecto del robot, dónde está y hacia dónde mira. Y navega siguiendo estas características.
So I want to show you a clip of algorithms developed by Frank Shen and Professor Nathan Michael, that shows this robot entering a building for the very first time, and creating this map on the fly. So the robot then figures out what the features are, it builds the map, it figures out where it is with respect to the features, and then estimates its position 100 times a second, allowing us to use the control algorithms that I described to you earlier. So this robot is actually being commanded remotely by Frank, but the robot can also figure out where to go on its own. So suppose I were to send this into a building, and I had no idea what this building looked like. I can ask this robot to go in, create a map, and then come back and tell me what the building looks like. So here, the robot is not only solving the problem of how to go from point A to point B in this map, but it's figuring out what the best point B is at every time. So essentially it knows where to go to look for places that have the least information, and that's how it populates this map.
Por eso quiero mostrarles un video de algoritmos desarrollados por Frank Shen y el profesor Nathan Michael que muestra al robot entrando por primera vez al edificio y trazando este mapa sobre la marcha. El robot descubre las características. Traza el mapa. Descubre dónde está respecto de las características y luego estima su posición 100 veces por segundo y nos permite usar los algoritmos de control que les describí antes. Así que este robot es comandado a distancia por Frank. Pero el robot puede averiguar a dónde ir por su cuenta. Supongan que lo enviara a un edificio y no tuviera idea del aspecto del edificio, puedo pedirle al robot que entre, que trace un mapa y luego regrese y me diga cómo es el edificio. Aquí, el robot no sólo resuelve el problema de cómo ir del punto A al punto B en este mapa, sino que averigua cuál es el mejor punto B en cada momento. En esencia, sabe dónde ir a buscar lugares con la menor información. Así es como completa el mapa.
So I want to leave you with one last application. And there are many applications of this technology. I'm a professor, and we're passionate about education. Robots like this can really change the way we do K-12 education. But we're in Southern California, close to Los Angeles, so I have to conclude with something focused on entertainment. I want to conclude with a music video. I want to introduce the creators, Alex and Daniel, who created this video.
Y quiero despedirme con una última aplicación. Es una tecnología que tiene muchas aplicaciones. Soy profesor y me apasiona la educación. Robots como estos pueden cambiar el modo de educar desde la ed. preescolar hasta los 12 años. Pero estamos en el sur de California, cerca de Los Ángeles, así que tengo que cerrar con algo de entretenimiento. Quiero concluir con un video musical. Quiero presentarles a los creadores, Alex y Daniel, ellos crearon el video.
(Applause)
(Aplausos)
So before I play this video, I want to tell you that they created it in the last three days, after getting a call from Chris. And the robots that play in the video are completely autonomous. You will see nine robots play six different instruments. And of course, it's made exclusively for TED 2012. Let's watch.
Pero antes de reproducir el video quiero que sepan que lo crearon en los últimos tres días después de una llamada de Chris. Y los robots que actúan en el video son completamente autónomos. Verán a nueve robots ejecutar seis instrumentos diferentes. Y, claro, está hecho exclusivamente para TED 2012. Veamos.
(Sound of air escaping from valve)
(Music)
(Whirring sound)
(Music)
(Música)
(Applause) (Cheers)
(Aplausos)