1.3.3 Примерная задача - убраться в комнате!

На всём протяжении этой книги мы будем использовать один и тот же набор задач, который, как мне кажется, хотя и будет понятен большинству людей, всё равно будет представлять серьёзное испытание даже для самого опытного робототехника. Мы будем использовать ИИ и робототехнику, чтобы поднимать игрушки в игровой комнате. Звук, который Вы только что услышали, был вздохом профессиональных инженеров-робототехников и исследователей. Так почему эта задача настолько сложна, и почему она идеально подходит для этой книги?

Эта задача - аналог задачи, которую ставил Amazon для взятия предметов с полок и упаковки их в коробку для последующей отправки Вам. Последние несколько лет Amazon спонсировал Amazon Robotics Challenge, где различные команды были приглашены попробовать взять предмет с полки и положить его в коробку, получив за это денежный приз. Они думали, что эта задача будет достаточно сложной, чтобы пригласить команды со всего мира. Её решила в 2017 году команда из Австралии.

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

Дизайнеры роботов первым делом начинают с определения окружения - где этот робот будет работать? Мы разделим окружение на две категории: структурированное и неструктурированное. В структурированном окружении, как, например, на игровой площадке во время первого соревнования роботов, сборочной линии, в лаборатории, всё происходит в организованном пространстве. Вы, наверное, слышали поговорку Всему своё место - это и есть структурированное окружение. Говоря иначе, мы знаем заранее, что и как будет развиваться. Мы знаем, какого цвета вещи, где они расположены, какой они формы. Такая информация называется предшествующей - это то, что мы знаем заранее. Иногда для робототехники знать окружение заранее очень важно. Роботы на сборочной линии ожидают, что запчасти прибудут к ним с определённого направления и в определённом положении, чтобы их можно было нормально взять и поставить на нужное место. Другими словами, мы изменили мир, чтобы он подходил для нашего робота.

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

Задача робота - ездить по комнате и поднимать игрушку. Давайте разобьём её на шаги:

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

  • После команды на старт, робот должен распознать, что объект является игрушкой, а не стеной, мебелью или дверью

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

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

  • После того, как игрушка оказалась в руке робота, он должен отнести её к коробке. Робот должен распознать коробку в комнате, запомнить её местоположение для серии поездок и переместиться к ней, чтобы положить в неё игрушку. Опять же, для этого может потребоваться больше одной попытки

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

Что мы изучим в этой задаче? Мы будем использовать её как фон для изучения множества способов и техник ИИ. Цель этой книги - научить Вас использовать решения ИИ в робототехнике. Именно процесс и подход являются важной информацией, а не задача и не робот, которого я разработал, чтобы у нас было что сфотографировать для книги. Мы покажем техники, которые помогут движущейся машине обучаться и адаптироваться к окружению. Я надеюсь, что Вы сами выберете, какие главы читать и в каком порядке, основываясь на своих интересах, т.к. каждая глава будем отдельным, не зависящим от других, уроком.

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

Last updated