УДК 519.687.5:519.687.7:004.896
П. В. Ложкин
МЕТОД ТОЧКИ НУЛЕВОГО МОМЕНТА ДЛЯ ЗАДАЧИ ДИНАМИЧЕСКОГО РАВНОВЕСИЯ РТК AR-600 ДВИЖЕНИЕ НА МЕСТЕ
Рассмотрен метод точки нулевого момента. Выведены основные формулы, помогающие оценить нахождение точки ZMP. Рассмотрен вариант применения данного метода на РТК AR-600. Описана последовательность команд для задачи переступания РТК. Приводится вариант внедрения драйверов в robot operating system.
The Method of Zero-moment point is considered. The basic formula to help you find point ZMP are development. A variant of applying this method is considered. The sequence of commands for task biped robotic system are described. A variant of the introduction drivers in Robot Operating System are considered.
Ключевые слова: РТК, робот, двуногое хождение, динамическая стабилизация, равновесие, центр масс, датчик ускорения, AR-600, энкодер, точка нулевого момента, модель стол-тележка.
Key words: robotic system, biped circulation, dynamic stabilization, balance, center of gravity, sensor of acceleration, AR-600, encoder, zero-moment point, ZMP, Cart-table model, Robot Operating System, ROS.
1. Динамическая стабилизация двуногих шагающих устройств
Для создания системы динамической стабилизации двуногих шагающих устройств находится не так много методов. Основные рассмотрены в работе [1]. Наиболее распространенный метод решения задачи динамической стабилизации — метод точки нулевого момента, позволяющего определить, является текущее положение РТК (робототехнического комплекса) устойчивым или нет. Данный метод полагается на датчики усилия в стопах РТК и контур обратной связи, которые помогают приводам корректировать положение робота, постоянно приближая его к теоретической точке равновесия.
2. Метод точки нулевого момента (Zero-moment point)
Метод точки нулевого момента (Zero-moment point, ZMP) используется во многих шагающих двуногих устройствах. Суть метода заключается в нахождении точки ZMP, и если эта точка выходит за пределы поддерживающего многогранника (Support Polygon (SP)), то РТК находится в неустойчивом положении и может упасть, если не предпринять опережающие действия приводами робота.
© Ложкин П. В., 2013
Вестник Балтийского федерального университета им. И. Канта. 2013. Вып. 10. С. 81 — 84.
Определение ZMP [2]: поскольку все силы имеют одинаковый знак по всей поверхности стопы робота, они могут быть сведены к равнодействующей силе FP, точка соприкосновения которой будет на границах стопы. Пусть точка на поверхности стопы, откуда выходит вектор результативной силы FP, обозначается как ZMP.
Наиболее простой моделью для вычисления ZMP является модель стол-тележка (Cart-Table Model). На рисунке 1 представлена упрощенная модель, которая состоит из катающейся тележки и безмассового стола. Тележка имеет массу m и положение (X, Y). Пусть это положение и есть центр масс системы (Center of Mass, CoM). Предполагается, что стол имеет тот же поддерживающий многогранник, что и двуногий робот.
ХСоМ
Рис. 1. Модель стол-тележка
В этой модели крутящий момент т вокруг точки Р можно записать: т = -mg{хСоМ - p) + тхСоМ zCoM,
где g — гравитационная постоянная.
Теперь, используя определение ZMP (т = 0 и xZMP = p), получаем:
XZMP = Р = ХСоМ - Х^ ZCoM . (2^
g
Для Y-направления вывод формулы такой же:
УZMP = Р = VcoM - ZCoM . (2.2)
g
Рассмотрим применение выше описанного метода на РТК AR-600. При неподвижном состоянии датчик ускорения ADIS 16400 установлен в точке центра масс РТК, что позволяет найти ускорение в точке центра масс. При движении робота точка центра масс может незначительно изменяться, для этого необходимо вводить поправки. Также каждый раз будем соединять начало системы координат с точкой
(xCoM, yCoM, 0), что позволит в формулах (2.1) и (2.2) избавиться от
xCoM, yCoM. Остальные параметры для вычисления точки ZMP в каждый момент времени есть. Необходимо, чтобы в каждый момент времени точка ZMP была в поддерживающем многограннике. В качестве страховки поддерживающий многогранник при сравнении с точкой
ZMP сужается. Как только ZMP попадает на границу поддерживающего многогранника, необходимые приводы РТК совершают опережающее воздействие.
3. Robot operating system для задачи динамической стабилизации AR-600
Для создания системы, обеспечивающей динамическое равновесие РТК AR-600, был выбран фреймворк для программирования роботов robot operating system (ROS). ROS обеспечивает стандартные службы операционной системы, такие как аппаратную абстракцию, низкоуровневый контроль устройств, реализацию часто используемых функций, передачу сообщений между процессами и управление пакетами. ROS основан на архитектуре графов, где обработка данных происходит в узлах, получающих и передающих сообщения между собой. Данная система поддерживает два языка программирования: C++ и Python. Для связи с программами высокого уровня (например высокоуровневая система управления, система технического зрения и другие) для AR-600 был создан набор низкоуровневых подпрограмм, обеспечивающих получение информации со всех датчиков робота (абсолютные и инкрементальные энкодеры, датчики усилий на стопах робота, гироскопы, датчики ускорения), реализующие движение всех приводов РТК.
На рисунке 2 показана нижняя часть робота AR-600 со снятым пластиком.
В ROS драйвера располагаются в отдельном стеке AR600_DRIVERS, содержащем несколько пакетов: AR600_SENSORS (набор функций, возвращающих значения с датчиков робота), AR600_MOVING (набор процедур, выполняющих движение и настройку Рис 2* Ноги робота AR-600 параметров РТК), AR600_CONTROL (выходной пакет для стека драйверов).
83
4. Движение РТК AR-600 на месте
Для реализации передвижения робота по поверхности необходимо было реализовать переступание АИ-600 с ноги на ногу на месте. Выбрана следующая последовательность движения приводов.
1. СКОиР_ТРОБ (group_setval ((14,1000,5,-1000,11,1000,8,-1000))) -перенос центра масс робота по оси У на левую ногу (здесь и далее в скобках первое число означает номер привода (номера приводов представлены на рис. 3), второе — <градус поворота привода>х100).
2. GROUP_TPOS (group_setval ((9,-4000,7,1000,10,2000))) — поднятие правой ноги.
3. GROUP_TPOS (group_setval ((9,0,7,0,10,0))) — постановка правой ноги на поверхность.
4. GROUP_TPOS (group_setval ((14,-1000,5,1000,11,-1000,8,1000))) — перенос центра масс робота по оси Y на правую ногу.
5. GROUP_TPOS (group_setval ((3,-4000,13,1000,4,2000))) — поднятие левой ноги.
6. GROUP_TPOS (group_setval ((3,0,13,0,4,0))) — постановка левой ноги на поверхность.
7. GROUP_TPOS (group_setval ((14,0,5,0,11,0,8,0))) — возврат в исходное положение.
На 2-м и 5-м шагах возможна корректировка высоты поднятия ног.
Список литературы
1. Ложкин П. В., Толстель О. В. Создание программно-аппаратного комплекса, обеспечивающего динамическое равновесие и движение РТК AR-600 // Вестник Балтийского федерального университета им. И. Канта. 2013. Вып. 4. С. 110 — 117.
2. Dekker M. H. P. Zero-moment point method for stable biped walking. Eindhoven, July 2009, DCT no.: 2009.072.
Об авторе
Павел Владимирович Ложкин — ведущий инженер УИ ГУ БР по Калининградской области, Калининград.
E-mail: mrrabbit39@gmail.com
About the author
Pavel Lozhkin — chief engineer of Central Bank of Russia.
E-mail: mrrabbit39@gmail.com.