Good morning. I'm here today to talk about autonomous flying beach balls.
Dobro jutro. Danas ću govoriti
(Laughter)
o samoupravljajućim, letećim... loptama za plažu.
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.
Ma ne, o okretnim lebdećim robotima poput ovog. Nekoliko riječi o izazovima pri građenju robota kao i mogućnostima koje pruža primjena ove tehnologije. Dakle, ovi roboti su svojevrsne bezpilotne letjelice. Međutim ovdje prikazane letjelice su velike. Budući da teže stotine kilograma、 pokretljivost im je otežana. Štoviše nisu niti samoupravljajuće. U stvarnosti, mnoge od ovih letjelica su upravljane stručnim osobljem poput grupe pilota kontrolorima senzora i zapovjednicima misije.
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.
Mi smo se pozabavili razvojem robota poput ovih -- prikazana su dva primjera robota koji se mogu kupiti u trgovini. Dakle to su helikopteri sa četiri rotora-propelera otprilike promjera jednog metra i teže koji kilogram. Opremili smo ih sa senzorima i procesorima, da bi mogli letjeti u zatvorenom prostoru bez GPSa.
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.
Robot kojeg držim ...ovaj... su kreirala dva studenta. Alex i Daniel. Težak je jedva 40-tak grama i pokreće ga snaga od 15 wati. Kao što možete ocijeniti u promjeru je oko 20 cm. Dopustite da ukratko pojasnim na koji način ovi roboti rade.
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.
Robot ima četiri propelera. Ako se svi propeleri okreću istom brzinom robot lebdi u zraku. Kada povećamo okretaje propelera robot se uzdiže. Ako je robot nagnut prema horizontali onda će se kretati u tom smjeru. Evo jednog od dva načina kako nakrenuti robota. Na ovoj slici uočite kako se 4. propeler okreće brže, a 2. propeler se okreće sporije. U tom trenutku robot se nakrene. I drugi način je da povećate brzinu 3. propelera i smanjite brzinu 1. propelera, čime je robot usmjeren prema naprijed.
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.
Konačno ako ubrzate dva nasuprotna propelera robot će se okretati oko vertikalne osi. U osnovi, ugrađeni procesor opaža koje kretnje trebaju biti izvršene, usklađuje kretnje te šalje primjerenu naredbu motorima 600 puta u sekundi. Tako u osnovi robot radi.
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.
Prednost ovakvog dizajna je, da s manjim komponentama robot postaje okretniji. Na ovoj slici R predstavlja karakterističnu duljinu robota. U osnovi to je radius robota. Mnogi fizikalni parametri se mijenjaju kako smanjujemo R. Najvažniji parametar je tromost, ili otpor kretanju. Ispada da je tromost, o kojoj ovisi kretanje pod kutom, proporcionalna R na petu potenciju. Sa smanjivanjem R tromost dramatično pada. To rezultira kutnom akceleracijom označenom grčkim slovom alfa približno 1/R. Dakle, obrnuto proporcionalna s R. Što je robot manji, to je okretniji.
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.
Što je očito iz ovih snimki. Promotrite robota, desno dolje, kako se okrenuo 360 stupnjeva. u djeliću sekunde. Višestruki okreti - malo više vremena. Ugrađeni procesori zaprimaju informaciju od ugrađenih akcelerometara i žiroskopa te procesiraju, kao što rekoh, te informacije 600 puta u sekundi stabilizirajući robota. Na dnu lijevo, uočite Daniela kako baca robota u zrak demonstrirajući koliko je robot robustan. Bez obzira kako ga bacite robot se dočeka na noge i doleti nazad.
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.
Koja je svrha graditi ovakve robote? Može biti višestruka. Robote možete poslati u zgrade pod ugrozom primjerice kao izvidnicu za otkrivanje provalnika, otkrivanje biokemijskog hazarda, ili curenja plina. Možete ih koristiti i kao programirane graditelje. Uočite kako roboti nose gredice i stupiće i sklapaju ih u kockaste konstrukcije. O tome malo više kasnije. Ove robote možemo koristiti i za prijenos tereta. Međutim, s obzirom na njihovu veličinu kapacitet nosivosti je malen. Stoga bi bilo dobro udružiti robote za prijenos tereta. Evo snimke nedavnog pokusa -- doduše već ima tome -- u Sendaiu, netom iza potresa. Roboti mogu biti poslani u ruševine kako bi se procjenila šteta ili u objekte s reaktorima da izmjere razinu radijacije.
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.
Osnovni problem s kojim se roboti moraju nositi, samoinicijativno je u biti zaključivanje kako doći od točke A do točke B. Dakle stvari postaju složenije s porašću dinamike robota. U načelu, roboti žive u 12-dimenzionalnom prostoru. Pa smo morali tome doskočiti. Uzeli smo zakrivljeni 12-dimenzionalni prostor i transformirali ga u ravninski 4-dimenzionalni prostor. Ovaj 4-dimenzionalni prostor se sastoji od X, Y, Z i osnog kuta.
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.
Što je robotu činiti je isplanirati putanju najmanje akceleracije. Da se prisjetimo fizike, imamo položaj, te 1. derivaciju položaja - brzinu, zatim akceleraciju - 2. vremenska derivacija položaja (d2x/dt2) impuls - 3. derivacija položaja (d3x/dt3) 'cimanje' - 4. derivacija položaja (d4x/dt4). Robot minimizira cimanje. Rezultat toga je glatko, ravnomjerno kretanje robota. I to pri zaobilaženju zapreka. Dakle, putanje najmanje akceleracije u ovom ravninskom prostoru potom transformiramo nazad u složeni 12-dimenzionalni prostor, koje robot mora slijediti radi provjere i potom izvršavanja.
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.
Evo nekoliko primjera kako putanje najmanje akceleracije izgledaju. U prvoj snimci vidjet ćete kretanje robota od točke A do točke B ali kroz zadanu točku.
(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.
Robot je sposoban pratiti zakrivljene putanje. Ovo su kružne putanje na kojima robot potegne 2G. Ovdje imamo stropne kamere koje signaliziraju robotu njegov položaj 100 puta u sekundi. Također daju robotu do znanja gdje su prepreke. Te prepreke mogu biti pokretne. Ovdje vidite Daniela kako baca kolut u zrak, a robot računa položaj koluta pokušavajući odrediti pravi trenutak za prolazak kroz kolut. Kao znanstvenici, primorani smo izvoditi akrobacije kako bi fondovi za naše projekte bili odobreni, pa smo odlučili i robote naučiti akrobacijama.
(Applause)
(Pljesak)
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.
Dodatna stvar koju robot može učiniti je memoriranje dijelova putanje koju je savladao ili mu je predprogramirana. Ovdje vidite robota kako kombinira kretnje i vreba pravi trenutak u kojem će se nagnuti i potom vratiti u početni položaj. Na to je prisiljen jer svjetli otvor prozora je tijesan za njegovu širinu. Poput skakača s daske kada odskoči da bi dobio zamah, potreban za piruetu, i dvostruki salto da bi se na kraju ponovo ispružio, ovaj robot u osnovi čini isto. Dakle zna kako usuglasiti više manjih putanja u jednu znatno složeniju.
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.
Promjenimo temu. Jedan od nedostataka robota je veličina. I kao što rekoh trebat ćemo upregnuti veliki broj robota da bi nadomjestili taj nedostatak. Prva poteškoća je kako koordinirati jato robota? Okrenuli smo se majci prirodi. Pogledajmo slijedeći prilog s pustinjskim mravima Aphaenogaster. kako nose teret, u laboratoriju profesora Stephen Pratta. Ovo je komadić smokve. Ako im podmetnete bilo koji predmet preliven smokvinim sokom mravi će ga odvući u mravinjak. Mravi očito nemaju koordinatora. Ali osjećaju ostale iz skupine. Ne postoji izravna komunikacija. Ali kako osjećaju ostale u skupini i kako osjećaju predmet, koordinacija je ostvarena posredno.
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.
Takvu sličnu koordinaciju smo željeli ostvariti kod robota. Ako imamo robota grupiranog u jato promotrimo robota I i robota J -- želimo robote osvijestiti da paze na međusobni razmak kada tvore formaciju. Želimo da se taj razmak održava unutar određene tolerancije. Da ponovimo, roboti prate ovu toleranciju i proračunavaju kontrolne naredbe 100 puta u sekundi, što znači da motor zaprima 600 naredbi u sekundi. I to treba biti učinjeno decentralizirano. Ako imate jato robota, bilo bi nemoguće koordinirati ih centralno zadovoljavajućom brzinom za ostvarenje zadaće. Dodatno, roboti moraju zasnivati kretnje isključivo na lokalnim informacijama koje zaprimaju od susjednih robota. I napokon inzistirali smo da su roboti agnostični prema susjedima. To smo nazvali anonimnost.
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.
Sada ću vam pokazati snimak sa 20 robota koji lete u formaciji. Svaki robot promatra položaj susjeda. I tako održavaju formaciju. Formacija se može mijenjati. Može biti ravninska ili prostorna. Kao što ovdje vidite, roboti iz prostorne formacije tvore ravninsku. I da bi letjeli kroz prepreke sposobni su prilagoditi formaciju u letu. Roboti mogu prići blizu jedan drugom. Kao što vidite u ovoj formaciji u obliku osmice, roboti prilaze jedni drugima unutar par centimetara. I unatoč aerodinamičnom utjecaju propelerskih elisa održavaju stabilan let.
(Applause)
(Pljesak)
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.
Kada ih jednom naučite letjeti u formaciji možete podići predmete surađujući. To ujedno znači da možemo udvostručiti, utrostručiti ili učetverostručiti snagu robota usklađujući njihovo djelovanje, kao što je prikazano. Jedan od nedostataka ovakvog pristupa je, kako teret postaje teži... i ako uposlite jato robota za prijenos tereta u osnovi povećavate tromost, čime naravno jato postaje manje okretno. Ali tako možete prenašati teže objekte.
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.
Još jedna primjena koju želim pokazati -- ponovo, u našem laboratoriju. Ovo je napravio naš postdiplomac Quentin Lindsey. Njegov algoritam u osnovi naređuje robotima kako da samostalno sklope prostorne rešetkaste konstrukcije iz gredica. Njegov algoritam govori robotu koji dio podići, te kada i gdje ga ugraditi. Na ovoj snimci možete vidjeti -- ubrzano 10 - 14 puta -- tri različite konstrukcije sklapane robotima. Roboti su samoupravljajući, i sve što Quentin treba učiniti je dostaviti im nacrt konstrukcije koja treba biti sklopljena.
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.
Dakle, svi ovi pokusi koje ste vidjeli, sve ove demonstracije, su ostvarene uz pomoć sustava za praćenje kretnji. Međutim, što se događa kada napustite laboratorij i otisnete se u stvaran svijet? I što kada nema GPSa? Primjerice, ovaj robot je opremljen kamerom i laserskim daljinomjerom, laserskim skenerom. I koristi ove senzore kako bi izgradio kartu okruženja. Takva karta sadrži objekte -- poput vrata, prozora, ljudi, namještaja -- i onda robot procjenjuje gdje se nalazi u odnosu na te objekte. Sve bez globalnog koordinatnog sustava (GPS). Koordinatni sustav je definiran robotom, njegovim položajem, i time što promatra. I navođenje se odvija u odnosu na te objekte.
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.
Evo isječka s algoritmima koje je razvio Frank Shen i profesor Nathan Michael koji prikazuje robota kako ulazi u zgradu po prvi puta i stvara kartu u letu. Robot razaznaje objekte i iscrtava kartu (model). Izračunavajući udaljenosti do objekata robot određuje svoj položaj 100 puta u sekundi uz korištenje kontrolnog algoritma koji sam opisao ranije. Dakle ovaj robot zaprima Frankove naredbe sa udaljene lokacije. Ali robot također može samostalno procijeniti gdje treba ići. Recimo da želim poslati robota u zgradu za koju nemam predodžbu o unutrašnjosti. Jednostavno pošaljem robota da kreira kartu (model) i pozovem ga nazad da mi predoči što je zabilježio. Dakle, robot ne samo da rješava problem kako stići od točke A do točke B na ovoj karti, nego i procjenjuje koja je optimalna točka B. U osnovi, robot zna da treba ići prema lokacijama o kojima ima najmanje informacija. I na taj način iscrtava kartu (model).
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.
I da zaključim s još jednom primjenom robota. A postoje i mnoge druge primjene. Ja sam profesor, i kao takav strastven za edukaciju. Ovakvi roboti mogu promijeniti način na koji se odvija nastava. Ali s obzirom da smo u Južnoj Kaliforniji, blizu Los Angelesa, morat ću zaključiti u holivudskom tonu. Neka to bude glazbeni video. Želim predstaviti Alexa i Daniela, kreatore videa.
(Applause)
(Pljesak)
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.
No prije nego prikažemo video, želim napomenuti da su ga snimili u zadnja tri dana nakon poziva od Chrisa (TED kuratora). I roboti koji sviraju na snimci su potpuno samostalni. Vidjet ćete 9 robota kako svira 6 instrumenata. Naravno, eksluzivno za TED 2012. Pogledajmo.
(Sound of air escaping from valve)
(Music)
(Whirring sound)
(Music)
(Glazba)
(Applause) (Cheers)
(Pljesak)