Good morning. I'm here today to talk about autonomous flying beach balls.
Bom dia. Estou aqui hoje para falar
(Laughter)
sobre bolas de praia autônomas e voadoras.
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.
Não, robôs aéreos ágeis como este. Gostaria de falar um pouco sobre os desafios na construção deles e algumas oportunidades maravilhosas para aplicação dessa tecnologia. Bem, esses robôs estão relacionados a veículos aéreos não tripulados. Entretanto, os veículos que você vê aqui são grandes. Pesam milhares de quilos, de forma nenhuma são ágeis. Não são nem mesmo autônomos. Na verdade, muitos desses veículos são operados por tripulações que podem incluir múltiplos pilotos, operadores de sensores e coordenadores de missão.
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.
Aquilo em que estamos interessados é desenvolver robôs como este -- e aqui estão mais duas imagens -- de robôs que você pode comprar nas prateleiras. Assim, esses são helicópteros com quatro rotores e têm mais ou menos um metro e pesam vários quilos. Então, nós os reajustamos com sensores e processadores, e esses robôs podem voar dentro de edificações sem 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.
O robô que tenho em minha mão é esse, e foi criado por dois estudantes, Alex e Daniel. Então, este pesa um pouco mais que um décimo de uma libra. Consome mais ou menos 15 watts de energia. E, como podem ver, tem aproximadamente oito polegadas de diâmetro. Então, deixem-me expor um rápido tutorial de como esses robôs funcionam.
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.
Este tem quatro rotores. Se você gira esses rotores na mesma velocidade, o robô paira. Se você aumenta a velocidade de cada um desses rotores, então o robô voa, acelera. Claro, se o robô estivesse inclinado, inclinado na horizontal, então ele aceleraria nessa direção. Assim, para incliná-lo, há duas maneiras de fazer isso. Nesta figura, você vê que o rotor quatro está girando mais rápido e o rotor dois está girando mais lentamente. E quando isso acontece, há movimento que faz com que o robô rodopie. E, por outro lado, se você aumenta a velocidade do rotor três e diminui a velocidade do rotor um. então o robõ arremete para frente.
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.
E, finalmente, se você gira pares opostos de rotores mais rápido que o outro par, então o robô dá uma guinada sobre o eixo vertical. Assim, um processador a bordo essencialmente observa quais movimentos precisam ser executados e combina esses movimentos e determina quais comandos enviar aos motores, 600 vezes por segundo. Isso é basicamente como essa coisa opera.
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.
Dessa forma uma das vantagens deste desenho é, quando você diminui o tamanho das coisas, o robô naturalmente se torna ágil. Então, R aqui é o comprimento característico do robô. É realmente metade do diâmetro. E há muitos parâmetros físicos que se alteram à medida que você reduz R. Aquele que é o mais importante é a inércia ou a resistência ao movimento. Acontece que a inércia, que governa o movimento angular, funciona como a quinta força de R. Portanto, quanto menor for R, mais acentuadamente se reduz a inércia. Assim, como resultado, a aceleração angular, representada aqui pela letra grega alfa, fica um sobre R. É inversamente proporcional a R. Quanto menor ela for, mais rapidamente você pode virar.
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.
Assim, isso deveria estar claro nesses vídeos. Na base direita você vê um robô realizando um voo de 360 graus em menos da metade de um segundo. Múltiplos voos, um pouco mais de tempo. Então, aqui os processadores a bordo estão recebendo dados dos acelerômetros e giroscópios a bordo e calculando, como eu disse anteriormente, comandos 600 vezes por segundo para estabilizar este robô. Então, à esquerda, você vê Daniel lançando este robô no ar. E ele demonstra quão resistente é o controle. Não importa como você o lança, o robô se recupera e volta para ele.
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 que construir robôs como este? Bem, robôs como este têm muitas aplicações. Você pode enviá-los para o interior de edifícios como este como primeiros atendentes para procurar por intrusos, talvez procurar por vazamentos químicos, vazamentos de gás. Você também pode usá-los para aplicações como construção. Assim, aqui estão robôs carregando feixes, colunas e montando estruturas semelhantes a cubos. Vou contar-lhes um pouco mais sobre isso. Os robôs podem ser usados para transportar carga. Um dos problemas com estes pequenos robôs é a capacidade deles de transportar carga útil. Assim você pode querer múltíplos robôs transportando carga útil. Esta é uma fotografia de um experimento recente que fizemos -- na verdade não mais tão recente -- em Sendai, logo depois do terremoto. Dessa forma, robôs como este poderiam ser enviados para edifícios desmoronados para avaliar os danos depois de desastres naturais, ou ser enviados para edifícios com radiação para mapear os níveis de radiação.
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.
Então um problema fundamental que os robôs têm que resolver, se são autônomos, é essencialmente determinar como ir do ponto A ao ponto B. Isso se torna desafiador porque a dinâmica desse robô é bastante complicada. De fato, eles vivem em um espaço de 12 dimensões. Portanto usamos um pequeno truque. Pegamos esse espaço curvo de 12 dimensões e o transformamos em um espaço plano de 4 dimensões. E esse espaço de quatro dimensões consiste em X, Y, Z e o ângulo da guinada.
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.
E o que esse robô faz é planejar o que chamamos de trajetória com salto mínimo. Assim, para lembrar-lhes a física, você tem posição, derivativo, velocidade, aceleração então vem empuxo e depois vem salto. Assim este robô minimiza o salto. O que ele efetivamente faz é produzir um movimento suave e gracioso. E ele faz isso evitando obstáculos. Então essas trajetórias com salto mínimo nesse espaço plano são transformadas nesse complicado espaço de 12 dimensões, que o robô deve ter para controle e execução.
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.
Deixem-me mostrar-lhes alguns exemplos de como são essas trajetórias com salto mínimo. E no primeiro vídeo, vocês verão o robô indo do ponto A ao ponto B através de um ponto intermediário.
(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.
Dessa forma o robô é obviamente capaz de executar qualquer trajetória curva. Estas são trajetórias circulares nas quais o robô puxa cerca de 2 G. Aqui no topo você tem câmeras que captam movimentos que dizem ao robô onde ele está 100 vezes por segundo. Também dizem ao robô onde esses obstáculos estão. E os obstáculos podem estar se movendo. E aqui você vê Daniel atirar este aro no ar, enquanto o robô está calculando a posição do aro e tentando determinar a melhor forma de passar pelo aro. Então, como acadêmicos, somos sempre treinados a ser capazes de saltar por aros para levantar fundos para nossos laboratórios, e conseguimos que nossos robôs fizessem isso.
(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.
Uma outra coisa que o robô pode fazer é lembrar partes da trajetória que ele aprende ou é pré-programada. Assim, aqui você vê o robô combinando um movimento que constrói impulso e muda sua direção e então se recupera. Ele tem que fazer isso porque a abertura na janela é apenas ligeiramente maior que a largura do robô. Exatamente como um mergulhador se posiciona no trampolim e então salta dele para ganhar impulso, faz esta pirueta, estes dois saltos mortais e elegantemente se recupera, este robô está basicamente fazendo isso. Ele sabe como combinar pequenos pedaços e partes das trajetórias para executar essas tarefas relativamente difíceis.
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.
Quero mudar o foco do assunto. Uma das desvantagens desses pequenos robôs é o seu tamanho. E eu lhes disse anteriormente que podemos querer empregar muitos e muitos desses robôs para superar as limitações de tamanho. Portanto, uma dificuldade é: como você coordena muitos desses robôs? Então, nesse ponto olhamos para a natureza. Dessa forma, quero mostrar-lhes um clipe de formigas Aphaenogaster do deserto, no laboratório do professor Stephen Pratt, carregando um objeto. Isto é, na verdade, um pedaço de figo. De fato, você pega qualquer objeto recoberto com suco de figo e as formigas o carregarão de volta ao ninho. Estas formigas não têm nenhum coordenador central. Elas sentem seus vizinhos. Não há comunicação explícita. Mas, porque elas percebem os vizinhos e porque percebem o objeto, elas têm coordenação implícita através do grupo.
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.
Este é o tipo de coordenação que queremos que nossos robôs tenham. Então, quando temos um robô que está rodeado por vizinhos -- vamos olhar para o robô I e o robô J -- o que queremos que os robôs façam é monitorar o espaço entre eles, enquanto voam em formação. Portanto você quer ter certeza de que esse espaço está dentro de níveis aceitáveis. Novamente os robôs monitoram esse erro e calculam os comandos de controle 100 vezes por segundo, que, então, traduz para o motor comandos 600 vezes por segundo. Isso também tem que ser feito de uma forma descentralizada. Novamente, se você tem muitos e muitos robôs, é impossível coordenar toda essa informação centralmente rápido o bastante para que os robôs realizem a tarefa. Acrescente-se que os robôs têm que basear suas ações apenas em informações locais, o que eles percebem de seus vizinhos. E então finalmente, insistimos para que os robôs sejam agnósticos para quem são seus vizinhos. Isto é o que chamamos 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.
O que quero lhes mostrar a seguir é um vídeo de 20 desses pequenos robôs voando em formação. Eles estão monitorando a posição de seus vizinhos. Estão mantendo a formação. As formações podem mudar. Elas podem ser formações planas, podem ser formações tridimensionais. Como podem ver aqui, eles desabam de uma formação tridimensional para uma formação plana. E para voar através de obstáculos, eles podem adaptar as formações durante o voo. Esses robôs vêm realmente muito perto. Como podem ver neste voo em forma de oito, eles vêm a polegadas um do outro E apesar das interações aerodinâmicas dessas lâminas de propulsão, eles são capazes de manter voo estável.
(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.
Assim, quando você sabe como voar em formação, você pode realmente apanhar objetos em cooperação. Dessa forma, isso mostra que podemos dobrar, triplicar, quadruplicar a força do robô, fazendo com que eles se agrupem com seus vizinhos, como podem ver aqui. Uma das desvantagens de fazer isso é, à medida que você aumenta a escala das coisas -- portanto, se você tem muitos robôs carregando a mesma coisa, você basica e efetivamente aumentou a inércia, e, por consequência, paga um preço, eles não são tão ágeis. Mas você de fato ganha em termos de capacidade de transportar 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.
Um outro aplicativo que quero mostrar-lhes -- novamente, isto está em nosso laboratório. Este é o trabalho feito por Quentin Lindsey, que é um estudante formado. Seu algoritmo basicamente diz a esses robôs como construir, com autonomia, estruturas cúbicas de elementos de armação. Seu algoritmo diz ao robô qual parte pegar, quando e onde colocá-la. Assim, neste vídeo você vê -- e ele está acelerado 10, 14 vezes -- você vê três estruturas diferentes sendo construídas por estes robôs. E novamente, tudo é autônomo, e tudo que Quentin tem a fazer é dar-lhes uma planta do desenho que quer construir.
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.
Bem, todos esses experimentos que vocês viram até agora, todas essas demonstrações, foram feitas com o auxílio de sistemas de captura de movimentos. Então, o que acontece quando você sai do laboratório e vai para o mundo real? E se não há GPS? Este robô é de fato equipado com uma câmera e um laser localizador, um laser escaneador. E ele usa esses sensores para construir um mapa do ambiente. Esse mapa consiste nas características -- como portas, janelas, pessoas, mobília -- e então ele determina qual é sua posição em relação às características. Assim não há sistema de coordenação global. O sistema de coordenação é definido com base no robô, onde ele está e para o que está olhando. E ele navega com relação a 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.
Quero exibir um clipe de algoritmos desenvolvido por Frank Shen e pelo professor Nathan Michael que mostra este robô entrando em um edificio pela primeira vez e criando um mapa durante o voo. Dessa forma o robô determina quais são as características. Constrói o mapa. Determina onde está com relação às características e então calcula sua posição 100 vezez por segundo, permitindo-nos usar os algoritmos de controle que descrevi anteriormente. Na verdade, este robô está sendo comandado remotamente por Frank. Mas o robô também pode determinar onde ir por ele mesmo. Suponha que eu fosse enviar isto a um edifício e não tivesse ideia de como é esse edifício, posso pedir ao robô para entrar, criar um mapa, então voltar e me dizer como é o edifício. Aqui, o robô não está apenas resolvendo um problema, como ir do ponto A para o ponto B neste mapa, mas também determinando qual é o melhor ponto B a cada vez. Basicamente ele sabe aonde ir para procurar locais que tenham menos informação. E é assim que ele preenche este 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.
Quero deixá-los com um último aplicativo. E há muitos aplicativos para esta tecnologia. Sou um professor, e somos apaixonados por educação. Robôs como este podem realmente mudar a forma como realizamos a educação elementar. Mas estamos no sul da Califórnia, perto de Los Angeles, portanto tenho que concluir com algo relacionado a entretenimento. Quero concluir com um vídeo de música. Quero apresentar os criadores, Alex e Daniel, que criaram este vídeo.
(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.
Antes que eu apresente este vídeo, quero dizer que eles o criaram nos últimos três dias, depois de um telefonema de Chris. E os robôs que tocam neste vídeo são completamente autônomos. Vocês verão nove robôs tocarem seis instrumentos diferentes. E, claro, foi feito exclusivamente para TED 2012. Vamos assistir.
(Sound of air escaping from valve)
(Music)
(Whirring sound)
(Music)
(Música)
(Applause) (Cheers)
(Aplausos)