Good morning. I'm here today to talk about autonomous flying beach balls.
Buongiorno. Oggi mi trovo qui per parlarvi
(Laughter)
di palloni da spiaggia che volano da soli.
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.
Scherzo, si tratta di agili robot volanti come questo. Vorrei dirvi delle difficoltà che abbiamo affrontato per costruirli, e di alcune delle incredibili opportunità che questa tecnologia offre. Questi robot sono come gli aeromobili a pilotaggio remoto, solo che questi ultimi sono molto grandi, pesano qualche tonnellata e non sono affatto agili. Non sono nemmeno autonomi. Infatti molti di questi velivoli sono gestiti da personale a terra, tra cui diversi piloti, operatori di sensori e coordinatori di missione.
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.
Quello che a noi interessa nello sviluppare i nostri robot - ecco qui due immagini - è di poterli vendere direttamente in negozio. Qui vediamo degli elicotteri a quattro rotori, lunghi circa un metro e dal peso di qualche chilo. Abbiamo aggiunto sensori e processori per farli volare all'interno di edifici senza l'aiuto del 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.
Il robot che sto tenendo in mano è proprio questo; è stato realizzato da due studenti, Alex e Daniel. Pesa circa mezzo etto e consuma intorno ai 15 watt di corrente. Come potete vedere, ha un diametro di circa 20 centimetri. Ora vi farò una breve dimostrazione del funzionamento del robot.
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.
Ha quattro rotori. Se li fate girare alla stessa velocità il robot rimane sospeso. Se ne aumentate la velocità si alza in verticale. Naturalmente se il robot si trova in posizione orizzontale, l'accelerazione avverrà in quella direzione. Per farlo piegare da un lato, ecco il primo modo per farlo. In questa immagine vedete che il rotore 4 gira più velocemente mentre il 2 è più lento. In questo caso si crea un momento che fa inclinare il robot. Allo stesso modo, se si aumenta la velocità del rotore tre e si riduce quella del rotore uno, il robot si sposta in avanti.
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.
Ed infine, se si fanno girare più velocemente coppie opposte di rotori, il robot si imbarda sull'asse verticale. Dunque il processore del robot analizza, in pratica, i vari movimenti da effettuare e li combina pianificando il tipo di impulsi da inviare ai motori, 600 volte al secondo. Questo è il funzionamento di base.
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.
Uno dei vantaggi del progetto è che, riducendo le dimensioni, il robot ovviamente guadagna in agilità. Qui R indica la lunghezza caratteristica del robot. Di fatto è la metà del diametro. E sono svariati i parametri fisici che cambiano riducendo il fattore R. Quello più importante è l'inerzia o resistenza al movimento. Ne risulta che l'inerzia, che controlla il movimento angolare, diminuisce come quinta potenza di R. Perciò più si riduce R più si riduce l'inerzia, e in modo esponenziale. Il risultato è che l'accelerazione angolare indicata dalla lettera alfa diventa uno fratto R. E' inversamente proporzionale a R. Più la si riduce, più aumenta la rapidità della virata.
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.
Si capisce chiaramente dai video. In basso a destra vedete un robot che fa un giro su se stesso di 360° in meno di mezzo secondo. Per eseguire giri multipli ci vuole un po' di più. Tutte le manovre ricevono un feedback dagli accelerometri e dai giroscopi di bordo, e calcolano i comandi, come vi dicevo, 600 volte al secondo per stabilizzare il robot. A sinistra vedete Daniel che lancia il robot in aria. E vedete quanto il controllo del movimento sia totale. Non importa come lo si lancia, il robot stabilizza la sua traiettoria e torna indietro.
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.
Ma perché costruiamo questi robot? Beh, robot come questi hanno molti impieghi. Potreste inviarli all'interno di edifici come questo come primo intervento per il controllo di intrusi, o magari per cercare delle perdite biochimiche, o di gas. Si possono usare anche per le costruzioni. Qui li vedete trasportare travi, colonne, e assemblare delle strutture cubiche. Vi dirò qualcosa in più su questo. I robot si possono impiegare per trasportare materiali. E uno dei problemi è rappresentato dalla loro modesta capacità di carico. Ma si possono combinare diversi robot per aumentarla. Questa è un'immagine di un nostro recente esperimento - beh, non tanto recente, ormai - condotto a Sendai dopo il terremoto. Questi robot potrebbero volare all'interno di edifici crollati per stimare l'entità dei danni causati da disastri naturali, o in edifici esposti a radiazioni per determinarne il livello di pericolosità.
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.
Il problema fondamentale da risolvere è dare loro autonomia di calcolo per stabilire come spostarsi dal punto A al punto B. Qui le cose si complicano un po' per via dell'intrinseca complessità dinamica dei robot. Infatti si devono spostare in uno spazio a 12 dimensioni. Così ricorriamo a un trucchetto. Prendiamo questo spazio curvo 12-dimensionale e lo trasformiamo in uno a 4 dimensioni. Quest'ultimo è costituito da X, Y, Z, e dall'angolo di imbardata.
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.
Quello che fa il robot è pianificare la traiettoria più breve e veloce. In fisica, come ricorderete, abbiamo posizione, derivata, velocità, poi accelerazione, quindi contrazione e poi scatto. E questo robot minimizza lo scatto. Di fatto produce un movimento lineare e aggraziato. E lo fa evitando eventuali ostacoli. Dunque queste traiettorie a scatto ridotto nello spazio piatto vengono adattate a questo complicato spazio 12-dimensionale, che il robot deve analizzare e poi eseguire.
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.
Lasciate che vi mostri alcuni esempi di questo tipo di traiettoria. Nel primo video vediamo il robot che va da A a B passando per 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.
Ovviamente il robot riesce a eseguire qualsiasi traiettoria curva. Queste sono traiettorie circolari che imprimono accelerazioni di due G. Le microcamere di bordo dicono al robot dove si trova, 100 volte al secondo. E gli indicano la posizione degli ostacoli. Ostacoli che possono muoversi. Qui si vede Daniel mentre lancia un cerchio in aria, e il robot che calcola la posizione del cerchio per scegliere il momento adatto per attraversarlo. Come accademici siamo abituati a fare salti mortali per raccogliere fondi per i nostri esperimenti, ma qui lo facciamo fare ai robot.
(Applause)
(Applausi)
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.
Un'altra cosa che i robot possono fare è memorizzare segmenti di traiettoria pre-programmati o che apprendono da sé. Qui vedete il robot che combina un movimento per prendere velocità, e poi modifica assetto e torna in posizione normale. E' obbligato a farlo perché l'apertura attraverso cui deve passare è di poco più larga del robot. E alla stregua di un tuffatore sul trampolino, che salta per prendere lo slancio sufficiente per eseguire piroetta e doppia capriola, per poi rimettersi in assetto con grazia, anche il robot esegue le sue evoluzioni. Dunque sa combinare piccoli segmenti di traiettoria per eseguire dei compiti alquanto complessi.
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.
Ma passiamo ad altro. Uno degli svantaggi di questi piccoli robot è la loro dimensione. Vi dicevo poc'anzi che sarebbe possibile utilizzare svariati robottini per superare i limiti imposti dalle dimensioni. Ma una delle difficoltà è come coordinare il loro movimento in gruppo. E così abbiamo guardato alla natura. Vorrei mostrarvi un video sulle formiche del deserto, le aphaenogaster, nel laboratorio del Prof.Stephen Pratt, mentre trasportano un oggetto. E' un pezzetto di fico. Basta che qualsiasi oggetto sia ricoperto di succo di fico perché le formiche se lo portino nel loro nido. Queste formiche non hanno un coordinamento centrale. Si basano sulle loro vicine. Nessuna comunicazione esplicita. Ma dato che si relazionano alle vicine e che sono in contatto con l'oggetto, esiste nel gruppo una coordinazione implicita.
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.
Ed è proprio il tipo di coordinazione che serve ai nostri robot. Quindi quando un robot è circondato da altri robot - prendiamo i robot I e J - quello che vogliamo che facciano è monitorare la distanza reciproca mentre volano in formazione. E poi vorrete accertarvi che la distanza rientri in limiti accettabili. Dunque i robot monitorano questo errore e ricalcolano i comandi di controllo 100 volte al secondo, il che si traduce in 600 volte al secondo per i comandi dei motori. E anche questo deve poter essere fatto in maniera decentralizzata. Di nuovo, se fate volare grandi quantità di robot, è impossibile coordinare centralmente tutte le informazioni abbastanza rapidamente da far loro portare a termine il lavoro. Inoltre i robot devono basare le loro azioni solo su informazioni locali, su ciò che percepiscono dai loro vicini. Ed infine vogliamo che i robot siano agnostici nei confronti dei loro vicini. E' ciò che chiamiamo 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.
Ora vi mostrerò un video di 20 piccoli robot che volano in formazione. Controllano la posizione dei loro vicini. Si mantengono in formazione. Le formazioni possono cambiare. Possono essere disposte su un piano orizzontale o tridimensionale. Come potete vedere cambiano formazione, da una tridimensionale ad una orizzontale. E per volare attraverso gli ostacoli riescono rapidamente ad adattare la formazione. E volano a distanza veramente ravvicinata. Come vedete in questo volo a forma di 8, volano a pochi centimetri uno dall'altro. E malgrado le interazioni aerodinamiche delle loro pale, il volo resta stabile.
(Applause)
(Applausi)
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.
E se riescono a volare in formazione saranno anche in grado di sollevare degli oggetti, tutti insieme. Vuol dire che potremo aumentare di due, tre, quattro volte la forza dei robot semplicemente facendoli lavorare insieme ai loro vicini. Uno degli svantaggi è che, con l'aumentare delle dimensioni degli oggetti - e dunque con tantissimi robot che trasportano la stessa cosa - essenzialmente aumenta l'inerzia, e quindi il prezzo da pagare è una minore agilità. Ma si guadagna in termini di capacità di carico.
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.
Vi mostro un'altra applicazione - ancora nel nostro laboratorio. E' il lavoro di ricerca di un neolaureato, Quentin Lindsey. Attraverso il suo algoritmo chiede ai robot di costruire in modo autonomo delle strutture cubiche usando elementi sfusi. Dunque l'algoritmo indica al robot l'elemento da prelevare, quando e dove posizionarlo. In questo video, velocizzato di 10-14 volte, vedete tre strutture differenti che vengono costruite dai robot. E fanno tutto da soli, l'unica cosa che fa Quentin è dar loro una piantina del disegno della costruzione.
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.
Tutti gli esperimenti che avete visto finora, tutte queste dimostrazioni, sono stati realizzati usando sistemi di motion capture. Ma che succede quando uscite dal laboratorio e andate nel mondo reale? E se non avete un GPS? Questo robot dispone di una videocamera e di un cercatore laser H, uno scansionatore laser. Usa questi sensori per creare una mappa dell'ambiente circostante. Nella mappa sono rappresentate porte, finestre, persone, mobilio, e il robot riesce a calcolare la propria posizione rispetto a questi oggetti. Quindi non c'è alcun sistema globale di coordinate. Questo sistema viene definito dallo stesso robot, dalla sua ubicazione e da ciò che vede. E naviga in base a questi parametri.
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.
Ora vi mostrerò un video degli algoritmi sviluppati da Frank Shen e dal Prof. Nathan Michael, in cui un robot entra per la prima volta in un edificio e ne ricrea la mappa mentre si sposta. Quindi il robot analizza le caratteristiche dell'ambiente. Ne realizza una mappa. Calcola la sua posizione rispetto agli oggetti e ricalcola la propria posizione 100 volte al secondo, permettendoci di usare gli algoritmi di controllo che vi descrivevo prima. Dunque questo robot viene di fatto comandato in remoto da Frank. Ma il robot è in grado di capire da solo dove deve andare. Immaginate che debba inviare il robot in un edificio di cui non conosco assolutamente alcuna caratteristica, posso chiedere al robot di entrare, crearne una mappa e tornare da me e dirmi com'è fatto l'edificio. Qui il robot non si limita a risolvere il problema dello spostamento da A a B su questa mappa, ma ricalcola continuamente dove si trovi il miglior punto B. Essenzialmente sa dove andare per cercare i luoghi di cui possiede meno informazioni. Ed è così che arricchisce la sua mappa.
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.
Vi farò vedere un'ultima applicazione. Questa tecnologia ha svariate applicazioni. Noi professori siamo appassionati di sistemi educativi. Dei robot così possono realmente cambiare il metodo educativo scolastico. Ma ci troviamo nella California Meridionale, nei pressi di Los Angeles, dunque devo concludere con qualcosa di divertente. Vi mostrerò un video musicale. Ecco coloro che l'hanno realizzato, Alex e Daniel.
(Applause)
(Applausi)
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.
Ma prima vi voglio dire che l'hanno prodotto in soli tre giorni, dopo aver ricevuto una chiamata da Chris. E i robot che vedrete sono del tutto autonomi. Vedrete nove robot che suonano sei diversi strumenti. Ovviamente l'hanno preparato in esclusiva per TED 2012. Vediamo.
(Sound of air escaping from valve)
(Music)
(Whirring sound)
(Music)
(Musica)
(Applause) (Cheers)
(Applausi)