Научная статья на тему 'Управление манипуляционным роботом в неизвестной среде с помощью алгоритма а'

Управление манипуляционным роботом в неизвестной среде с помощью алгоритма а Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
102
37
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Колесников С.В., Лопатин П.К.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Управление манипуляционным роботом в неизвестной среде с помощью алгоритма а»

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

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

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

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) является допустимым, то есть он никогда не превышает действительного оставшегося расстояния до цели. Этот алгоритм наилучшим образом использует эвристику: ни один другой алгоритм не раскроет меньшее число узлов, не учитывая узлов с одинаковой стоимостью.

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

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

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

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

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

Цель не обязательно должна быть единственной позицией, но может состоять из множества позиций. Тогда приближение должно равняться минимуму приближений ко всем возможным целям. Указание пределов по стоимости пути или по расстоянию, или по обоим признакам может быть легко реализовано. Из моего непосредственного опыта я знаю, что А* хорошо работает для большого числа типов путей в военных играх ^а^ашеБ) и стратегиях.

Существуют ситуации, в которых А* не может работать хорошо по различным причинам. Требования работы в реальном масштабе времени для некоторых игр,

плюс ограничения по памяти и процессорному времени в некоторых из них, создают проблемы для хорошей работы даже для А*. Большая карта может требовать тысячи ячеек в списках Open и Closed, для чего может оказаться недостаточно места. Даже если для них окажется достаточно памяти, алгоритмы для работы с этими списками могут оказаться неэффективными.

Качество работы алгоритма сильно зависит от качества эвристического приближения h(n). Если h близко к истинной стоимости оставшегося пути, то эффективность будет очень высокой, с другой стороны, если h будет слишком низким, то это отразится на эффективности в худшую сторону. На самом деле, алгоритм Дийкстры - это A* с h установленной в ноль для всех узлов - это конечно будет допустимым приближением и этот алгоритм найдет путь, но это будет очень медленно

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

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

1. Кормен Т., Штайн К. Алгоритмы. Построение и анализ. М.: Вильямс, 2005. 1296 с.

2. Макконнел Дж. Основы современных алгоритмов. М. : Техносфера, 2006. 368 с.

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

УДК 62-506.1

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

О НЕПАРАМЕТРИЧЕСКОМ АЛГОРИТМЕ МОДЕЛИРОВАНИЯ НЕЛИНЕЙНЫХ ДИНАМИЧЕСКИХ СИСТЕМ

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

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

Пусть исследуемая нелинейная динамическая система представлена в виде двух последовательно включенных звеньев - линейного динамического и нелинейного статического (модель Винера) [2].

Пусть |и ( ) ,х. | , I = 1,5 - выборка измерений реакции объекта на тестовое входное воздействие и (1).

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

Известно, что реакция системы линейной динамической системы w(t) на входное воздействие иф описывается интегралом Дюамеля [1]:

i Надоели баннеры? Вы всегда можете отключить рекламу.