Создана модель эволюционирующего робота DyRET

Эволюционная модель разработки

Цели

Процесс создания программного обеспечения

Цель настоящей главы – представить основные идеи, лежащие в основе процесса создания программного обеспечения. Прочитав эту главу, вы должны:

q знать основные концепции, лежащие в основе процесса создания ПО и моделей этого процесса;

q иметь представление об основных моделях процесса создания ПО и понимать, когда какую из них использовать;

q знать схему построения моделей процесса формирования требований к ПО, его разработки, тестирования и модернизации;

q иметь понятие о CASE-технологиях, предназначенных для поддержки процесса создания ПО.

Как отмечалось в главе 1, процесс создания программного обеспечения – это множество взаимосвязанных процессов и результатов их выполнения, которые ведут к созданию программного продукта. Процесс создания ПО может начинаться с разработки программной системы “с нуля”, но чаще новое ПО разрабатывается на основе существующих программных систем путем их модификации.

Процесс создания ПО, как и любая другая интеллектуальная деятельность, основан на человеческих суждениях и умозаключениях, т.е. является творческим. Вследствие этого все попытки автоматизировать процесс создания ПО имеют лишь ограниченный успех. CASE-средства (обсуждаются в разделе 3.7) могут помочь в реализации некоторых этапов процесса разработки ПО, но по крайней мере в ближайшие несколько лет не стоит ожидать от них существенного продвижения в автоматизации тех этапов создания ПО, где существенен фактор творческого подхода к разработке ПО.

Одна из причин ограниченного применения автоматизированных средств к процессу создания ПО – огромное многообразие видов деятельности, связанных с разработкой программных продуктов. Кроме того, организации-разработчики используют разные подходы к разработке ПО. Также различаются характеристики и возможности создаваемых систем, что требует особого внимания к определенным сторонам процесса разработки. Поэтому даже в одной организации при создании разных программных систем могут использоваться различные подходы и технологии.

Несмотря на то что наблюдается огромное многообразие подходов, методов и технологий создания ПО, существуют фундаментальные базовые процессы, без реализации которых не может обойтись ни одна технология разработки программных продуктов. Перечислим эти процессы.

1. Разработка спецификации ПО. Это фундамент любой программной системы. Спецификация определяет все функции и действия, которые будет выполнять разрабатываемая система.

2. Проектирование и реализация (производство) ПО. Это процесс непосредственного создания ПО на основе спецификации.

3. Аттестация ПО. Разработанное программное обеспечение должно быть аттестовано на соответствие требованиям заказчика.

4. Эволюция ПО. Любые программные системы должны модифицироваться в соответствии с изменениями требований заказчика.

В данной главе приведен обзор этих процессов, более подробно они рассматриваются в последующих частях книги.

Хотя не существует “идеального” процесса создания ПО, во многих организациях-разработчиках пытаются его усовершенствовать, поскольку он может опираться на устаревшие технологии и не включать лучших методов современной инженерии программного обеспечения. Кроме того, многие организации постоянно используют одни и те же технологии (когда-то ранее хорошо себя зарекомендовавшие) и им также необходимы методы современной инженерии ПО.

Совершенствовать процесс создания программных систем можно разными путями. Например, путем стандартизации, которая уменьшит разнородность используемых в данной организации технологий. Это, в свою очередь, приведет к совершенствованию внутренних коммуникаций в организации, уменьшению времени обучения персонала и сделает экономически выгодным процесс автоматизации разработок. Стандартизация обычно является первым шагом к внедрению новых методов и технологий инженерии ПО.

модель процесса создания программного обеспечения – это общее абстрактное представление данного процесса. Каждая такая модель представляет процесс создания ПО в каком-то своем “разрезе”, используя только определенную часть всей информации о процессе. В настоящем разделе представлены обобщенные модели, основанные на архитектурном подходе. В этом случае можно увидеть всю структуру процесса создания ПО, абстрагируясь от частных деталей отдельных составляющих его этапов.

Эти обобщенные модели не содержат точного описания всех стадий процесса создания ПО. Напротив, они являются полезными абстракциями, помогающими “приложить” различные подходы и технологии к процессу разработки. Кроме того, очевидно, что процесс создания больших систем не является единым, а состоит из множества различных процессов, ведущих к созданию отдельных частей большой системы.

Каскадная модель. Основные базовые виды деятельности, выполняемые в процессе создания ПО (такие, как разработка спецификации, проектирование и производство, аттестация и модернизация ПО), представляются как отдельные этапы этого процесса.

2. Эволюционная модель разработки ПО. Здесь последовательно перемежаются этапы формирования требований, разработки ПО и его аттестации. Первоначальная программная система быстро разрабатывается на основе некоторых абстрактных общих требований. Затем они уточняются и детализируются в соответствии с требованиями заказчика. Далее система дорабатывается и аттестуется в соответствии с новыми уточненными требованиями.

3. Модель формальной разработки систем. Основана на разработке формальной математической спецификации программной системы и преобразовании этой спецификации посредством специальных математических методов в исполняемые программы. Проверка соответствия спецификации и системных компонентов также выполняется математическими методами.

4. Модель разработки ПО на основе ранее созданных компонентов. Предполагает, что отдельные составные части программной системы уже существуют, т.е. созданы ранее. В этом случае технологический процесс создания ПО основное внимание уделяет интеграции отдельных компонентов в общее целое, а не их созданию.

К недостаткам каскадной модели можно отнести негибкое разбиение процесса создания ПО на отдельные фиксированные этапы. В этой модели определяющие систему решения принимаются на ранних этапах и затем их трудно отменить или изменить, особенно это относится к формированию системных требований. Поэтому каскадная модель применяется тогда, когда требования формализованы достаточно четко и корректно. Вместе с тем каскадная модель хорошо отражает практику создания ПО. Технологии создания ПО, основанные на данной модели, используются повсеместно, в частности для разработки систем, входящих в состав больших инженерных проектов.

Эта модель основана на следующей идее: разрабатывается первоначальная версия программного продукта, которая передается на испытание пользователям, затем она дорабатывается с учетом мнения пользователей, получается промежуточная версия продукта, которая также проходит “испытание пользователем”, снова дорабатывается и так несколько раз, пока не будет получен необходимый программный продукт (рис. 3.2). Отличительной чертой данной модели является то, что процессы специфицирования, разработки и аттестации ПО выполняются параллельно при постоянном обмене информацией между ними.

Различают два подхода к реализации эволюционного метода разработки.

1. Подход пробных разработок. Здесь большую роль играет постоянная работа с заказчиком (или пользователями) для того, чтобы определить полную систему требований к ПО, необходимую для разработки конечной версии продукта. В рамках этого подхода вначале разрабатываются те части системы, которые очевидны или хорошо специфицированы. Система эволюционирует (дорабатывается) путем добавления новых средств по мере их предложения заказчиком.

2. Прототипирование. Здесь целью процесса эволюционной разработки ПО является поэтапное уточнение требований заказчика и, следовательно, получение законченной спецификации, определяющей разрабатываемую систему. Прототип* обычно строится для экспериментирования с той частью требований заказчика, которые сформированы нечетко или с внутренними противоречиями.

Достоинством процесса создания ПО, построенного на основе эволюционного подхода, является то, что здесь спецификация может разрабатываться постепенно, по мере того как заказчик (или пользователи) осознает и сформулирует те задачи, которые должно решать программное обеспечение. Вместе с тем данный подход имеет и некоторые недостатки.

1. Многие этапы процесса создания ПО не документированы. Менеджерам проекта создания ПО необходимо регулярно документально отслеживать выполнение работ. Но если система разрабатывается быстро, то экономически не выгодно документировать каждую версию системы.

2. Система часто получается плохо структурированной. Постоянные изменения в требованиях приводят к ошибкам и упущениям в структуре ПО. Со временем внесение изменений в систему становится все более сложным и затратным.

3. Часто требуются специальные средства и технологии разработки ПО. Это вызвано необходимостью быстрой разработки версий программного продукта. Но, с другой стороны, это может привести к несовместимости некоторых применяемых средств и технологий, что, в свою очередь, требует наличия в команде разработчиков специалистов высокого уровня.

Я думаю, что эволюционный подход наиболее приемлем для разработки небольших программных систем (до 100 000 строк кода) и систем среднего размера (до 500 000 строк кода) с относительно коротким сроком жизни. На больших долгоживущих системах слишком заметно проявляются недостатки этого подхода. Для таких систем я рекомендую смешанный подход к созданию ПО, который вобрал бы в себя лучшие черты каскадной и эволюционной моделей разработки.

При таком смешанном подходе для прояснения “темных мест” в системной спецификации можно использовать прототипирование. Часть системных компонентов, для которых полностью определены требования, может создаваться на основе каскадной модели. Другие системные компоненты, которые трудно поддаются специфицированию, например пользовательский интерфейс, могут разрабатываться с использованием прототипирования.

Не нашли то, что искали? Воспользуйтесь поиском:

Искусственная эволюция учит роботов думать

По Дарвину для эволюции необходимо наличие триады “наследственность, изменчивость, отбор”. Эволюционные единицы – организмы, гены – конкурируют друг с другом за ресурс (отбор), победители оставляют более приспособленное потомство (наследственность), которое может отличаться от родителей в ту или иную сторону (изменчивость), предоставляя материал для последующего отбора. Есть, однако, и более тонкие требования, пренебрежение которыми может почти остановить эволюционное развитие. Например, мутации должны быть достаточно малы, чтобы модифицировать, а не кардинально изменять фенотип. Это увеличивает вероятность того, что мутация окажется полезной или хотя бы нейтральной.

“Авида” (Avida) – программа, предназначенная для изучения эволюционных процессов на примере искусственной жизни. В этой программе создается виртуальное пространство, заселенное простыми электронными организмами – авидянами (avidians), которые способны размножаться, случайно мутировать, конкурировать друг с другом за жизненное пространство и, как следствие, эволюционировать.


Увеличить
Рабочее окно программы AVIDA-ED. В центре карта популяции авидян, цветами обозначена относительная приспособленность особей, основанная на умении производить логические операции и быстро размножаться. В правом нижнем углу – график зависимости средней приспособленности популяции от времени.

Может показаться странным, что ученые всерьез рассматривают компьютерные программы как аналоги живых существ. Однако, если присмотреться внимательнее, то окажется, что геном живого существа в определенном смысле мало отличается от компьютерной программы: и то, и другое – это набор инструкций, описывающий поведение своего носителя, живого или электронного.

“Авида” и авидяне

Геном каждого авидянина представляет собой циклический набор из нескольких десятков инструкций, последовательно выполняемый простым виртуальным процессором из двух 32-битных стеков и трех регистров. Весь жизненный цикл каждого авидянина зашифрован в его геноме. Из 26 типов инструкций лишь небольшая часть служит производству себе подобных, большинство же предназначено для логических операций над 32-битными строками, которые система подает на вход каждому авидянину. За выполнение логических операций над этими строками авидяне получают преимущество в скорости размножения. Все логические операции базируются на инструкции И-НЕ (NOT AND), последовательным применением которой можно получить любую другую логическую функцию. Каждый авидянин может за свою жизнь получить награду за одну логическую операцию каждого типа. Чем сложнее операция – тем больше за нее награда.

В каждой популяции первое поколение авидян умеет только размножаться. Через некоторое время за счет случайных ошибок при копировании – мутаций – появляются организмы, выполняющие простейшие логические операции. Эти организмы получают преимущество в скорости размножения и быстро вытесняют остальных из жизненного пространства. Дальнейшая эволюция идет подобным образом, скачкообразно – один из авидян обнаруживает новую логическую операцию, и его получившее преимущество потомство завоевывает мир. Важный результат, полученный создателями “Авиды” состоит в том, что авидяне могут научится сложным логическим операциям только если они получают награду за выполнение более простых. В экспериментах, где выполнение простых операций не награждалось, эволюция никогда не приводила к появлению организмов, способных выполнять сложные операции. То же самое наблюдается в биологической эволюции: любая сложная адаптация, которая не может возникнуть в результате единичной мутации, появляется в результате развития более простых, но тем не менее полезных приспособлений.


Увеличить
Циклический геном и визуализация жизненного цикла одного из авидян. Показана стадия производства новой особи после выполнения всех найденных логических операций.

Классическим примером сложной адаптации в биологической эволюции является глаз. Глаз позвоночного животного – это сложный орган, состоящий из стекловидного тела, хрусталика, светочувствительной сетчатки и отходящих от нее нервов. Каждая из этих частей критически важна для выполнения функции всего органа, однако глаз не мог возникнуть в результате единичной мутации. За его возникновением стоит длинный ряд эволюционных изменений, от простейшего светочувствительного пятна на поверхности тела через наполненное преломляющей жидкостью углубление к полноценному глазному яблоку современных позвоночных. Каждое изменение в этой цепи было полезнее предыдущего и стало возможным только благодаря естественному отбору. Если бы любой упрощенный вариант полноценного глаза был совершенно бесполезен, этот орган никогда бы не смог возникнуть.

Эволюционная теория обладает одним большим недостатком – ее весьма сложно проверить экспериментально. Любой эволюционный эксперимент должен занять тысячи поколений, что даже для быстро размножающихся бактерий эквивалентно годам, а то и десятилетиям. Математическое моделирование позволяет наглядно продемонстрировать верность основных положений теории эволюции, а также проверить допустимость многих теоретических предположений, например особенностей возникновения сложных адаптаций как было сделано в Avida, или механизма “Фишеровского убегания”, ответственного за сверхбыстрое – по эволюционным меркам – развитие новых признаков под воздействием полового отбора. Наглядно демонстрируются также эволюционные последствия полового и бесполого размножения, такие как “храповик Мюллера” – принцип, по которому в геноме популяции бесполо размножающихся особей неизбежно накапливаются вредные мутации.

Как роботы учатся думать?

С точки зрения практического применения искусственной эволюции одним из перспективных направлений является создание программ искусственного интеллекта, в том числе управляющих систем для движущихся роботов. При обычном подходе такие системы требуют сложного проектирования и долгой отладки, так почему бы не поручить эту задачу процессу искусственной эволюции? Если создать достаточно точную компьютерную модель робота, то полученная с ее помощью управляющая система сможет контролировать движения и реального робота. Подобный эксперимент был проведен авторами “Авиды” и оказался успешным: после трансляции генома в инструкции для робота “Румба” тот научился следовать за горящими лампочками.


Домашний робот “Румба”, для которого разрабатывали геном в “Авиде”

Итак, искусственная эволюция может решать не только теоретические, но и прикладные задачи. Среди прочих этим занимаются Кен Стенли (Ken Stanley) и Джефф Клун (Jeff Clune), авторы проектов NEAT (NeuroEvolution of Augmenting Topologies) и HyperNEAT. NEAT/HyperNEAT – это системы обучения нейронных сетей, основанные на эволюционных алгоритмах. Они в полной мере используют принцип “от простого к сложному”, эффективность которого мы рассмотрели, когда говорили об “Авиде”. В NEAT первое поколение нейронных сетей всегда имеет наиболее простую из всех возможных топологий и начинает усложнятся, лишь когда простой структуры оказывается недостаточно для решения задачи. На данный момент HyperNEAT является самым эффективным алгоритмом обучения нейронных сетей, способным за несколько десятков поколений создать работающую сеть из тысяч нейронов, которая может решать сложные задачи вроде игры в шашки или управления движущимся и ориентирующимся в пространстве роботом. Также один из секретов HyperNEAT состоит в использовании “эмбриологического” способа развития: координаты нейронов и связи между ними определяются не напрямую, а с помощью производящих функций, которые и являются аналогом генома. Занимательно то, что NEAT заимствует у живой природы сразу два принципа: эволюционное развитие и принятие решений с помощью нейронных сетей. Эта комбинация оказалась неожиданно эффективной; до NEAT для нейронных сетей применялись принципы “ручного” обучения, а эволюционные программисты пытались работать с прямым машинным кодом.

Автоматическая генерация игрового контента

Одним из практических применений возможностей NEAT является Galactic Arms Race – многопользовательская онлайн-игра и научный эксперимент одновременно.

Игровой процесс вполне обычен: игрок управляет кораблем и сражается с пиратами, пришельцами и другими врагами народа, чтобы перейти на более высокие уровни, развить свои умения и самое главное – обнаружить более мощное оружие и оснастить им свой корабль. Новое оружие появляется в результате эволюции на базе того, из которого игроки стреляли чаще всего, и каждый раз проходит уникальный путь развития. Для этого используется специальная версия NEAT – cgNEAT. В результате создается уникальный игровой контент: игра постоянно меняется, создавая новые варианты оружия, которое понравилось игрокам, превосходящие те, что были раньше.

Цель эксперимента заключается в том, чтобы исследовать возможности технологии интеллектуальной автоматической генерации контента. Смысл автоматической генерации контента в том, чтобы уменьшить нагрузку на разработчиков и вместе с тем сделать игру интереснее для пользователей, дать им чувство новизны и стимул к исследованию игрового мира. Если проект докажет свою жизнеспособность, это может иметь далеко идущие последствия для игровой индустрии.

Предупреждение об авариях

Другое возможное применение NEAT – разработка автоматической системы предупреждения об аварийно-опасных ситуациях. В современном мире одно из самых опасных повседневных занятий – это вождение автомобиля; при этом большинство аварий происходит из-за невнимательности водителей. Снизить число ДТП могло бы устройство, предупреждающее зазевавшегося водителя об опасности, основываясь на данных лазерных дальномеров или видеосигнале следящей за дорогой камеры.

Программу для такого устройства можно создать несколькими способами. Например, привлечь эксперта для формального описания всех возможных опасных ситуаций. У этого подхода есть существенные недостатки. Разработанные алгоритмы могут оказаться неустойчивыми к помехам во входных данных. Более того, статичная картина ситуации на дороге недостаточна для предсказания аварии, а значит система должна помнить историю событий. Но какова должна быть длина этой памяти и какие именно события нужно помнить, оценить очень сложно.

Для решения этой задачи ученые снова обратились к эволюционирующим нейронным сетям. Первая версия предупреждающей системы эволюционировала в виртуальном мире симулятора дорожного движения и быстро научилась предсказывать аварии за несколько секунд до столкновения. Сложность задач в процессе обучения нарастала постепенно: сначала систему научили предсказывать выезд машины на обочину, потом столкновения с неподвижными препятствиями на дороге, и в конце концов – столкновения с другими участниками движения.


Использовавшийся для испытаний робот на колесах (AI GAIA) с установленными лазерными дальномерами SICK LMS-200 и видеокамерой

Аналогичная система, приспособленная для работы с колесным роботом на искусственной трассе, доказала свою адекватность в интерпретации данных, взятых из реального мира.


Увеличить
Пример одного столкновения. Система опиралась на интерпретацию данных с видеозахвата, кадры из которого представлены на изображении. Степень тревоги системы предупреждения показан красными полосками вверху изображения. Несмотря на нечеткость и зашумленность картинки, полученная нейронная сеть научилась надежно предсказывать столкновения.

Нам же остается с нетерпением ждать создания подобных устройств для настоящих автомобилей.

Вездеходный робот учится ходить по разным поверхностям и эволюционирует после падений

Разработка норвежских инженеров из Университета Осло кажется весьма странной. Четвероногий робот DyRET выглядит абсолютно неуклюжим, когда изо всех сил пытается пройтись по новой для него поверхности и не упасть. Но так кажется только на первый взгляд. Постепенно движения устройства становятся всё более уверенными: DyRET начинает передвигаться медленно, но всё более и более умело.

Всё дело в том, что устройство учится, как ходить по различным поверхностям и обучается оно на своих ошибках, своего рода эволюционируя с каждым новым шагом.

Такой навык помогают DyRET адаптироваться к пространству и его изменениям, пишет издание WIRED.

Робототехники по всему миру пытаются решить проблему ориентации устройств в пространстве. И, например, двуногий Cassie или четвероногий SpotMini (недавно мы сообщали о его новых достижениях) кажутся более совершенными по сравнению с DyRET.

Между тем инженеры уверяют: несмотря на кажущееся несовершенство, DyRET уже стал сенсацией в мире современной робототехники. И с каждым новым шагом DyRET мир приближается к настоящим вездеходным роботам.

Как уже отмечалось выше, DyRET является интеллектуальной машиной, адаптирующейся к окружающей среде. Робот способен самостоятельно контролировать свои движения.

Поясним, что обычно роботы передвигаются по заранее закодированным инструкциям. DyRET учится ходить по определённой поверхности, скажем, ковру или даже льду, за счёт метода проб и ошибок. Он приспосабливается к новой окружающей среде (каждый раз разной) благодаря специальным алгоритмам и роботизированным конечностям. Последние автоматически укорачиваются и удлиняются, чтобы изменить центр тяжести робота.

Когда инженеры устанавливают робота на какую-либо поверхность, робот начинает “ощупывать” местность быстрым и неуклюжим топтанием на месте. DyRET пробует использовать различные по длине шаги, и в результате порой может даже потерпеть неудачу и упасть.

Но это и хорошо. Датчик движения DyRET вычисляет, насколько стабильна каждая походка. Он выбирает, какая длина конечностей, угол их сгибания и какой шаг обеспечат наибольшую стабильность роботу. Устройство запоминает это, а затем применяет на практике.

Подобное новшество называется эволюционной робототехникой (evolutionary robotics), и это потенциально может помочь машинам самостоятельно освоить новую местность, не требуя технической поддержки. Например, если речь идёт об изучении других планет, сигнал с Земли до которых может идти очень долго.

Проще говоря, инженерам, помещающим DyRET в новую окружающую среду, не нужно будет детально программировать робота, чтобы сделать его более приспособленным для, скажем, скользкой поверхности. Аппарат самостоятельно адаптирует свой способ передвижения.

“Робот не знает, что мы изменили поверхность. Он просто пытается идти как можно быстрее и стабильнее, учитывая ситуацию, в которой он находится”, — говорит Тённес Нюгорд (Tønnes Nygaard) из Университета Осло.

Чтобы бот мог изменять не только своё поведение, но и конструкцию, каждая из его четырёх конечностей может удлиняться примерно на 12 сантиметров. Попадая на снег, робот научился укорачивать “ноги”, чтобы оптимизировать передвижение. (Оно должно быть одновременно стабильным и не слишком медленным.)

Отмечается, что длинные и быстрые шаги – идеальная “походка” робота, помогающая ему эффективно перемещаться на дальние расстояния. Но, по мере того как батарея садится, он начинает укорачивать свои ноги, дабы не тратить много энергии. Робот попытается компенсировать изменения, перемещаясь более быстро на более коротких конечностях.

Проще говоря, система адаптируется к и изменениям местности, и к изменениям в себе, например, к разряду аккумулятора.

“Когда у него [робота] много энергии, у него более длинные конечности. Когда же батарея разряжается, он их укорачивает, но при это старается увеличить скорость передвижения”, — говорит Нюгорд.

Человек не может постоянно следить за работой роботов, если речь идёт о внедрении их в общество людей. С этой целью инженеры пытаются обучить ботов самостоятельно справляться с каждой ситуацией, в которую они попадают.

Создатели DyRET считают, что их робот сможет работать в качестве посыльного. Одной из главных проблем предыдущих моделей роботов-курьеров являлись резкие изменения в поверхности, из-за чего машины “терялись” и нуждались в помощи со стороны человека, которому приходилось постоянно наблюдать за их работой. Новый робот потенциально не будет иметь подобного недостатка.

DyRET — робот, который учится на своих ошибках

Безголовый робот, чем-то напоминающий аппараты от Boston Dynamics, был создан учеными из Университета Осло. Его особенность заключается в самообучаемости: не умеющего ходить робота бросают в дикую для него среду, в которой он сам разбирается, какие действия приводят к полноценной и правильной ходьбе, пишет Futurism.

По словам разработчиков, их создание способно самостоятельно научиться ходить на самых разных поверхностях: от ледяной корки озера до старого и пыльного ковра. В каждом случае он самостоятельно понимает, как нужно использовать конечности, чтобы идти, а после упорно пробует.

Робот часто падает, но каждое новое падение делает его опытнее. При следующей попытке он уже не совершит старых ошибок. Так будет происходить до тех пор, пока DyRET окончательно и твердо не встанет на свои четыре ноги. Каждая нога, к слову, способна менять свою длину, подстраиваясь под окружающие условия.

На робота установлен специальный модуль, который фиксирует каждый успешный шаг, каждое правильное сгибание одного из его механических суставов. Эти последовательности запоминаются и на их основе робот развивается дальше. Ранее похожий проект, но только в виртуальной среде представила Google. Ее ИИ DeepMind самостоятельно научился бегать и преодолевать препятствия. Виртуальные модели также были оснащены конечностями и сенсорами, которые и позволили ИИ понять, какие действия оказываются самыми выигрышными при прохождении полосы препятствий.

Исследователи называют свой подход эволюционной робототехникой, объясняя этот тем, что фактически с каждым новым падением робот действительно эволюционирует.

При этом подходе машинам не нужны явно запрограммированные последовательности действий. Вместо этого роботы и их ПО сами подстраиваются под окружающую среду, и, очевидно, что этот подход более универсальный. Но, стоит признать, что пока робот команды все равно выглядит очень неуверенно. И с задачей перемещения по местности те же робособаки от Boston Dynamics справляются лучше.

Еще один стартап — Preferred Networks — работает над тем, чтобы роботы самостоятельно принимали решение и учились думать. Компания готовит к запуску систему на основе глубокого обучения, которая научит промышленных роботов мыслить.

Вездеходный робот учится ходить по разным поверхностям и эволюционирует после падений

Новый робот-вездеход справится с любой дорогой.

Разработка норвежских инженеров из Университета Осло кажется весьма странной. Четвероногий робот DyRET выглядит абсолютно неуклюжим, когда изо всех сил пытается пройтись по новой для него поверхности и не упасть. Но так кажется только на первый взгляд. Постепенно движения устройства становятся всё более уверенными: DyRET начинает передвигаться медленно, но всё более и более умело.

Всё дело в том, что устройство учится, как ходить по различным поверхностям и обучается оно на своих ошибках, своего рода эволюционируя с каждым новым шагом.

Такой навык помогают DyRET адаптироваться к пространству и его изменениям, пишет издание WIRED.

Робототехники по всему миру пытаются решить проблему ориентации устройств в пространстве. И, например, двуногий Cassie или четвероногий SpotMini (недавно мы сообщали о его новых достижениях) кажутся более совершенными по сравнению с DyRET.

Между тем инженеры уверяют: несмотря на кажущееся несовершенство, DyRET уже стал сенсацией в мире современной робототехники. И с каждым новым шагом DyRET мир приближается к настоящим вездеходным роботам.

Как уже отмечалось выше, DyRET является интеллектуальной машиной, адаптирующейся к окружающей среде. Робот способен самостоятельно контролировать свои движения.

Поясним, что обычно роботы передвигаются по заранее закодированным инструкциям. DyRET учится ходить по определённой поверхности, скажем, ковру или даже льду, за счёт метода проб и ошибок. Он приспосабливается к новой окружающей среде (каждый раз разной) благодаря специальным алгоритмам и роботизированным конечностям. Последние автоматически укорачиваются и удлиняются, чтобы изменить центр тяжести робота.

Когда инженеры устанавливают робота на какую-либо поверхность, робот начинает “ощупывать” местность быстрым и неуклюжим топтанием на месте. DyRET пробует использовать различные по длине шаги, и в результате порой может даже потерпеть неудачу и упасть.

Но это и хорошо. Датчик движения DyRET вычисляет, насколько стабильна каждая походка. Он выбирает, какая длина конечностей, угол их сгибания и какой шаг обеспечат наибольшую стабильность роботу. Устройство запоминает это, а затем применяет на практике.

Подобное новшество называется эволюционной робототехникой (evolutionary robotics), и это потенциально может помочь машинам самостоятельно освоить новую местность, не требуя технической поддержки. Например, если речь идёт об изучении других планет, сигнал с Земли до которых может идти очень долго.

Проще говоря, инженерам, помещающим DyRET в новую окружающую среду, не нужно будет детально программировать робота, чтобы сделать его более приспособленным для, скажем, скользкой поверхности. Аппарат самостоятельно адаптирует свой способ передвижения.

“Робот не знает, что мы изменили поверхность. Он просто пытается идти как можно быстрее и стабильнее, учитывая ситуацию, в которой он находится”, — говорит Тённес Нюгорд (Tønnes Nygaard) из Университета Осло.

Чтобы бот мог изменять не только своё поведение, но и конструкцию, каждая из его четырёх конечностей может удлиняться примерно на 12 сантиметров. Попадая на снег, робот научился укорачивать “ноги”, чтобы оптимизировать передвижение. (Оно должно быть одновременно стабильным и не слишком медленным.)

Отмечается, что длинные и быстрые шаги – идеальная “походка” робота, помогающая ему эффективно перемещаться на дальние расстояния. Но, по мере того как батарея садится, он начинает укорачивать свои ноги, дабы не тратить много энергии. Робот попытается компенсировать изменения, перемещаясь более быстро на более коротких конечностях.

Проще говоря, система адаптируется к и изменениям местности, и к изменениям в себе, например, к разряду аккумулятора.

“Когда у него [робота] много энергии, у него более длинные конечности. Когда же батарея разряжается, он их укорачивает, но при это старается увеличить скорость передвижения”, — говорит Нюгорд.

Человек не может постоянно следить за работой роботов, если речь идёт о внедрении их в общество людей. С этой целью инженеры пытаются обучить ботов самостоятельно справляться с каждой ситуацией, в которую они попадают.

Создатели DyRET считают, что их робот сможет работать в качестве посыльного. Одной из главных проблем предыдущих моделей роботов-курьеров являлись резкие изменения в поверхности, из-за чего машины “терялись” и нуждались в помощи со стороны человека, которому приходилось постоянно наблюдать за их работой. Новый робот потенциально не будет иметь подобного недостатка.

Вездеходный робот учится ходить по разным поверхностям и эволюционирует после падений

Разработка норвежских инженеров из Университета Осло кажется весьма странной. Четвероногий робот DyRET выглядит абсолютно неуклюжим, когда изо всех сил пытается пройтись по новой для него поверхности и не упасть. Но так кажется только на первый взгляд. Постепенно движения устройства становятся всё более уверенными: DyRET начинает передвигаться медленно, но всё более и более умело.

Всё дело в том, что устройство учится, как ходить по различным поверхностям и обучается оно на своих ошибках, своего рода эволюционируя с каждым новым шагом.

Такой навык помогают DyRET адаптироваться к пространству и его изменениям, пишет издание WIRED.

Робототехники по всему миру пытаются решить проблему ориентации устройств в пространстве. И, например, двуногий Cassie или четвероногий SpotMini (недавно мы сообщали о его новых достижениях) кажутся более совершенными по сравнению с DyRET.

Между тем инженеры уверяют: несмотря на кажущееся несовершенство, DyRET уже стал сенсацией в мире современной робототехники. И с каждым новым шагом DyRET мир приближается к настоящим вездеходным роботам.

Как уже отмечалось выше, DyRET является интеллектуальной машиной, адаптирующейся к окружающей среде. Робот способен самостоятельно контролировать свои движения.

Поясним, что обычно роботы передвигаются по заранее закодированным инструкциям. DyRET учится ходить по определённой поверхности, скажем, ковру или даже льду, за счёт метода проб и ошибок. Он приспосабливается к новой окружающей среде (каждый раз разной) благодаря специальным алгоритмам и роботизированным конечностям. Последние автоматически укорачиваются и удлиняются, чтобы изменить центр тяжести робота.

Когда инженеры устанавливают робота на какую-либо поверхность, робот начинает “ощупывать” местность быстрым и неуклюжим топтанием на месте. DyRET пробует использовать различные по длине шаги, и в результате порой может даже потерпеть неудачу и упасть.

Но это и хорошо. Датчик движения DyRET вычисляет, насколько стабильна каждая походка. Он выбирает, какая длина конечностей, угол их сгибания и какой шаг обеспечат наибольшую стабильность роботу. Устройство запоминает это, а затем применяет на практике.

Подобное новшество называется эволюционной робототехникой (evolutionary robotics), и это потенциально может помочь машинам самостоятельно освоить новую местность, не требуя технической поддержки. Например, если речь идёт об изучении других планет, сигнал с Земли до которых может идти очень долго.

Проще говоря, инженерам, помещающим DyRET в новую окружающую среду, не нужно будет детально программировать робота, чтобы сделать его более приспособленным для, скажем, скользкой поверхности. Аппарат самостоятельно адаптирует свой способ передвижения.

“Робот не знает, что мы изменили поверхность. Он просто пытается идти как можно быстрее и стабильнее, учитывая ситуацию, в которой он находится”, — говорит Тённес Нюгорд (Tønnes Nygaard) из Университета Осло.

Чтобы бот мог изменять не только своё поведение, но и конструкцию, каждая из его четырёх конечностей может удлиняться примерно на 12 сантиметров. Попадая на снег, робот научился укорачивать “ноги”, чтобы оптимизировать передвижение. (Оно должно быть одновременно стабильным и не слишком медленным.)

Отмечается, что длинные и быстрые шаги – идеальная “походка” робота, помогающая ему эффективно перемещаться на дальние расстояния. Но, по мере того как батарея садится, он начинает укорачивать свои ноги, дабы не тратить много энергии. Робот попытается компенсировать изменения, перемещаясь более быстро на более коротких конечностях.

Проще говоря, система адаптируется к и изменениям местности, и к изменениям в себе, например, к разряду аккумулятора.

“Когда у него [робота] много энергии, у него более длинные конечности. Когда же батарея разряжается, он их укорачивает, но при это старается увеличить скорость передвижения”, — говорит Нюгорд.

Человек не может постоянно следить за работой роботов, если речь идёт о внедрении их в общество людей. С этой целью инженеры пытаются обучить ботов самостоятельно справляться с каждой ситуацией, в которую они попадают.

Создатели DyRET считают, что их робот сможет работать в качестве посыльного. Одной из главных проблем предыдущих моделей роботов-курьеров являлись резкие изменения в поверхности, из-за чего машины “терялись” и нуждались в помощи со стороны человека, которому приходилось постоянно наблюдать за их работой. Новый робот потенциально не будет иметь подобного недостатка.

Машинная эволюция: в Кембридже создали робота, который создаёт других роботов, улучшая их с каждым поколением Материал редакции

Исследователи Кембриджского университета и Швейцарской высшей технической школы Цюриха (ETH Zürich) разработали «робота-мать», который может создавать других роботов и учиться на своих ошибках. Об этом сообщается на официальном сайте Кембриджского университета.

«Робот-мать» собирает «роботов-детей» из пластиковых кубиков, оборудованных моторами. По завершении процесса она выбирает из «потомства» самое приспособленное «чадо» и следующее поколение создаёт с учётом его сильных сторон.

По словам профессора Фумии Ииды (Fumiya Iida) из инженерного отдела Кембриджского университета, целью эксперимента было создание роботов, которые могут ускорить процесс оптимизации и создания инноваций в определённых областях. В теории такие машины смогут самостоятельно разрабатывать другие машины для конкретных задач лучше, чем это делают люди.

Роботы обычно создаются для выполнения повторяющихся действий и для массового производства взамен массовой кастомизации. Мы надеемся, что машина сможет стать изобретателем. [. ] Наш робот действительно способен создавать то, что не умеем мы.

Фумия Иида, профессор Кембриджского университета

В каждом поколении «робот-мать» создаёт пять партий кубических «роботов-детей». При этом она считает лучшим того «потомка», который способен более быстро передвигаться.

Чтобы воспроизвести эволюционный процесс, учёные создали для «роботов-детей» аналог генома — код, содержащий информацию о форме машины и команды для её мотора. По словам учёных, «робо-эволюция» следует тем же принципам, что и настоящая: новые гены получается в результате мутации (случайные изменения в коде) и получения новых комбинаций из уже существующих фрагментов.

По итогам каждого поколения «мать» проверяет, насколько быстро каждый из её «детей» проходит расстояние из точки «А» в точку «В», после чего берёт за основу «геном» самого быстрого из них. В результате экспериментов, проводимых в Кембридже, машине удавалось заметно увеличивать скорость своего потомства за несколько итераций.

На создание одного робота у «матери» уходит около часа. Непрерывно работать она может только в течение суток.

По словам Фумии Ииды, в ближайшее время университет планирует применить свою технологию в строительстве, где быстрая адаптация к окружающим условиям может играть важную роль. Иида также рассматривает возможность автоматической разработки смартфонов и автомобилей.

Источники:
http://zoom.cnews.ru/rnd/article/item/iskusstvennaya_evolyutsiya_uchit_robotov_dumat
http://glob-news.ru/2018/05/22/vezdehodnyi-robot-ychitsia-hodit-po-raznym-poverhnostiam-i-evolucioniryet-posle-padenii/
http://hightech.plus/2018/05/21/dyret-robot
http://nauka.vesti.ru/article/1048220
http://glob-news.ru/2018/05/22/vezdehodnyi-robot-ychitsia-hodit-po-raznym-poverhnostiam-i-evolucioniryet-posle-padenii/
http://tjournal.ru/flood/55931-robot-building-robot
http://moluch.ru/archive/99/22143/

Ссылка на основную публикацию