МОДЕЛИРОВАНИЕ ЦИКЛИЧЕСКИХ ПРОЦЕССОВ ПРИ ПЕРЕДВИЖЕНИИ ДВУНОГОГО РОБОТА
Р.А. Алексеев
Рассматривается разработка алгоритмов и последующее моделирование ходьбы двуногого робота с использованием методов траекторного планирования и согласованного управления. Формулируются локальные задачи управления, которые сводятся к простым задачам стабилизации задачно-ориентированных координат. Ключевые слова: двуногая ходьба, траекторная стабилизация, нелинейное управление, сочленения звеньев.
Введение
Двуногая ходьба предпочтительна там, где обстановка не позволяет маневрировать громоздкой четырёх- или шестиногой платформе, а сложный характер поверхности (ступени, неровности, щербины, трещины и проч.) не даёт возможности применять колёсный способ передвижения. Она может применяться [8-28] в роботах сферы обслуживания, домашнего хозяйства, при работе в различных человеческих пространствах, производственных помещениях, шахтах, тоннелях, в том числе в опасных или вредных для людей зонах. Разработка антропоморфных шагающих механизмов является интересным направлением в робототехнике. Любое устройство такого типа состоит из цельной или составной верхней части - корпуса, платформы с оборудованием, торса с руками (манипуляторами), кабины с оператором и некоторого количества механических ног (педипуляторов). Главной особенностью таких устройств является удержание равновесия и перемещение с помощью двух конечностей. В процессе движения на каждом полушаге одна из механических ног является опорной, а другая маховой. Шагающие движения робота это некий циклический алгоритм. При его функционировании происходит попеременное переключение опорного и махового режима между левой и правой ногами. Отрыв ноги от поверхности без потери равновесия можно осуществлять, когда вертикальная проекция центра масс аппарата проходит сквозь стопу другой ноги. Движения робота принято разделять на движения в продольной (сагиттальной) плоскости и движения в поперечной (латеральной) плоскости. Движения в поперечной плоскости служат лишь для поддержания устойчивости. Основные движения производятся в продольной плоскости, поэтому многие разработчики на первых порах рассматривают лишь продольное движение, на макете блокируя боковое движение неким устройством поддержки, которое жёстко удерживает робота от падений в стороны, но при этом совершенно не мешает ему падать по курсу (вперёд или назад) [10-11]. Т. о. мы можем перейти к рассмотрению плоского продольного движения.
1. Направление деятельности
Ранее [1], опираясь на последовательную семизвенную кинематическую цепь (рис. 1), нам удалось реализовать согласованное управление движением ног робота на протяжении двух фаз ходьбы (половинного шага робота). Однако для того чтобы затем промоделировать шаг другой ногой требовалась перестройка структуры модели по ходу процесса. Рассмотрим это подробнее. Пусть в первой половине шага (правой ногой) опорной была левая нога, т. е. первым звеном была левая ступня, а первым, и при том -неуправляемым, поворотным шарниром - угол между плоскостью ступни и поверхностью грунта. В таком случае - последним (свободным) звеном являлась правая ступня. Тогда в другой половине шага (левой ногой) опорной становится прежде свободная правая нога. Кинематическая цепь мгновенно должна быть перестроена в обратном порядке, т. е. от свободного конца к закреплённому концу. Такая мгновенная перестройка сопряжена с некоторыми трудностями, причём не столько в теории - не очень
сложно в нужный момент из каждого а; получить -а;, сколько при моделировании и дальнейшей практической реализации: - Как мгновенно зафиксировать текущие параметры, определённым образом изменить их значение, а затем продолжить процесс? Выйти из сложившейся ситуации было можно, если параллельно использовать две модели, т. е. первая из которых построена начиная от правой ступни, а другая от левой ступни. В этом случае если одна из моделей (ведущая) двигается по определённому закону управления, то другая (ведомая) в перевёрнутом виде дублирует действия первой. Но в момент переключения ведущая модель должна стать ведомой, а ведомая при этом стать ведущей. И здесь становится проблемной организация подобного переключения с одновременным изменением направления передачи данных и сохранением текущих значений переменных состояния. Следует заметить, что физической сущностью это переключение не обусловлено. Кроме того, модель должна была стать громоздкой и замедлить работу с ней. Тогда было решено построить новую, универсальную для всех фаз движения, модель в относительной системе координат с начальной точкой отсчёта вблизи центра масс робота. В рассматриваемой семизвенной структуре это должно быть звено туловища (или торса). Как видно из рисунка 1 мы имеем две цепочки из трёх звеньев: бедро, голень, стопа. Здесь нет неуправляемых (неактуированных) степеней свободы, каким является угол между стопой и поверхностью опоры в первоначальной модели с точкой отсчёта в носке передней ноги.
Уб
Рис. 1. Кинематическая схема робота, построенная от носка опорной ноги 2. Идея согласованного управления в четырёх формулах
Пусть ц - вектор переменных состояния размерности [и*1]. Каналы управления независимы и нормированы: (& = и . Тогда задача управления ставится посредством вектора условий Ф(ф, который может содержать отклонения е и скорости ж, определяемые через ц.
е чАд)
£ у(д)_
= Ф(д)
(1).
Замечание: В частности это могут быть условия согласования вида: <р(д) = 0. Теперь требуется найти закон управления вида:
а) е = —Ке (2а), обеспечивающий минимизацию отклонений е и
б) я = V * (2б), обеспечивающий требуемую скорость движения ж.
Диффе
ренцируя (1) имеем задачно-ориентированную модель (рис. 2):
е
дФ .
-Ч
дд
(3).
Отсюда (3) можно получить управление:
и = д =
( дФ^—1
кдЧ у
(4).
Рис. 2. Общая структура системы траекторного управления
3. Относительность движения
Поскольку в данной модели начальная точка кинематической схемы связана не с землёй, а с перемещающимся относительно неё туловищем, то нельзя рассматривать скорость движения относительно земли Ук. Но здесь следует вспомнить, что всякое движение относительно. И можно использовать не скорость перемещения корпуса робота относительно поверхности, а скорость перемещения поверхности, цепляемой ступнями относительно принятой начальной точки. Сначала в модели можно просто отбросить опору и представить, что робот неподвижно закреплён своей верхней частью и перебирает ногами в воздухе. А затем можно ввести в модель поверхность, которую робот будет как бы „прокручивать" под собой с некоей заданной скоростью Vg = -Vк.
4. Построение базовой модели
В общем виде кинематический объект управления из п звеньев описывается следующей системой векторно-матричных уравнений:
Ч = Ви (5а)
< а = ЯЧ (5 б)
У = Ка) (5в )
Здесь и [п*1] - вектор управлений, q [п*1] - вектор углов поворота приводов, а [п*1] - вектор абсолютных углов поворота звеньев, у [п*2] - вектор координат конечных точек звеньев, В [п*п] - матрица входов системы, Я [п*п] - матрица перехода от относительных углов к абсолютным, И [п*2] - матрица пересчёта угловых координат в линейные.
В случае полного разделения (независимости) каналов приводов матрица В является диагональной B=diag{bi}, состоящей из коэффициентов передачи Ь,, , = 1,п. Матрица Я для случая одной кинематической цепочки является нижней диагональной матрицей, все элементы которой - единицы. Матрица пересчёта координат к определяется выражением
а) = у' + Tтz , а в подробном виде рекуррентная процедура вычисления элементов матрицы к выглядит таким образом:
т У1 т У 2 ' К' к т У22 2 У1 + " ZlTTT (а1)" z 2 тт а
уг п к _ 2 _ Уп-1 _ _гТТ2 (ап )_
(6),
где т (а) =
матрица вращения,
с°8(а,) 8т(а,) - 8т(аг) с°8(а)_
а zi = [ zi2 ] - вектор протяжённости 1-го звена в координатах этого звена.
Выражения (5) для переменных 1-го звена (см. рис. 3) имеют следующий вид:
Ч i = В,и, i
а =Е Чу
3=1
уТ = уТ-1 + zT ■ тт (а,)
где , = 1, п
(7а) (7б) (7в)
и Ч г Ч а
—П В гН [ \ц Я К(-)
У
Рис. 3
Структурная схема объекта
5. Описание модели
Рассмотрим теперь кинематическую схему шагающего аппарата, где закреплённой частью является торс (рис. 4). При таком подходе не имеет значения, какая из ног опирается на грунт: левая, правая, сразу обе или ни одна. Две трёхзвенные кинематические цепочки, соответствующие красной и синей ногам, могут быть описаны согласно системе (5):
' Чк = Вик
< а = яч к Ук = Как)
Чс = Ви и ас = Яч с Ус = Кас)
Здесь индексы к и с обозначают принадлежность к красной и синей ногам соответственно. Распишем кинематическую модель по звеньям:
УК = У 0 + тт « у к у к = у К + Тт (а 2 )/ к
у К = у К + тт к )/ 3
уС = у 0 + Тт (а С )1С
у 2 = У С + tt (а 2 )l 2
у3С = у2 + Тт (а| )l3С
«Г = qкl a 2 = q1К + q 2
а зк = qК + q 2 + q зк
ас = qcl а 2 = qlc + q 2 а 3С = qlc + q 2 + q зс
где: уг- - координаты конца 1-го звена; 1=1.. .3;
" /,
- протяжённость звена по продольной (/¿у) и поперечной (/¿2) координа-
/, =
I
там.
Поскольку у звеньев отсутствует поперечная протяжённость /¿2=0.
Язк Яз
Рис. 4. Кинематическая схема шагающего механизма, построенная от туловища
6. Концепция ходьбы
Изучив различные алгоритмы ходьбы можно отметить [2, 8-13, 16, 20-28]:
1. Перемещение приставным шаганием (шаг одной ногой, затем приставление другой ноги) снижает скорость общего перемещения механизма;
2. Использование безопорной фазы („фазы полёта") в цикле шага связано со сложностью определения координат всего робота в этой фазе;
3. Двухфазный алгоритм проще трёхфазного по реализации и в нём меньше сопряжений (переключений режимов);
с
4. Фазы с отсутствием горизонтального движения торса относительно земли существенно снижают общую скорость робота;
5. Остановки движения торса в какой либо фазе ходьбы приводят к рывкам при движении массивной верхней части, что существенно снижает устойчивость походки;
6. Полное распрямление маховой ноги перед отрывом и при касании поверхности существенно усложняет процесс управления ходьбой из-за возможного заклинивания приводов в распрямлённом положении;
7. Циклическое вертикальное перемещение торса в цикле ходьбы тоже ослабляет устойчивость походки и расходует лишнюю энергию.
Теперь излагаем основные положения желаемого алгоритма ходьбы (см. рис. 5):
1. Для сохранения роботом статического равновесия, горизонтальная проекция его центра масс должна проходить через поверхность опоры;
2. Цикл одиночного шага должен состоять из двух фаз - переступания с задней ноги на переднюю (двухопорной) и перемещения маховой ноги вперёд на шаг (одноопорной);
3. Для избежания рывков в обеих фазах движения массивный торс должен сохранять свою горизонтальную скорость постоянной;
4. Не допускаются распрямления маховой ноги перед отрывом и при касании поверхности, во избежание неоднозначности отработки траекторий;
5. Торс не должен иметь вертикального движения, так как оно ослабляет устойчивость походки и расходует лишнюю энергию.
Рис. 5. Две фазы движения (перенос опорной нагрузки и переставление ноги)
7. Планирование траекторий
Алгоритм движения робота содержит три группы условий: Опорная нога и корпус в обеих фазах движения:
1. Стопа опорной ноги горизонтальна
2. Высота таза над поверхностью постоянна
3. Корпус движется горизонтально Маховая нога в фазе переступания:
1. Носок не перемещается по горизонтали
2. Носок опирается на поверхность
3. Ноги движутся в противоходе Маховая нога в фазе шага:
1. Пятка движется по наклонной
2. Носок перемещается на шаг
УС31 = С2 ,
У32 = С3 ,
ч1 + чк = й;
У22 =-кУС21 + Ь , У331 = 3УК,
3. Носок описывает дугу косинуса у3С2 = -А • созт»^).
Здесь С1 =-30(2 + >/3) - вертикальная координата стопы; ¥к = 1 - скорость продольного перемещения корпуса; с2 = 0 - горизонтальная координата носка; с3 =-30(2 + л/3) - вертикальная координата носка; Q1 = 5п/6 - суммарный угол положений обоих бёдер; к = 0,25 и Ь = 3,75 - угол наклона и высота нисходящей траектории; А = 6 -высота подъёма носка; т = 2ж¥к/Ьш = 2п/60 - частота одиночного шага; где Ьш=60 -длина шага.
8. Создание системы условий движения
Введём задачно-ориентированные координаты - отклонения е={е}, где г = 1, к и пути s={si}, где г = 1,1. Общее число условий для каждой фазы движения должно быть равно числу звеньев механизма (числу степеней свободы) к +1 = п, в данном случае п = 3+3 = 6.
Фаза переступания:
е1 У 22 С1
е2 = У32 — С1
* = У 21 = К
е3 = + - Q1
_ с
е3 = у 31 — С 2
с
е4 = У 32 — С1
Фаза шага:
е1 У 22 С1 е2 = У 32 — С1
= У 21 = К
е6 = кУ 2С1 + У 2С2 - Ь
* 2 = У С = 3Кк
е7 = У 32 - А 008(туС1)
Значения параметров: с1 = 30(2 + л/э); с2 = 0; Ук=1; Q1=п/2; к=0,25; Ь=3,75; А=6; т=ж/30.
Совокупность этих уравнений может быть записана в компактной форме системы
е
= Ф( У,а, я)
(8).
9. Постановка задачи и синтез управления
Задача управления [2-5, 8] состоит в минимизации вектора отклонений е (задача (а)) и стабилизации вектора проходимого пути s за единицу времени, т. е. удержания вектора требуемых скоростей V = * (задача (б)). Процедура синтеза предусматривает получение модели движения в декартовых координатах, преобразование к задачно-ориентированным координатам, а затем синтез управлений, обеспечивающих решение задач (а) и (б).
Дифференцируя уравнения прямой кинематики (7б)-(7в) и подставляя (7а) получаем:
УТ = УТ-1 + Т(а )Е=УТ-1 + гТд • та )Е=УТ-1 + гТви • 2тг т(а )е
т. е.
УТ = УТ-1 + 2Тт (а)ЕгТви
(9),
где
Е =
0 1 -1 0
или в компактной форме
у = О У (а)Ви
(10),
где
Оу (а) =
ду да .
■ ч
да дч
Дифференцируя уравнение (8) получаем задачно-ориентированную модель робота
или
дФ
дФ
—Оу (а) Я + —
ду дд
= О(д,а, у)и
Ви
(11)
(12),
где введены обозначения
дФ дФ
О О (а)Я + —
ду у дд
и
и = Ви.
Следуя стандартной методике согласованного управления [3-6, 8], осуществим преобразование управления по формуле:
и„
О(д, а, у)и = и перепишем модель (12) в виде
(14),
е и
= е
£ и
£ _
(13)
где
ие - вектор управлений по отклонениям е, из - вектор управлений по перемещениям ж.
Выбирая
и„ = —Ке
и, = V
где
получаем
(15а), (15б),
K=diag{ki},
к>0 — коэффициенты обратной связи,
е = — Ке (16а),
, = V (16б),
что обеспечивает минимизацию отклонений е и поддержание требуемых скоростей продольного движения V, т. е. решение задач (а) и (б).
Для нахождения вектора управляющих воздействий системы и, воспользуемся выражениями (13) и (14) и получим:
ги„
и = О— (д,а, у)
и = В 1и
(17)
(18)
Структурная схема системы управления (рис. 6) состоит из объекта управления (5), блока получения отклонений ei (8), обратного преобразования управлений (17)-(18), задатчи-ка продольной скорости (16б) и регулятора отклонений (16а).
и
£
V*
и
и
Общая часть системы
1 и в-1 и Я а м-) ¡ш,
X гН в —И 1 Ц к Г1 Ф
1___ Я 1 У
У
о "Чо
У
С (•)
Задачная часть системы
-К
е
Рис. 6. Структурная схема системы управления двуногим роботом
Замечание: Содержание общей части системы остаётся неизменным для любых условий. Содержание же задачной части системы зависит от конкретных условий согласования Ф.
10. Схема моделирования
Для проверки алгоритмов ходьбы на программном продукте Ма1ЬаЬ 4.0 81шиНпк 1.2 была создана модель, построенная по блочному принципу для удобства её использования и перенастройки на различные алгоритмы (рис. 7). В модели чётко прослеживается симметрия, обусловленная одинаковостью систем управления правой и левой конечностями. Также легко можно выделить блоки относящиеся к приводам сочленений, переходу от угловых координат к линейным, заданию условий согласования или желаемых траекторий, обратному переходу от траекторных управлений к канальным, расчёту управляющих сигналов и, наконец, переключателей режимов одноопорной и двухопорной фаз.
Рис. 7. Полная схема моделирования двуногого робота
11. Разные алгоритмы управления и их моделирование
Обозначим фазы движения для любой из двух ног: А - опорная нога, Б1 - маховая нога в фазе переступания, Б2 - маховая нога в фазе шага.
Движение без отрыва носка маховой ноги от грунта
А: Vl=Г; е1=у22-(-Ь); е2=уз2-(-к); Бь ез=Чк+Чс+5п/6; V2=-1; е4=-уз--Ь); Б^ ез=0,34у21+у22-5,12+И; V2=3; е4=-уз2-(-Ь);
А: О =
у1 + у3 у3 0 у2 + у4 у4 0 0 0 1
; Б: О =
1 0 0
у1 + у3 + у5 у3 + у5 у5 у2 + у4 + у6 у4 + у6 у6
Приведённые ниже и далее траектории точек сочленений (рис. 8, 9, 10) получены при моделировании нескольких шагов в абсолютных координатах (относительно неподвижной поверхности ходьбы) - рисунки а) и в относительных координатах (относительно самого робота) - рисунки б).
а б
Рис 8. Траектории сочленений при движении без отрыва носка маховой ноги от грунта
Движение носка маховой ноги по дуге косинуса
А: Vl=1; е1=у22-(-Ь); е2=уз2-(-Ь); Бь ез=Чк+Чс+5п/6; V2=-1; е4=-уз2-(-Ь);
у1 + у3 у3 0
Б^ ез=0,з4у21+у22-5,12+к; V2=3; е4=-2*соэ(уз1п/55)+уз2-(-к); А: О =
у2 + у4 у4 0
0
0 1
Бь О =
1
0
0
у1 + у3 + у5 у3 + у5 у5 у2 + у4 + у6 у4 + у6 у6
; Б2: О =
1 0 0 у1 + у3 + у5 у3 + у5 у5 у2 + у4 у4 0
Рис 9а Рис. 9б
Траектории сочленений при движении носка маховой ноги по дуге косинуса Семейство траекторий (рис. 9б) получено при изменении Ьс от 2 до 18 с шагом 2.
Движение носка маховой ноги по дуге окружности
А: Vl=Г; е1=у22-(-Ь); е2=уз2-(-Ь); Бь ез=Чк+Чс+5п/6; V2=-1; е4=-уз2~(-Ь); Б^ ез=0,з4у21+у22-5,12+И; V2=3; е4= (уз1-7.5)2+(уз2+г-ЪсЩ2-г2; где г = (/2 + 4йс2)/(8йс); /=45; кс=15;
у1 + у3 у3 0] Г 1 0
А: О = у2 + у4 у4 0 ; Б: О = у1 + у3 + у5 у3 + у5 у5
0 0 1 у2 + у4 + у6 у4 + у6 у6
Рис. 10а Рис. 10б
Траектории сочленений при движении носка маховой ноги по дуге окружности Семейство траекторий (рис. 10б) получено при изменении Ьс от 2 до 16 с шагом 2.
По траекториям узловых точек в неподвижной системе координат (рис. 8б, 9б, 10б) можно получить длину шага, которая совпадает с требуемой на всём участке движения. Скорость горизонтального перемещения торса относительно земли постоянна и не имеет рывков и замедлений. При получении траекторий в собственной системе координат робота (рис. 8а, 9а, 10а, 11а) основной задачей является обеспечение цикличности движения педипуляторов. Поскольку траектория получилась замкнутая и не имеющая отклонений даже в крупном масштабе (рис. 11 б) в течение достаточно большого числа циклов с участием обоих конечностей можно заключить, что цикличность алгоритма обеспечена.
Рис. 11а Рис. 11 б
Траектории движения точек сочленений в мелком (а) и крупном (б) масштабах, построенные относительно торса (подвижная система координат)
13. Направление дальнейшей деятельности
Построенную систему управления можно охарактеризовать положительно, т. к. она хорошо определяет положения звеньев, быстро отрабатывает заданный режим управления и легко переключается между этими режимам. Недостатком изложенного подхода к модели робота является неопределённость ориентации отсчётного звена - торса и положения не всегда ровного и горизонтального грунта. Но их можно уточнить с помощью показаний тактильных датчиков, расположенных по четырём углам каждой стопы и датчика вертикали на корпусе. Также по показаниям нагруженных тактильных датчиков следует производить переключение из одноопорной в двухопорную фазу, а обратное переключение производить при достижении пересечения вертикальной проекцией центра масс площади ступни. Ранее рассмотренное переключение по времени следует исключить как менее надёжное и не всегда своевременное, особенно на сложном грунте.
Далее требуется ввести динамику в модель. От простейших представлений приводов, как интеграторов следует перейти к виду апериодического звена, затем к более сложной структуре двигателя постоянного тока с волновой зубчатой передачей, и, наконец, учесть моментное взаимовлияние звеньев.
Литература
[1] Р. А. Алексеев, И. В. Мирошник. Алгоритмы управления движением шагающего робота. -Научно-технический вестник ЛИТМО №19, СПб., 2005
[2] М. Вукобратович. Шагающие роботы и антропоморфные механизмы. - М.: Мир, 1976
[3] И. В. Мирошник. Согласованное управление многоканальными системами. — Л.: Энерго-атомиздат, 1990
[4] И. В. Мирошник, В. О. Никифоров Методы координации в задачах планирования и управления пространственным движением манипуляционных роботов. СПб.: Наука, 1998
[5] И. В. Мирошник, В. О. Никифоров и АЛ. Фрадков. Нелинейное и адаптивное управление сложными динамическими системами. - СПб.: Наука, 2000
[6] И. В. Мирошник. Нелинейные системы. Анализ и управление. — СПб.: ЛИТМО (ТУ), 2002
[7] Механика промышленных роботов. Кн. 1. Е. И. Воробьёв, О. Д. Егоров, С. А. Попов. Расчёт и проектирование механизмов. - М.: Высшая школа, 1988
[8] A. Albert. Intelligente Bahnplanung und Regelung für einen autonomen, zweibeinigen Roboter. -VDI-Fortschrittberichte, Reihe 8, Nr. 927, VDI-Verlag, Düsseldorf, 2002
[9] T. Asfour, K. Berns, J. Schelling and R. Dillmann. Programming of manipulation tasks of the hu-manoid robot ARMAR. IEEE Int. Conf. Advanced Robotics, Tokyo, Oct. 1999
[10] C. Canudas de Wit, B. Espiau, C. Urrea. Orbital Stabilisation of underactuated mechanical systems. - 15th triennial World Congress of IFAC, Barcelona, 2002
[11] C. Chevallereau, G. Abba, Y. Aoustin, F. Plestan, E. R. Westervelt, C. Canudas-de-Wit and J. W. Grizzle. RABBIT: A Testbed for Advanced Control Theory. - IEEE Cont. Systems Mag., v. 23, #5, Oct. 2003,pp. 57-79
[12] Y. Fujimoto, A. Kawamura. Simulation of an Autonomous Biped Walking Robot Including Environmental Force Interaction. - IEEE Robotics & Automation Mag., v. 5, #2, June 1998, pp 33-41
[13] A. Ijspeert, J. Nakanishi and S. Schaal. Movement imitation with nonlinear dynamical systems in humanoid robots. IEEE ICRA, Washington, May 2002, pp. 1398-1403
[14] Kajita, S. and Tani, K., An analysis of experimentation of a biped robot Meltran II. Proc. of 3rd International Workshop on Advanced Motion Control (UC Berkeley), pp.417-420, 1993
[15] S. Talebi, M. Buehler and E. Papadopoulos. Towards Dynamic Step Climbing For A Quadruped Robot with Compliant Legs
[16] www.ai.mit.edu/projects/cog
[17] www.aist.go.jp/MEL/soshiki/robot/undo/kajita-e.html
[18] www.chabin.laurent.free.fr
[19] www.fzi.de/divisions/ipt/WMC/preface/walking_machines_katalog.html
[20] www.havingasoftware.nl/robots/BiPed/BiPed.htm
[21 ] www.honda.co.jp/home/hpr/e_news/robot/index.html
[22] www.inrialpes.fr/bipop/principale.html
[23] www.irt.uni-hannover.de
[24] www.jsk.t.u-tokyo.ac.jp/research/saika/index.html
[25] www.polycosmos.org/android/protoand.htm
[26] www.scg.dees.unict.it/index.htm
[27] www.shadow.org.uk/index.stm
[28] www.shirai.info.waseda.ac.jp/humanoid