Решение обратной задачи кинематики для плоского манипулятора

Актуальные проблемы авиации и космонавтики. Информационные технологии

УДК 519.713

С. В. Колесников, Д. С. Новиков Научный руководитель - П. К. Лопатин Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева, Красноярск

РЕШЕНИЕ ОБРАТНОЙ ЗАДАЧИ КИНЕМАТИКИ ДЛЯ ПЛОСКОГО МАНИПУЛЯТОРА

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

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

Часто возникает ситуация, когда необходимо передвинуть МР из одного положения в другое в среде с неизвестными препятствиями и захватить некоторый статичный объект. В [1] предложен алгоритм, позволяющий решить данную задачу за конечное число шагов либо получить обоснованный ответ о том, что цель недостижима. Одной из первых задач указанного алгоритма является формирование целевого множества конфигураций МР, в которых цель физически может быть захвачена имеющимся роботом. Далее целевые конфигурации по очереди проверяются на достижимость, пока не будет найдена первая разрешенная конфигурация из множества целевых, после чего алгоритм успешно завершает свою работу. Если в целевом множестве нет разрешенных конфигураций, то алгоритм завершает свою работу неуспешно.

Рассмотрим задачу формирования целевого множества конфигураций МР. Для начала определим основное требование к целевому множеству: оно должно быть конечным, поскольку иначе алгоритм [1] не сможет завершить свою работу корректно. Для выполнения указанного требования необходимо ввести ограничения на обобщенные координаты для всех сочленений МР. Например, для вращательного сочленения: 0 < q1 < 360 и т. п. Также необходимо ввести дискретность пространства, в котором работает МР, и обеспечить уникальность всех членов целевого множества: конфигурации должны отличаться, по меньшей мере, на один дискрет. Например, конфигурации А = [а1, а2, ... а1 ... ап] и В = [а1, а2, ... а1 + d ... ап], где d - шаг дискретизации пространства, могут одновременно присутствовать в целевом множестве. Множество конфигураций (например, А1 = [1, а2, ... а1 ... ап]) будем называть дочерними для конфигурации В (например, В = [1, Ь2, ... Ь1 + d ... Ьп]), если левая часть

векторов будет совпадать (в примере - первая координата = 1).

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

Критерий перспективности конфигурации МР можно сформулировать так: если для всех сочленений текущей конфигурации МР справедливо неравенство:

где у* ] - координаты точки, которую нужно схватить; у^ - координаты точки, в которой находится текущее (¡-с) сочленение; ~ сумма

длин звеньев МР закрепленных после ]-го сочленения; то конфигурация - перспективная (для нее есть смысл решать прямую задачу кинематики), иначе - можем отбросить эту и все ее дочерние конфигурации.

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

Секция «Математические методы моделирования, управления и анализа данных»

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

Ход модифицированного алгоритма:

1. Организовать перебор по всем возможным конфигурациям МР (например, рекурсивно).

2. Для всех сочленений МР в текущей конфигурации выполнить:

3.1. Предлагаемый критерий выполняется? Если нет - отбросить данную конфигурацию и все ее дочерние - переход на шаг 1. Иначе - переход на шаг 3.2.

3.2. Проверяемое сочленение - последнее? Если нет - рассчитать координаты следующего сочленения и перейти на шаг 2. Иначе - перейти на шаг 3.3.

3.3. Цель может быть захвачена? Если да - добавить текущую конфигурацию в целевое множество и перейти на шаг 1. Если нет - перейти на шаг 1.

Библиографические ссылки

1. Лопатин П. К. Алгоритм захвата манипулятором объекта в неизвестной статической среде // Вестник СибГАУ. Вып. 3(29). 2010. С. 33-37.

© Колесников С. В., Новиков Д. С., 2012

УДК 681.3.06

С. В. Колесников Научный руководитель - П. К. Лопатин Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева, Красноярск

УПРАВЛЕНИЕ МАНИПУЛЯЦИОННЫМ РОБОТОМ В НЕИЗВЕСТНОЙ СРЕДЕ С ПОМОЩЬЮ АЛГОРИТМА А*

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

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

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

Наилучшим алгоритмом для поиска оптимальных путей в различных пространствах является А*. Этот эвристический поиск сортирует все узлы по приближению наилучшего маршрута идущего через этот узел. Типичная формула эвристики выражается в виде

f(n) = g(n) + h(n),

где f(n) - значение оценки, назначенное узлу n; g(n) -наименьшая стоимость прибытия в узел n из точки старта; h(n) - эвристическое приближение стоимости пути к цели от узла n.

Таким образом, этот алгоритм сочетает в себе учет длины предыдущего пути из алгоритма Дийкстры с эвристикой из алгоритма «лучший-первый». Так как некоторые узлы могут обрабатываться повторно (для поиска оптимальных путей к ним позднее) необходимо ввести новый список Closed для их отслежива-ния.А* имеет множество интересных свойств. Он гарантированно находит кратчайший путь, до тех пор пока эвристическое приближение h(n) является допустимым, то есть он никогда не превышает действительного оставшегося расстояния до цели. Этот алгоритм наилучшим образом использует эвристику: ни один другой алгоритм не раскроет меньшее число узлов, не учитывая узлов с одинаковой стоимостью.

На практике А* оказывается очень гибким. Рассмотрим различные части алгоритма. Состоянием зачастую является ячейка или позиция, которую занимает объект. Но при необходимости, состоянием с таким же успехом может быть ориентация и скорость (например, при поиске пути для танка или любой другой машины - их радиус поворота становится хуже при большей скорости).

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