Ю.К. Чеботарева
description
Transcript of Ю.К. Чеботарева
Применение генетических алгоритмов для генерации числовых последовательностей,
описывающих движение, на примере шага вперед человекоподобного робота
Ю.К. ЧеботареваНаучный руководитель: д.т.н., зав. кафедрой "Технологии
программирования", профессор А.А. Шалыто
2009
Санкт-Петербургский государственный университет информационных технологий механики и оптики
Кафедра компьютерных технологий
2
Человекоподобные роботы
Создание человекоподобных роботов – перспективное направление науки
Такие роботы приспособлены для мира людей
Чеботарева Ю.К.Применение генетических алгоритмов для генерации числовых последовательностей, описывающих движение,
на примере шага вперед человекоподобного робота
3
Robocup
Чеботарева Ю.К.Применение генетических алгоритмов для генерации числовых последовательностей, описывающих движение,
на примере шага вперед человекоподобного робота
4
Robotstadium
Webots
Nao Aldebaran Robotics Standard Platform
Чеботарева Ю.К.Применение генетических алгоритмов для генерации числовых последовательностей, описывающих движение,
на примере шага вперед человекоподобного робота
5
Сервомоторы
Чеботарева Ю.К.Применение генетических алгоритмов для генерации числовых последовательностей, описывающих движение,
на примере шага вперед человекоподобного робота
6
Базовые действия роботов
Для создания конкурентоспособной управляющей программы необходим набор базовых действий: Шаг вперед, назад, влево, вправо Поворот влево, вправо Подъем из положения лежа на спине, на
животе
Чеботарева Ю.К.Применение генетических алгоритмов для генерации числовых последовательностей, описывающих движение,
на примере шага вперед человекоподобного робота
7
Описание действий
В одном движении от 10 до 100 и более фаз Для каждой фазы необходимо задать углы
сервомоторов Подобрать вручную практически невозможно Методы, основанные на физике и биомеханике
сложны для реализации
Чеботарева Ю.К.Применение генетических алгоритмов для генерации числовых последовательностей, описывающих движение,
на примере шага вперед человекоподобного робота
8
Пример действия (шаг вперед)
Чеботарева Ю.К.Применение генетических алгоритмов для генерации числовых последовательностей, описывающих движение,
на примере шага вперед человекоподобного робота
И это только 10 фаз из 66 и 5 сервомоторов из 10!Полная информация о движении больше в 12 раз.
#WEBOTS_MOTION V1.0 LHipRoll LHipPitch LKneePitch LAnklePitch LAnkleRoll00:00:000 Pose1 0.027 -0.505 1.042 -0.537 -0.02700:00:040 Pose2 0 -0.524 1.047 -0.524 000:00:080 Pose3 0 -0.524 1.047 -0.524 000:00:120 Pose4 0 -0.523 1.047 -0.524 000:00:160 Pose5 -0.001 -0.523 1.047 -0.524 0.00100:00:200 Pose6 -0.003 -0.523 1.047 -0.524 0.00300:00:240 Pose7 -0.004 -0.523 1.047 -0.524 0.00400:00:280 Pose8 -0.007 -0.522 1.047 -0.525 0.00700:00:320 Pose9 -0.01 -0.522 1.047 -0.525 0.0100:00:360 Pose10 -0.016 -0.521 1.046 -0.526 0.016
9
Постановка задачи
Получить числовую последовательность, описывающую движение робота, такую что при ее использовании робот сохранит равновесие переместится вперед минимально отклонится в сторону
Чеботарева Ю.К.Применение генетических алгоритмов для генерации числовых последовательностей, описывающих движение,
на примере шага вперед человекоподобного робота
10
Сервомоторы для шага вперед
Чеботарева Ю.К.Применение генетических алгоритмов для генерации числовых последовательностей, описывающих движение,
на примере шага вперед человекоподобного робота
11
Алгоритм решения
Генерация движений с использованием генетических алгоритмов Алгоритм кодирования особей в хромосомы Генетические операторы над хромосомами Алгоритм вычисления функции-
приспособленности Критерий останова
Чеботарева Ю.К.Применение генетических алгоритмов для генерации числовых последовательностей, описывающих движение,
на примере шага вперед человекоподобного робота
12
Задание особи (1)
разобьем весь временной
отрезок [0, τ] на n частей аппроксимируем Fi
кубическими сплайнами на каждом из n отрезков
Чеботарева Ю.К.Применение генетических алгоритмов для генерации числовых последовательностей, описывающих движение,
на примере шага вперед человекоподобного робота
)(tFii – полное время движения
13
Задание особи (2)
Имеем полиномы Pij, Каждый полином задан на своем отрезке
[x1,x2]Для задания полинома достаточно
определить Pij(x1), P’ij(x1), Pij(x2), P’ij(x2) Но: т.к. полиномы заданы на смежных отрезках,
то в точке «смежности» x’ Pij-1(x’) =Pij(x’) P’ij-1(x’)=P’ij(x’)
Чеботарева Ю.К.Применение генетических алгоритмов для генерации числовых последовательностей, описывающих движение,
на примере шага вперед человекоподобного робота
],..,1[,10,..,1 nji
14
Задание особи (3)
Тогда для каждого сплайна требуется задать два параметра. Пусть это будут значения в конце соответствующего отрезка
Считаем, что начальное и конечное положение робота заданы и равны (Pi1(0) = Pin(τ))
Исключения: Первый сплайн. Задаем дополнительно P’i1(0) Последний сплайн. Pin(τ) не требуется Итого: хромосома ─ вектор из 10∙2∙n
вещественных чиселЧеботарева Ю.К.
Применение генетических алгоритмов для генерации числовых последовательностей, описывающих движение,на примере шага вперед человекоподобного робота
15
Выбор n
Экспериментально установлено, что 5-6 сплайнов достаточно для приближения функций сервомоторов из стандартного шага вперед
Чеботарева Ю.К.Применение генетических алгоритмов для генерации числовых последовательностей, описывающих движение,
на примере шага вперед человекоподобного робота
16
Создание начального поколения
N случайно сгенерированных особейУчет ограничений на значения
сервомоторов
Чеботарева Ю.К.Применение генетических алгоритмов для генерации числовых последовательностей, описывающих движение,
на примере шага вперед человекоподобного робота
17Отбор особей для следующего поколенияЭлитизмСкрещиваниеМутацияОсоби для скрещивания и мутации
выбираются по принципу рулетки
Чеботарева Ю.К.Применение генетических алгоритмов для генерации числовых последовательностей, описывающих движение,
на примере шага вперед человекоподобного робота
18
Оператор скрещивания
Получает и возвращает две особиОдноточечный оператор скрещивания
n-точечный оператор скрещиванияДругие варианты скрещивания
Чеботарева Ю.К.Применение генетических алгоритмов для генерации числовых последовательностей, описывающих движение,
на примере шага вперед человекоподобного робота
Предки Потомки
19
Мутация
Выбираем один из элементов хромосомы, увеличиваем или уменьшаем на случайное число
Чеботарева Ю.К.Применение генетических алгоритмов для генерации числовых последовательностей, описывающих движение,
на примере шага вперед человекоподобного робота
20Вычисление функции приспособленностиДвижение моделируется в среде WebotsПриспособленность зависит от
времени на протяжении которого робот сохранял равновесие
смещения робота в сторону поворота робота в сторону
Чеботарева Ю.К.Применение генетических алгоритмов для генерации числовых последовательностей, описывающих движение,
на примере шага вперед человекоподобного робота
если робот не упал
21
Критерий останова
Предсказать максимум приспособленности заранее нельзя
Останов, если максимальная приспособленность не менялась на протяжении G поколений
Останов через определенное число поколений
Чеботарева Ю.К.Применение генетических алгоритмов для генерации числовых последовательностей, описывающих движение,
на примере шага вперед человекоподобного робота
22
Результаты
Метод является весьма перспективнымДля числа поколений G = 100 и числа
особей в поколении N = 100 среди лучших особей встречались способные поднять и опустить ногу. При этом слегка сместившись, но сохранив равновесие и не теряя мяч, лежавший перед ними, из виду.
Чеботарева Ю.К.Применение генетических алгоритмов для генерации числовых последовательностей, описывающих движение,
на примере шага вперед человекоподобного робота
23
Спасибо за внимание!
Спасибо за внимание!
Чеботарева Ю.К.Применение генетических алгоритмов для генерации числовых последовательностей, описывающих движение,
на примере шага вперед человекоподобного робота