Планирование движения для дерева жесткого тела с использованием двунаправленного RRT
manipulatorRRT объект является планировщиком с одним запросом для манипуляторов, который использует двунаправленный алгоритм быстрого исследования случайных деревьев (RRT) с дополнительной эвристикой соединения для потенциального увеличения скорости.
Двунаправленный планировщик RRT создает два дерева с корневыми узлами в указанных конфигурациях начала и цели. Для расширения каждого дерева планировщик создает случайную конфигурацию и, если она допустима, делает шаг от ближайшего узла на основе свойства MaxConniceDistance. После каждого внутреннего абонента плановик пытается соединить два дерева с помощью нового внутреннего абонента и ближайшего узла на противоположном дереве. Недопустимые конфигурации или подключения, которые сталкиваются с средой, не добавляются в дерево.
В случае поиска с использованием greedier включение свойства EnableStartHeuristic отключает ограничение для MaxConnectionDistance свойство при соединении между двумя деревьями.

Установка EnableConnectHueristic свойство для false ограничивает протяженность при соединении между двумя деревьями значением MaxConnectionDistance собственность.

Объект использует rigidBodyTree модель робота для генерации случайных конфигураций и промежуточных состояний между узлами. Объекты столкновения задаются в модели робота для проверки конфигураций и проверки на наличие столкновений с окружающей средой или самим роботом.
Чтобы спланировать путь между конфигурацией начала и цели, используйте plan объектная функция. После планирования можно выполнить интерполяцию состояний вдоль траектории с помощью interpolate объектная функция. Чтобы попытаться укоротить контур путем обрезки кромок, используйте команду shorten объектная функция.
Чтобы указать область для выборки концевых эффекторных позиций рядом с конфигурацией цели, создайте workspaceGoalRegion и укажите его как goalRegion входные данные для plan объектная функция. Чтобы изменить вероятность выборки дополнительных конфигураций целей, укажите свойство рабочей области GoalRegionBias.
Дополнительные сведения о сложности вычислений см. в разделе Сложность планирования.
rrt = manipulatorRRT( создает двунаправленный планировщик RRT для указанного robotRBT,{})rigidBodyTree модель робота. Пустой массив ячеек указывает на отсутствие препятствий в среде.
rrt = manipulatorRRT( создает планировщик для модели робота с объектами столкновения, размещенными в среде. Плановик проверяет наличие конфликтов с этими объектами.robotRBT,collisionObjects)
plan | Планирование пути с использованием RRT для манипуляторов |
interpolate | Интерполяция состояний по пути от RRT |
shorten | Обрезка кромок для укорочения траектории от RRT |
Сложность планирования
При планировании движения между узлами в дереве генерируется и проверяется набор конфигураций. Это время вычисления плановика пропорционально количеству сгенерированных конфигураций. Количество конфигураций между узлами определяется соотношением свойств MaxConniceDistance и ValidationDistance. Чтобы увеличить время планирования, рассмотрите возможность увеличения расстояния проверки или уменьшения максимального расстояния соединения.
Проверка каждой конфигурации имеет сложность O (mn + m2), где m - количество тел столкновения в rigidBodyTree object и n - количество объектов-коллизий в worldObjects. Использование большого количества сетей для представления робота или среды увеличивает время проверки каждой конфигурации.
Бесконечные пределы соединения
Если ваш rigidBodyTree модель робота имеет пределы соединения, которые имеют бесконечный диапазон (например, поворотное соединение с пределами [-Inf Inf]), manipulatorRRT объект использует пределы [-1e10 1e10] для выполнения равномерной случайной выборки в пределах соединения.
[1] Куффнер, Дж. Дж., и С. М. ЛаВалле. «RRT-Connect: эффективный подход к планированию пути с одним запросом». В трудах 2000 ICRA. Конференция тысячелетия. Международная конференция IEEE по робототехнике и автоматизации. Материалы симпозиумов (Cat. № 00CH37065), 2:995–1001. Сан-Франциско, Калифорния, США: IEEE, 2000. https://doi:10.1109/ROBOT.2000.844730.