Good morning. I'm here today to talk about autonomous flying beach balls.
Goedemorgen. Ik kom hier vandaag spreken
(Laughter)
over autonome, vliegende strandballen.
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.
Nee, over wendbare luchtrobots zoals deze. Ik zou jullie wat willen vertellen over de uitdagingen bij het bouwen ervan en over de geweldige toepassingsmogelijkheden van deze technologie. Deze robots zijn verwant met onbemande vliegtuigen. De tuigen die je hier ziet, zijn groot. Ze wegen duizenden kilo, zijn allerminst wendbaar en zijn ook niet autonoom. Vele van deze voertuigen worden bestuurd door bemanningen, vaak meerdere piloten, die sensoren bedienen en de missie coördineren.
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.
Wij willen dit soort van robots ontwikkelen -- hier zijn nog twee afbeeldingen -- deze kan je zo in de winkel kopen. Dit zijn helikopters met vier rotoren. Ze zijn ongeveer een meter groot en wegen een paar kilo. We rusten ze uit met sensoren en processoren. Ze kunnen binnenshuis vliegen zonder 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.
De robot die ik in de hand houd, is deze. Hij is gemaakt door twee studenten, Alex en Daniel. Dit weegt iets meer dan vijf gram. Het verbruikt ongeveer 15 watt. Zoals je ziet, heeft het een diameter van ongeveer 20 cm. Laat me jullie een snelcursus geven in de werking van deze robots.
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.
Hij heeft vier rotoren. Als je die met dezelfde snelheid laat draaien, dan zweeft de robot. Als je de snelheid van alle rotoren verhoogt, vliegt hij omhoog en versnelt hij. Als de robot gekanteld zou zijn, horizontaal gekanteld, dan zou hij in deze richting versnellen. Om de robot te doen kantelen, zijn er twee methodes. In deze afbeelding zie je dat rotor 4 sneller draait en rotor 2 trager. Als dat gebeurt, gaat de robot om de langsas rollen. Omgekeerd, als je de snelheid van rotor drie verhoogt en die van rotor één verlaagt, dan stampt de robot om de dwars-as.
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.
Tenslotte, als je tegenovergestelde paren rotoren sneller doet draaien dan het andere paar, dan giert de robot om de top-as. Een processor in de robot bekijkt welke bewegingen moeten worden uitgevoerd en combineert deze bewegingen. Hij vist uit welke bevelen naar de motoren moeten gaan, en dat 600 keer per seconde. Zo werkt dit ding.
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.
Eén van de voordelen van dit ontwerp is dat als je alles kleiner maakt, de robot van nature wendbaar wordt. Hier is R de gebruikelijke lengte van de robot. Het is de helft van de diameter. Er zijn een hoop fysische parameters die wijzigen als je R kleiner maakt. De belangrijkste is de inertie of de weerstand tegen beweging. Het blijkt dat de inertie, die de hoekbeweging bepaalt, met R tot de vijfde macht afneemt. Hoe kleiner je R maakt, hoe dramatischer de inertie afneemt. Het resultaat is dat de hoekversnelling, hier weergegeven met de Griekse letter alpha, 1 over R wordt. Ze is omgekeerd evenredig met R. Hoe kleiner je het maakt, hoe sneller je kan draaien.
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.
Dat moet blijken uit deze video's. Rechtsonder zie je een robot die 360° draait in minder dan een halve seconde. Meerdere omwentelingen, een beetje meer tijd. De processen aan boord krijgen feedback van versnellingsmeters en gyroscopen aan boord. Ze berekenen zoals gezegd 600 keer per seconde de bevelen om deze robot te stabiliseren. Links zie je Daniël die zijn robot omhoog gooit. Dit toont hoe robuust de controle is. Hoe je het ook gooit, de robot herstelt zich en keert terug.
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.
Waarom bouwen we dit soort robots? Er zijn vele soorten toepassingen. Je kan ze in dit soort gebouwen binnensturen als eerstelijnsdienst op zoek naar inbrekers, op zoek naar biochemische lekken, of gaslekken. Je kan ze ook gebruiken voor bouwtoepassingen. Dit zijn robots die balken dragen, zuilen, en die kubusachtige structuren bouwen. Ik vertel jullie er wat meer over. De robots kunnen worden gebruikt om lading te vervoeren. Eén van de problemen met deze kleine robots is hun vermogen om nuttige lading te vervoeren. Je hebt wellicht meerdere robots nodig die nuttige lading vervoeren. Dit is een beeld van een recent experiment -- intussen al niet meer zo recent -- in Sendai, kort na de aardbeving. Robots als deze kunnen een ingestort gebouw ingestuurd worden om de schade in te schatten na natuurrampen. Ze kunnen reactorgebouwen worden ingestuurd om stralingsniveaus in kaart te brengen.
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.
Een fundamenteel probleem dat robots moeten oplossen om autonoom te zijn, is uitzoeken hoe ze van punt A naar punt B geraken. Dat wordt een uitdaging omdat de dynamica van deze robot ingewikkeld is. Ze bewegen zich in een 12-dimensionale ruimte. Daarom gebruiken we een trucje. We nemen deze 12-dimensionale gekromde ruimte en vormen ze om tot een vlakke vierdimensionale ruimte. Die vierdimensionale ruimte bestaat uit X, Y, Z en de gierhoek.
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.
De robot doet het volgende: hij plant wat wij een minimale 'snap'-baan noemen. Kleine fysicaherhaling: je hebt positie, snelheid is de afgeleide, dan versnelling, dan 'jerk' en dan 'snap'. Deze robot minimaliseert 'snap'. Waar dat toe leidt, is een vloeiende en gracieuze beweging. Dat doet het door obstakels te vermijden. Deze minimale 'snap'-banen in een vlakke ruimte worden vervolgens opnieuw omgezet naar een ingewikkelde 12-dimensionale ruimte. De robot doet dat om te controleren en vervolgens uit te voeren.
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.
Laat me jullie een paar voorbeelden tonen van hoe deze minimale snap-banen eruit zien. In de eerste video zie je de robot van punt A naar punt B gaan via een punt er tussenin.
(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.
De robot is in staat om elke kromme baan uit te voeren. Dit zijn cirkelbanen waarbij de robot ongeveer twee G te verwerken krijgt. Dit zijn bewegingsregistratiecamera's op de bovenkant die de robot 100 keer per seconde vertellen waar hij is. Ze vertellen hem ook waar de obstakels zijn. De obstakels kunnen bewegen. Hier zie je Daniel een hoepel opgooien. De robot berekent de positie van de hoepel en zoekt uit hoe hij er het beste kan doorvliegen. Als academicus oefenen we altijd om door hoepels te springen om geld in te zamelen voor ons lab. Onze robots doen dat voor ons.
(Applause)
(Applaus)
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.
Nog iets dat deze robot kan doen, is dat hij delen van een baan onthoudt die hij leert of die voorgeprogrammeerd zijn. Hier zie je hoe de robot een beweging combineert die momentum opbouwt, waarna hij zijn oriëntatie wijzigt en zich herstelt. Dat moet hij doen omdat het gat in het venster maar een klein beetje breder is dan de breedte van de robot. Zoals een duiker op een duikplank staat en eraf springt om momentum te krijgen en dan een pirouette uitvoert, een 2 1/2 salto, waarna hij zich gracieus herstelt, zo doet deze robot hetzelfde. Hij kan stukjes en beetjes van banen combineren om moeilijke taken uit te voeren.
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.
Ik verander van versnelling. Eén van de nadelen van deze kleine robots is hun omvang. Ik zei al dat we heel veel robots nodig hebben om de beperkingen van de afmetingen te overwinnen. Eén moeilijkheid is: hoe coördineer je een hoop robots? Hier keken we naar de natuur. Ik wil jullie een clip tonen van aphaenogaster-woestijnmieren die een object dragen in het lab van Professor Stephen Pratt. Dit is een stuk vijg. Bedek om het even welk object met een laag vijgensap en de mieren zullen het naar hun nest slepen. Deze mieren hebben geen centrale coördinator. Ze worden hun buren gewaar. Er is geen expliciete communicatie. Maar omdat ze hun buren gewaarworden, en omdat ze het object gewaarworden, is er impliciete coördinatie in de groep.
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.
Dit is het soort coördinatie dat we wensen voor onze robots. We hebben een robot die omgeven is door buren -- laten we robot I en robot J in de gaten houden. We willen dat de robots de afstand van elkaar in de gaten houden terwijl ze in formatie vliegen. Je moet ervoor zorgen dat deze afstand binnen aanvaardbare perken blijft. De robots monitoren de fout en berekenen controlecommando's, 100 keer per seconde, wat dan wordt omgezet in bewegingscommando's, 600 keer per seconde. Dit moet ook gebeuren op gedecentraliseerde wijze. Als je heel veel robots hebt, kan je al deze informatie niet snel genoeg centraal coördineren om de robots in hun taak te doen slagen. De robots moeten hun actie louter op lokale informatie baseren, op wat ze vanwege hun buren gewaarworden. Tenslotte willen we dat de robots niet weten wie hun buren zijn. Dat noemen we anonimiteit.
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.
Ik toon jullie zo meteen een video van 20 van deze kleine robots die in formatie vliegen. Ze monitoren de positie van hun buren. Ze houden een formatie aan. De formaties kunnen wijzigen. Ze kunnen vlak zijn, of driedimensionaal. Hier zie je dat ze van een driedimensionale formatie naar een vlakke overgaan. Om door obstakels te vliegen, kunnen ze de formaties tijdens het vliegen aanpassen; Deze robots vliegen dicht tegen elkaar aan. Je ziet bij deze acht-vormige vlucht dat ze centimeters van elkaar vliegen. Ondanks de aërodynamische interactie van de schroefbladen, slagen ze erin om stabiel te vliegen.
(Applause)
(Applaus)
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.
Zodra je weet hoe je in formatie vliegt, kan je samen objecten oppikken. Dit toont aan dat we dubbel, driedubbel, vier keer zoveel robotkracht kunnen krijgen door ze in team met hun buren te laten werken, zoals je hier ziet. Eén van de nadelen daarvan is dat als je de dingen opschaalt -- als je veel robots hetzelfde ding laat dragen, je daardoor de inertie verhoogt en dus een prijs betaalt. Ze zijn niet zo wendbaar. Maar je nuttige lading stijgt wel.
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.
Ik wil jullie nog een toepassing tonen -- dit is in ons lab. Dit werk is van de hand van student Quentin Lindsey. Zijn algoritme zegt deze robots hoe ze autonoom kubusstructuren moeten bouwen uit bundel-achtige elementen. Dit algoritme vertelt de robot welk deel ze moeten oppikken, wanneer, en waar ze het moeten neerzetten. In deze video zie je -- het is 10 tot 14 keer versneld -- je ziet hoe 3 verschillende structuren door deze robots worden gebouwd. Alles is autonoom, en het enige dat Quentin moet doen, is ze een blauwdruk geven van het ontwerp dat hij wil bouwen.
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.
Alle experimenten die je tot hiertoe hebt gezien, alle demonstraties zijn uitgevoerd met bewegingsregistratiesystemen. Wat gebeurt er als je je lab verlaat, en je naar buiten gaat, de echte wereld in? Wat als er geen gps is? Deze robot is uitgerust met een camera een een optische afstandsmeter, een laserscanner. Het gebruikt deze sensoren om een kaart van de omgeving op te stellen. Die kaart bestaat uit kenmerken -- deuren, vensters, mensen, meubilair -- en zoekt dan uit waar zijn positie is met betrekking tot die kenmerken. Er is geen algemeen coördinatensysteem. Het coördinatensysteem is gebaseerd op de robot, waar die is en waar hij naar kijkt. Hij navigeert op basis van die kenmerken.
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.
Ik toon jullie een filmpje van algoritmes die zijn ontworpen door Frank Shen en door professor Nathan Michael. Je ziet hoe deze robot een gebouw voor het eerst binnengaat en daarbij deze kaart maakt. De robot zoekt uit wat de kenmerken zijn. Hij stelt de kaart op. Hij zoekt uit wat zijn positie is op basis van de kenmerken en schat dan zijn positie in, 100 keer per seconde, waarbij we de controle-algoritmes kunnen gebruiken die ik eerder heb beschreven. Deze robot wordt vanop afstand bestuurd door Frank. De robot kan ook op zijn eentje uitzoeken waar hij heen moet. Als ik dit een gebouw instuur en geen idee heb hoe het eruit ziet, kan ik deze robot vragen om binnen te gaan, een kaart op te stellen en me dan te komen vertellen hoe het gebouw eruit ziet. De robot lost niet alleen het probleem op - hoe ga ik van punt A naar punt B op deze kaart - maar hij zoekt ook uit wat op elk moment het beste punt B is. Hij weet dus waar hij moet gaan om plaatsen te zoeken met minimale informatie. Zo stelt hij deze kaart op.
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.
Ik wil besluiten met nog een laatste toepassing. Er zijn vele toepassingen van deze technologie. Ik ben professor. Mijn passie is onderwijs. Robots als deze kunnen een revolutie betekenen voor het basis- en middelbaar onderwijs. Maar we zitten in Zuid-Californië, vlakbij Los Angeles, dus moet ik afsluiten met de klemtoon op amusement. Ik wil afsluiten met een muziekvideo. Laat me de auteurs voorstellen, Alex en Daniel, die deze video hebben gemaakt.
(Applause)
(Applaus)
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.
Voor ik de video afspeel, vertel ik jullie graag dat ze hem de afgelopen 3 dagen hebben gemaakt, na een telefoontje van Chris. De robots die je ziet in de video zijn volledig autonoom. Je ziet negen robots die zes verschillende instrumenten spelen. Dit werd exclusief voor TED 2012 gemaakt. Laten we kijken.
(Sound of air escaping from valve)
(Music)
(Whirring sound)
(Music)
(Muziek)
(Applause) (Cheers)
(Applaus)