Планирование движения , также планирование пути (также известное как задача навигации или задача перемещения пианино ) — вычислительная задача по поиску последовательности допустимых конфигураций, которая перемещает объект из исходной точки в конечную. Термин используется в вычислительной геометрии , компьютерной анимации , робототехнике и компьютерных играх .
Например, рассмотрим навигацию мобильного робота внутри здания к удаленной точке маршрута. Он должен выполнить эту задачу, избегая стен и не падая с лестницы. Алгоритм планирования движения будет принимать описание этих задач в качестве входных данных и выдавать команды скорости и поворота, отправляемые на колеса робота. Алгоритмы планирования движения могут быть направлены на роботов с большим количеством сочленений (например, промышленные манипуляторы), более сложными задачами (например, манипулирование объектами), различными ограничениями (например, автомобиль, который может двигаться только вперед) и неопределенностью (например, несовершенные модели окружающей среды или робота).
Планирование движения имеет несколько приложений в робототехнике, таких как автономность , автоматизация и проектирование роботов в программном обеспечении САПР , а также приложения в других областях, таких как анимация цифровых персонажей , видеоигры , архитектурное проектирование , роботизированная хирургия и изучение биологических молекул .
Основная задача планирования движения заключается в вычислении непрерывного пути, соединяющего начальную конфигурацию S и целевую конфигурацию G, избегая при этом столкновения с известными препятствиями. Геометрия робота и препятствия описывается в 2D или 3D рабочем пространстве , в то время как движение представляется в виде пути в (возможно, более многомерном) конфигурационном пространстве .
Конфигурация описывает позу робота, а конфигурационное пространство C — это набор всех возможных конфигураций. Например:
Набор конфигураций, избегающих столкновения с препятствиями, называется свободным пространством C free . Дополнение C free в C называется препятствием или запрещенной областью.
Часто бывает непозволительно сложно явно вычислить форму C free . Однако проверка того, находится ли данная конфигурация в C free , эффективна. Во-первых, прямая кинематика определяет положение геометрии робота, а обнаружение столкновений проверяет, сталкивается ли геометрия робота с геометрией окружающей среды.
Целевое пространство — это подпространство свободного пространства, которое обозначает, куда мы хотим, чтобы робот переместился. При глобальном планировании движения целевое пространство наблюдается датчиками робота. Однако при локальном планировании движения робот не может наблюдать целевое пространство в некоторых состояниях. Чтобы решить эту проблему, робот проходит через несколько виртуальных целевых пространств, каждое из которых находится в пределах наблюдаемой области (вокруг робота). Виртуальное целевое пространство называется подцелью.
Пространство препятствий — это пространство, в которое робот не может переместиться. Пространство препятствий не является противоположностью свободного пространства.
Задачи малой размерности можно решать с помощью сеточных алгоритмов, которые накладывают сетку поверх конфигурационного пространства, или геометрических алгоритмов, которые вычисляют форму и связность C free .
Точное планирование движения для многомерных систем при сложных ограничениях вычислительно неразрешимо . Алгоритмы потенциального поля эффективны, но становятся жертвой локальных минимумов (исключением являются гармонические потенциальные поля). Алгоритмы на основе выборки избегают проблемы локальных минимумов и решают многие проблемы довольно быстро. Они не способны определить, что не существует пути, но у них есть вероятность отказа, которая уменьшается до нуля по мере увеличения затраченного времени. [ необходима цитата ]
Алгоритмы, основанные на выборке, в настоящее время [ когда? ] считаются передовыми для планирования движения в многомерных пространствах и применяются к задачам, имеющим десятки или даже сотни измерений (роботы-манипуляторы, биологические молекулы, анимированные цифровые персонажи и шагающие роботы ).
Подходы на основе сетки накладывают сетку на конфигурационное пространство и предполагают, что каждая конфигурация идентифицируется точкой сетки. В каждой точке сетки роботу разрешено перемещаться в соседние точки сетки, пока линия между ними полностью содержится в C free (это проверяется с помощью обнаружения столкновений). Это дискретизирует набор действий, и алгоритмы поиска (например, A* ) используются для поиска пути от начала до цели.
Эти подходы требуют установки разрешения сетки. Поиск быстрее с более грубыми сетками, но алгоритм не сможет найти пути через узкие части C free . Кроме того, количество точек на сетке растет экспоненциально в измерении конфигурационного пространства, что делает их неподходящими для задач высокой размерности.
Традиционные подходы на основе сетки создают пути, изменения направления которых ограничены кратными заданному базовому углу, что часто приводит к неоптимальным путям. Подходы планирования пути с любым углом находят более короткие пути, распространяя информацию вдоль краев сетки (для быстрого поиска) без ограничения их путей краями сетки (для поиска коротких путей).
Подходы на основе сетки часто требуют многократного поиска, например, когда знания робота о пространстве конфигурации изменяются или само пространство конфигурации изменяется во время следования по пути. Алгоритмы инкрементального эвристического поиска быстро перепланируют, используя опыт предыдущих похожих задач планирования пути, чтобы ускорить поиск текущей.
Эти подходы похожи на подходы поиска на основе сетки, за исключением того, что они генерируют мощение, полностью покрывающее пространство конфигураций вместо сетки. [1] Мощение разлагается на два подмощения X − ,X + , сделанные с помощью коробок, таких что X − ⊂ C free ⊂ X + . Характеризация C free сумм для решения задачи инверсии множеств . Таким образом, интервальный анализ может быть использован, когда C free не может быть описан линейными неравенствами, чтобы иметь гарантированное ограждение.
Таким образом, роботу разрешено свободно перемещаться в X − и он не может выходить за пределы X + . Для обоих подмощений строится граф соседей, и пути могут быть найдены с помощью таких алгоритмов, как Дейкстра или A* . Когда путь возможен в X − , он также возможен в C free . Когда не существует пути в X + от одной начальной конфигурации до цели, у нас есть гарантия, что не существует допустимого пути в C free . Что касается подхода на основе сетки, интервальный подход не подходит для задач высокой размерности из-за того, что количество генерируемых ящиков растет экспоненциально по отношению к размерности конфигурационного пространства.
Иллюстрацией служат три рисунка справа, на которых крюк с двумя степенями свободы должен двигаться слева направо, избегая двух горизонтальных небольших сегментов.
Николя Делану показал, что разложение с подмостями с использованием интервального анализа также позволяет охарактеризовать топологию C free , например, подсчитать количество его связных компонентов. [2]
Роботы-указатели среди многоугольных препятствий
Перемещение объектов среди препятствий
Как выбраться из здания
Учитывая пучок лучей вокруг текущего положения, приписанный их длине, ударяющейся о стену, робот движется в направлении самого длинного луча, если только не идентифицирована дверь. Такой алгоритм использовался для моделирования аварийного выхода из зданий.
Один из подходов заключается в том, чтобы рассматривать конфигурацию робота как точку в потенциальном поле, которое сочетает притяжение к цели и отталкивание от препятствий. Результирующая траектория выводится как путь. Этот подход имеет преимущества в том, что траектория создается с небольшим количеством вычислений. Однако они могут попасть в локальные минимумы потенциального поля и не найти путь или могут найти неоптимальный путь. Искусственные потенциальные поля можно рассматривать как уравнения континуума, подобные электростатическим потенциальным полям (рассматривая робота как точечный заряд), или движение через поле можно дискретизировать с помощью набора лингвистических правил. [3] Навигационная функция [ 4] или вероятностная навигационная функция [5] являются видами искусственных потенциальных функций, которые обладают качеством отсутствия точек минимума, кроме целевой точки.
Алгоритмы на основе выборки представляют конфигурационное пространство с дорожной картой выбранных конфигураций. Базовый алгоритм выбирает N конфигураций в C и сохраняет их в C free для использования в качестве вех . Затем строится дорожная карта, которая соединяет две вехи P и Q, если отрезок линии PQ полностью находится в C free . Опять же, обнаружение столкновений используется для проверки включения в C free . Чтобы найти путь, соединяющий S и G, они добавляются в дорожную карту. Если путь в дорожной карте связывает S и G, планировщику это удается, и он возвращает этот путь. Если нет, причина не определена: либо в C free нет пути , либо планировщик не выбрал достаточно вех.
Эти алгоритмы хорошо работают для многомерных конфигурационных пространств, поскольку в отличие от комбинаторных алгоритмов их время выполнения не (явно) экспоненциально зависит от размерности C. Они также (как правило) существенно проще в реализации. Они являются вероятностно полными, то есть вероятность того, что они дадут решение, приближается к 1 по мере того, как тратится больше времени. Однако они не могут определить, существует ли решение.
Учитывая основные условия видимости на C free , было доказано, что по мере увеличения числа конфигураций N вероятность того, что указанный выше алгоритм найдет решение, экспоненциально приближается к 1. [6] Видимость не зависит явно от размерности C; возможно иметь высокоразмерное пространство с «хорошей» видимостью или низкоразмерное пространство с «плохой» видимостью. Экспериментальный успех методов, основанных на выборках, предполагает, что наиболее часто встречающиеся пространства имеют хорошую видимость.
Существует множество вариантов этой базовой схемы:
Планировщик движения считается полным , если планировщик за конечное время либо выдает решение, либо правильно сообщает об отсутствии решения. Большинство полных алгоритмов основаны на геометрии. Производительность полного планировщика оценивается по его вычислительной сложности . При математическом доказательстве этого свойства необходимо убедиться, что это происходит за конечное время, а не только в асимптотическом пределе. Это особенно проблематично, если во время определенного метода доказательства возникают бесконечные последовательности (сходящиеся только в предельном случае), поскольку тогда, теоретически, алгоритм никогда не остановится. Интуитивные «трюки» (часто основанные на индукции) обычно ошибочно считаются сходящимися, что они делают только для бесконечного предела. Другими словами, решение существует, но планировщик никогда не сообщит о нем. Следовательно, это свойство связано с полнотой по Тьюрингу и в большинстве случаев служит теоретической основой/руководством. Планировщики, основанные на подходе грубой силы, всегда полны, но реализуемы только для конечных и дискретных установок.
На практике завершение алгоритма всегда можно гарантировать, используя счетчик, который допускает только максимальное количество итераций, а затем всегда останавливается с решением или без него. Для систем реального времени это обычно достигается с помощью сторожевого таймера , который просто убивает процесс. Сторожевой таймер должен быть независим от всех процессов (обычно реализуется низкоуровневыми процедурами прерываний). Однако асимптотический случай, описанный в предыдущем абзаце, таким образом не будет достигнут. Он сообщит о лучшем из найденных им на данный момент (что лучше, чем ничего) или об отсутствии такового, но не сможет правильно сообщить, что его нет. Все реализации, включая сторожевой таймер, всегда неполны (за исключением того, что все случаи могут быть оценены за конечное время).
Полнота может быть обеспечена только очень строгим математическим доказательством корректности (часто с помощью инструментов и методов на основе графов) и должна выполняться только специализированными экспертами, если приложение включает в себя контент безопасности. С другой стороны, опровергнуть полноту легко, поскольку нужно просто найти один бесконечный цикл или один неверный результат. Формальная проверка/корректность алгоритмов — это отдельная область исследований. Правильная настройка этих тестовых случаев — весьма сложная задача.
Полнота разрешения — это свойство, при котором планировщик гарантированно найдет путь, если разрешение базовой сетки достаточно хорошее. Большинство планировщиков с полным разрешением основаны на сетке или интервале. Вычислительная сложность планировщиков с полным разрешением зависит от количества точек в базовой сетке, которое равно O(1/h d ), где h — разрешение (длина одной стороны ячейки сетки), а d — размерность конфигурационного пространства.
Вероятностная полнота — это свойство, заключающееся в том, что по мере выполнения большей «работы» вероятность того, что планировщик не сможет найти путь, если таковой существует, асимптотически стремится к нулю. Несколько методов, основанных на выборках, являются вероятностно полными. Производительность вероятностно полного планировщика измеряется скоростью сходимости. Для практических приложений обычно используют это свойство, поскольку оно позволяет устанавливать тайм-аут для сторожевого таймера на основе среднего времени сходимости.
Неполные планировщики не всегда создают возможный путь, если он существует (см. первый абзац). Иногда неполные планировщики работают хорошо на практике, поскольку они всегда останавливаются после гарантированного времени и позволяют другим процедурам взять на себя управление.
Разработано множество алгоритмов для решения различных вариантов этой базовой проблемы.
Гибридные системы — это те, которые смешивают дискретное и непрерывное поведение. Примерами таких систем являются:
{{cite book}}
: |journal=
проигнорировано ( помощь )