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.
Шутка. Я расскажу о вот таких быстрых авиароботах. Вы узнаете о проблемах их создания и о некоторых потрясающих возможностях применения этой технологии. Эти роботы — беспилотные летательные аппараты. Однако вот эти транспортные средства довольно большие, весят тысячи килограммов и медленны. Они даже не самоуправляемые. Многие из них управляются командами из нескольких пилотов, операторов аппаратуры и координаторов полёта.
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.
Мы заинтересованы в разработке роботов, которые вы сможете купить в магазине — вот ещё несколько изображений. Это вертолёты с четырьмя несущими винтами. Их длина составляет около метра, а вес — несколько килограммов. Мы устанавливаем датчики и процессоры, и роботы обретают возможность летать в помещении без 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.
В моих руках робот, созданный двумя студентами — Алексом и Даниэлем. Он весит чуть более нескольких десятков граммов и потребляет около 15 Вт энергии. Как вы можете видеть, он около 20 см в диаметре. Позвольте вкратце рассказать вам, как работают эти роботы.
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.
У робота есть 4 несущих винта. Если они вращаются на одной скорости, робот парит в воздухе. Если вы увеличиваете скорость каждого винта, робот ускоряется и летит вверх. Естественно, если робот был наклонён по отношению к горизонту, ускорение будет происходить в этом направлении. Есть 2 способа его наклонить. На этом изображении видно, что винт №4 вращается быстрее, а винт №2 вращается медленнее. Именно это создаёт момент, при котором робот наклоняется. Второй способ таков: увеличиваем скорость вращения винта №3 и уменьшаем скорость вращения винта №1, и робот наклоняется вперёд.
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.
Наконец, если вы вращаете одну противоположную пару винтов с большей скоростью, чем другую, робот вращается по вертикальной оси. Встроенный в робот процессор определяет, какие движения надо выполнить, сопоставляет эти движения и решает, какие команды отправить на винты, посылая 600 команд в секунду. Вот как это работает.
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.
Одно из преимуществ этой модели — её естественная быстрота при уменьшении размеров. R на этом изображении — характерная длина робота. Это половина его диаметра. Множество физических параметров изменяются при уменьшении R. Самый главный из них — это инерция или сопротивление движению. Оказывается, что инерция, регулирующая угловое движение, пропорциональна R в пятой степени. Уменьшая R, мы значительно уменьшаем и инерцию. Угловое ускорение, обозначенное греческой буквой альфа, рассчитывается по формуле 1/R. Оно обратно пропорционально R. Чем оно меньше, тем быстрее вы можете вращаться.
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.
Вот видео, демонстрирующее этот процесс. Внизу справа вы видите робота, выполняющего переворот на 360° менее чем за полсекунды. Несколько переворотов — чуть больше времени. Встроенные процессоры получают информацию от датчиков ускорения и гироскопов на борту. Как я уже сказал, они рассчитывают и посылают 600 команд в секунду, чтобы поддержать устойчивость робота. Слева вы видите, как Даниэль подбрасывает робота в воздух. Посмотрите, насколько надёжен его контроль. Независимо от того, как вы его бросаете, роботу удаётся вернуться в исходное положение.
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.
Для чего нужны такие роботы? У них много областей применения. Мы можем заслать их в здания для поиска злоумышленников, обнаружения биохимических или газообразных утечек. Их можно также использовать в строительстве объектов. Вот роботы, переносящие балки, колонны и создающие кубообразные структуры. Чуть позже я вернусь к этому. Роботов можно использовать для переводки грузов. Недостатком этих маленьких роботов является их полезная грузоподъёмность. Поэтому вам могут понадобиться несколько роботов для работы. Вот недавно проведённый нами эксперимент, хотя он не такой уж и недавний. Это было в Сендае сразу после землетрясения. Роботы могут быть отправлены в разрушенные здания для оценки ущерба после стихийных бедствий; или посланы в заражённые радиацией здания для определения уровня радиации.
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-мерном пространстве. Мы пошли на маленькую хитрость: взяли изогнутое 12-мерное пространство и преобразили его в плоское 4-мерное пространство. 4-мерное пространство состоит из X, Y, Z и угла рыскания.
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.
Задача робота — спланировать минимальную и быструю траекторию. Напомню вам физику: существуют производные позиции — скорость, затем ускорение, а потом рывок и толчок. Робот минимизирует эффект толчка и таким образом делает движения гладкими и изящными. Он также избегает препятствия. Минимальные траектории в плоском пространстве затем преобразуются обратно в сложное 12-мерное пространство, которым робот должен владеть для контроля и выполнения задач.
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.
Позвольте показать вам, как выглядят эти минимальные траектории. В первом видео вы видите, как робот движется из точки А в точку Б через промежуточную точку.
(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.
Роботы, естественно, способны выполнять любые кривые траектории. В этих круговых траекториях ускорение робота равно почти двум g. На борту есть камеры захвата движения, сообщающие роботу его местоположение 100 раз в секунду. Они также указывают ему на препятствия. Препятствия могут перемещаться. Посмотрите, Даниэль подбрасывает обруч, робот рассчитывает положение обруча и вычисляет, как лучше преодолеть его. Учёные часто из кожи вон лезут, добиваясь финансирования своих лабораторий. Поэтому и наши роботы умеют это делать.
(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.
Ещё робот может запоминать заученные или запрограммированные части траектории. Здесь мы видим, как робот сочетает движение, создающее импульс, меняет ориентацию и затем обретает равновесие. Это нужно, потому что проём окна лишь немного шире робота. Ныряльщик на трамплине отталкивается от него, чтобы набрать движущую силу, делает пируэт в два с половиной оборота и затем изящно выпрямляется. По сути, наш робот делает то же самое. Робот знает, как соотнести части траекторий для выполнения сложных задач.
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.
Сменим тему. Одним из недостатков маленьких роботов является их размер. Как я уже отметил, нам может понадобиться множество роботов для решения этой проблемы. Возникает вопрос: как скоординировать их работу? Мы воспользовались примером из природы. В этом видео пустынные муравьи Aphaenogaster переносят объект в лаборатории Стивена Прата. Это кусок фигового дерева. Можете дать им любой объект, покрытый соком инжира, и они отнесут его в муравейник. Эти муравьи не имеют центрального координатора. Они ощущают своих соседей без явной передачи информации. Поскольку они ощущают соседей и ощущают сам объект, в группе происходит неявная координация.
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.
Мы бы хотели, чтобы наши роботы имели именно такую согласованность. Когда у нас есть робот, окружённый соседями — взгляните на роботов I и J — мы хотим, чтобы роботы следили за расстоянием между собой при полёте в строю. Нужно убедиться, что расстояние между ними достаточное. Опять же, роботы отслеживают погрешность и рассчитывают управляющие команды 100 раз в секунду, переводя их затем в 600 моторных команд в секунду. Это должно быть сделано в децентрализованном порядке. Если у вас много роботов, невозможно централизованно скоординировать информацию настолько быстро, чтобы роботы смогли выполнить задачу. К тому же, действия роботов зависят только от местной информации, от их ощущения соседей. Наконец, мы хотим, чтобы роботам было всё равно, кто является их соседом. Именно это мы называем анонимностью.
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.
Сейчас я покажу вам видео 20-ти роботов, выполняющих полёт в строю. Они отслеживают позицию соседей. Они не нарушают строй, даже если их порядок меняется. Структура может быть как плоской, так и трёхмерной. Вы можете видеть, они переходят от трёхмерной структуры к плоской. Для преодоления препятствия роботы адаптируются на лету. Они расположены очень близко друг к другу. При выполнении «восьмёрки», они пролетают в нескольких сантиметрах друг от друга. Несмотря на аэродинамическое взаимодействие их лопастей, они поддерживают стабильный полёт.
(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.
Если роботы умеют летать в строю, они могут и поднимать объекты сообща. Это означает, что мы можем увеличить в 2, 3 или 4 раза силу роботов, заставляя их объединяться с соседями, как вот здесь. Но если мы утяжеляем переносимые предметы, появляются некоторые недостатки: объект несут несколько роботов, поэтому увеличивается инерция, и роботы становятся менее быстрыми — такой исход неизбежен. Но мы выигрываем в плане полезной грузоподъёмности.
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.
Хочу показать вам ещё одну работу нашей лаборатории. Это работа аспиранта Квентина Линдси. Созданный им алгоритм говорит роботам, как самостоятельно строить кубообразные структуры из таких элементов, как балки. Алгоритм сообщает роботу, какую балку взять, где и когда её опустить. Из этого видео, ускоренного в 10 и в 14 раз, видно, как роботы строят 3 разные конструкции. Они полностью автономны, Квентин должен всего лишь дать им план конструкции, которую он хочет построить.
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.
Все увиденные вами эксперименты, все наглядные представления были сделаны с помощью системы захвата движения. Что же происходит, если мы покидаем лабораторию и выходим на улицу, в реальный мир? Как быть, если нет GPS? Этот робот оснащён камерой и лазерным дальномером, лазерным сканирующим устройством. Он использует датчики для построения карты окружающей среды. Карта состоит из таких объектов, как двери, окна, люди, мебель. Она также определяет положение робота по отношению к этим объектам. Это не глобальная система координат. Это система координат, определённая роботом, его положением и ориентацией в пространстве. Он двигается согласно этим показателям.
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.
Хочу показать вам видео алгоритмов, разработанных Франком Шеном и профессором Натаном Майклом. Здесь видно, как робот впервые попадает в здание и на лету создаёт карту местности. Робот определяет объекты вокруг. Он создаёт карту и определяет своё положение по отношению к объектам; он обновляет своё положение 100 раз в секунду, что позволяет нам использовать алгоритмы управления, о которых я вам уже рассказал. Этот робот дистанционно управлялся Франком. Но он также мог решать сам, куда направиться. Предположим, меня отправили исследовать незнакомое мне здание. Я могу заслать туда робота, который создаст карту и сообщит мне, как выглядит здание. Здесь робот не только определяет, как добраться из точки А в точку Б по карте, но также вычисляет лучшую точку Б в каждый момент времени. Он знает, куда направиться для поиска слабоизученных мест. Вот как он заполняет карту.
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)
(Аплодисменты)
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.
Перед просмотром хочу сказать, что они создали его за 3 дня, после того, как им позвонил Крис. Роботы в этом видео полностью самоуправляемы. 9 роботов будут играть на 6-ти музыкальных инструментах. Это сделано специально для TED 2012. Давайте посмотрим.
(Sound of air escaping from valve)
(Music)
(Whirring sound)
(Music)
(Музыка)
(Applause) (Cheers)
(Аплодисменты)