Добро утро. Днес съм тук, за да говоря за автономни, летящи плажни топки. Не, подвижни въздушни роботи, като този. Бих искал да ви разкажа малко за предизвикателствата при изграждането им и за някои от страхотните възможности за прилагане на тази технология. И така, тези роботи са свързани с безпилотните летателни апарати. Обаче, превозните средства, които виждате тук са големи. Те тежат хиляди килограми и в никакъв случай не са подвижни. Дори не са автономни. В действителност, много от тези превозни средства са управлявани от екипажи на самолети, които могат да включват няколко пилоти, оператори на сензори и координатори на мисията.
Good morning. I'm here today to talk about autonomous flying beach balls. (Laughter) 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.
Това, от което се интересуваме е разработването на роботи, като този -- и тук са още две снимки -- на роботи, които можете да си купите от магазина. Това са хеликоптери с четири ротори и те са около един метър големи, и тежат няколко килограма. И така, ние ги оборудваме със сензори и процесори, и тези роботи могат да летят на закрито без GPS.
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.
Роботът, който държа в ръката си е този, и е създаден от двама студенти, Алекс и Даниел. Той тежи малко повече от 45 грама. Консумира около 15 вата мощност. И както можете да видите, е около 20 сантиметра в диаметър. Позволете ми да ви дам един много бърз урок за това как работят тези роботи.
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.
Значи той има четири ротора. Ако завъртите тези ротори със същата скорост, роботът кръжи. Ако увеличите скоростта на всеки един от тези ротори, тогава робота полита, ускорява се. Разбира се, ако роботът е килнат, наклонен по хоризонталата, тогава той се ускорява в тази посока. За да го накараме да се наклони, можем да го направим по два начина. И така, на тази снимка виждате, че ротор четири се върти по-бързо и ротор две се върти по-бавно. И когато това се случи, в един момент роботът се завърта. И обратното, ако увеличите скоростта на ротор три и намалите скоростта на ротор едно, тогава роботът се устремява напред.
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.
И накрая, ако завъртите срещуположната двойка ротори по-бързо от другата двойка, тогава робота се завърта около вертикалната ос. Бордови процесор по същество гледа какви движения трябва да бъдат изпълнени и комбинира тези движения, и изчислява какви команди да се изпратят на двигателите, 600 пъти в секунда. Така, в основни линии, работи това нещо.
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.
Едно от предимствата на този дизайн е, че когато намалявате мащаба на компонентите, роботът естествено става подвижен. И така, тук R е характеристичната дължина на робота. Това всъщност е половината от диаметъра. И има много физически параметри, които се променят, като намалявате R. Този, който е най-важен е инерцията или съпротивлението при движение. Оказва се, че инерцията, която определя ъгловото движение, е пропорционална на пета степен на R. Така че колкото по-малко е R, толкова по-драматично намалява инерцията. Така че като резултат, ъгловото ускорение, обозначено с гръцката буква алфа тук, се описва с едно върху R. То е обратно пропорционално на R. Колкото по-малко го правите, толкова по-бързо можете да завиете.
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.
Това трябва да стане ясно от тези клипове. В долния десен ъгъл виждате робот, изпълняващ 360-градусово преобръщане за по-малко от половин секунда. Множество обръщания, малко повече време. Тук бордовите процесори получават обратна информация от акселерометрите и жироскопите на борда, и изчисляват, както казах преди, команди, 600 пъти за секунда, за да стабилизират този робот. В ляво виждате Даниел, който подхвърля този робот във въздуха. И това ви показва колко солиден е контрола. Без значение как го подхвърля, робота се възстановява и се връща към него.
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.
И така, защо да правим такива роботи? Ами роботи като този имат много приложения. Можете да ги изпратите във вътрешността на сгради като тази, като първа помощ, да търсят нередности, може би да търсят биохимични течове, газообразни течове. Можете да ги използвате, също така, за приложения, като строителството. Това тук са роботи носещи греди, колони и монтиращи кубообразни структури. Ще ви разкажа малко повече за това. Роботите могат да бъдат използвани за транспортиране на товари. Един от проблемите с тези малки роботи е техният капацитет за пренасяне на полезен товар. Така че може да искате да ползвате няколко роботи за носене на полезен товар. Това е картина от неотдавнашен експеримент, който направихме -- всъщност вече не е толкова скорошен -- в Сендай, малко след земетресението. Значи роботи като този могат да бъдат изпратени в срутени сгради, да направят оценка на щетите след природни бедствия, или да бъдат изпратени в сградите на реактори, за да измерят нивата на радиация.
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.
Един основен проблем, който роботите трябва да решат, за да бъдат независими, е по същество да изчислят как да стигнат от точка А до точка Б. Това е малко предизвикателно, защото динамиката на този робот е доста сложна. Всъщност, те живеят в 12-мерно пространство. Така че ние използваме един малък трик. Вземаме това извито 12-мерно пространство и го трансформираме в плоско четиримерно пространство. И това четиримерно пространство се състои от X, Y, Z, и още ъгълът на отклонение от курса.
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.
Така че това, което прави робота е да планира това, което наричаме минимална отсечена траектория. Да ви напомня от физиката, имате позиция, производната -- скорост, после ускорение, после идва рязко движение, и после насечено. Така че този робот минимизира насичането. Така че това, което прави по същество е, че произвежда плавно и грациозно движение. И го прави, докато избягва препятствия. Така че тези минимални траектории на насичане в това плоско пространство после биват трансформирани обратно в това сложно 12-мерно пространство, което роботът трябва да прави за контрол и след това за изпълнение.
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.
Позволете ми да ви покажа няколко примери за това, как изглеждат тези минимални траектории на насичане. И в първото видео, ще видите робот предвижващ се от точка А до точка Б през междинна точка.
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.
Роботът очевидно е в състояние да изпълни която и да е кривообразна траектория. Това са кръгови траектории, при които робота е подложен на около две G. Тук има надземни камери, заснемащи движението отгоре, които указват на робота къде се намира 100 пъти в секунда. Също така му казват къде са препятствията. И пречките могат да се движат. Тук виждате Даниел да хвърля този обръч във въздуха, докато роботът изчислява позицията на обръча и се опитвам да разбере как най-добре да премине през него. Като учени винаги сме обучавани да можем да скачаме през обръчи, за набиране на финансиране за нашите лаборатории, и ние накарахме нашите роботи да направят това.
(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.
(Ръкопляскания)
(Applause)
Друго нещо, което роботът може да прави е да помни части на траектория, която научава или е предварително програмирана. Тук виждате робот, съчетаващ движение, което набира инерция и после променя своята ориентация и след това се възстановява. Той трябва да прави това, защото празнината в прозореца е само малко по-голяма от ширината на робота. Точно както гмурец застава на трамплин и после отскача от него, за да набере скорост, и после прави пирует, две и половина салта и след това грациозно се възстановява, този робот прави по същество това. Той знае как да съчетава различни части от траектории, за да прави тези доста трудни задачи.
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.
Искам да сменя темата. Един от недостатъците на тези малки роботи е размерът им. И ви казах по-рано, че може да се наложи да наемем множество роботи за да преодолеем ограниченията в размера им. Една от трудностите е как да се координират много такива роботи? И тук се обърнахме към природата. Искам да ви покажа клип на пустинни мравки от вид Aphaenogaster в лабораторията на проф. Стивън Прат, които носят предмет. Това всъщност е парче от смокиня. Всъщност ако донесете предмет покрит със сок от смокиня, мравките ще го отнесат обратно в гнездото. Тези мравки нямат централен координатор. Те усещат своите съседи. Няма изрична комуникация. Но понеже усещат съседите си и понеже усещат предмета, те имат косвена координация в рамките на групата.
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.
Така че това е вида координация, която искаме да имат нашите роботи. Така че когато имаме робот, който е заобиколен от съседите си -- и нека да погледнем робот I и робот J -- това, което искаме роботите да правят е да наблюдават разделението между тях, докато летят във формация. И после искате да се уверите, че това разделение е в приемливи нива. Така че отново роботите следят тази грешка и изчисляват контролните команди 100 пъти в секунда, което после се превежда в моторни команди 600 пъти в секунда. Това също така трябва да се прави по децентрализиран начин. Отново, ако имате множество роботи, е невъзможно да се координира цялата тази информация централно, достатъчно бързо за да могат роботите да изпълняват задачата. Освен това роботите трябва да основават своите действия само на локална информация, това, което долавят от техните съседи. И накрая, настояваме, че роботите трябва да са агностици към съседите си. Това е, което наричаме анонимност.
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.
Това, което искам да ви покажа сега е видео на 20 от тези малки роботи, летящи във формация. Те следят позицията на своите съседи. Те поддържат формация. Формациите могат да се променят. Могат да образуват планарни формации, могат да бъдат триизмерни формации. Както можете да видите тук, те се свиват от триизмерна формация в планарна формация. И за да прелитат през препятствия, те могат да адаптират формациите в движение. Така че отново, тези роботи идват наистина близо един до друг. Както можете да видите в този полет, под формата на осмица, те идват на сантиметри един от друг. И въпреки аеродинамичните взаимодействия на тези витла, те са в състояние да поддържат стабилен полет.
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.
(Ръкопляскания)
(Applause)
Така че, след като знаете как да летите във формация, всъщност можете да вдигате обекти в сътрудничество. Това просто ни показва, че можем да удвоим, утроим, учетворим силата на роботите, като просто ги накараме да сътрудничат със съседите си, както можете да видите тук. Един от недостатъците на това е, че като мащабирате нещата -- ако имате много роботи, които носят едно и също нещо, по същество ефективно увеличавате инерцията, и следователно плащате цена за това, те няма да са толкова подвижни. Но печелите по отношение на товароподемността.
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.
Друго приложение, което искам да ви покажа -- отново, това е в нашата лаборатория. Това е работа, направена от Куентин Линдзи, който е студент дипломант. Неговият алгоритъм по същество казва на тези роботи как да изградят самостоятелно кубични структури от подобни на подпори елементи. Алгоритъмът казва на робота каква част да вземе, кога и къде да я постави. В това видео може да видите -- то е ускорено 10, 14 пъти -- виждате три различни структури, изградени от тези роботи. И отново, всичко е автономно, всичко, което Куентин трябва да направи е да им даде проектоплан на дизайна, който иска да построи.
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.
Всички тези експерименти, които видяхте до този момент, всички тези демонстрации, са извършени с помощта на системи заснемащи движението. Какво се случва, когато напуснете вашата лаборатория и излезете навън в реалния свят? И какво, ако има няма GPS? Този робот всъщност е оборудван с камера и лазерен далекомер, лазерен скенер. И използва тези сензори за да изгради карта на обкръжаващата го среда. Тази карта се състои от отличителни белези -- като врати, прозорци, хора, мебели -- и след това той разбира къде е позицията му по отношение на отличителни белези. Така че няма глобална координатна система. Координатна система се определя на базата на робота, къде е и какво търси. И той се придвижва по отношение на тези отличителни предмети.
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.
Искам да ви покажа клип на алгоритми, разработени от Франк Шен и проф. Нейтън Майкъл, който показва този робот да влиза в сграда за първи път и да създава тази карта в движение. После роботът разбира какви са отличителните предмети и изгражда картата. Той определя къде се намира по отношение на отличителните предмети и после изчислява позицията си 100 пъти в секунда, което ни позволява да използваме алгоритмите за контрол, които ви описах по-рано. Този робот всъщност се управлява отдалечено от Франк. Но роботът може също така да разбере къде да отиде самостоятелно. Да предположим, че искам да изпратя това в сграда и нямам представа как изглежда тази сграда, мога да накарам този робот да влезе вътре, да създаде карта и после да се върне и да ми каже как изглежда сградата. Така че тук роботът не само решава проблема, как да отиде от точка А до точка Б в тази карта, но също така определя коя е най-добрата точка Б по всяко време. Така че по същество знае къде да отиде, да търси места, които имат най-малко информация. И по този начин попълва тази карта.
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.
Искам да ви оставя с едно последно приложение. И има много приложения на тази технология. Аз съм професор и ние сме запалени по образованието. Роботи като този наистина могат да променят начина, по който провеждаме образованието от детската градина до 12 клас. Но ние сме в южна Калифорния, близо до Лос Анджелис, така че трябва да приключа с нещо, фокусирано върху развлеченията. Искам да завърша с музикален видеоклип. Искам да ви представя създателите, Алекс и Даниел, които направиха този клип.
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.
(Ръкопляскания)
(Applause)
Преди да ви пусна този клип, искам да ви кажа, че те го създадоха през последните три дни, след като получихме обаждане от Крис. И роботите, които свирят във видеото са напълно автономни. Ще видите девет роботи да свирят на шест различни инструменти. И разбира се, това е направено изключително за TED 2012. Нека да го видим.
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.
(Sound of air escaping from valve)
(Music)
(Whirring sound)
(Музика)
(Music)
(Ръкопляскания)
(Applause) (Cheers)