Избегайте препятствий с помощью векторной полевой гистограммы
controllerVFH Система object™ позволяет вашему транспортному средству избежать препятствий на основе данных о датчике области значений с помощью векторных полевых гистограмм (VFH). Учитывая лазерные показания скана и целевое направление, чтобы управлять к, объект вычисляет руководящее направление без препятствий.
controllerVFH в частности использует VFH + алгоритм, чтобы вычислить направление без препятствий. Во-первых, алгоритм берет области значений и углы от лазерных данных сканирования и создает полярную гистограмму для местоположений препятствия. Затем входные пороги гистограммы используются, чтобы вычислить бинарную гистограмму, которая указывает на занятые и свободные направления. Наконец, алгоритм вычисляет гистограмму маскированную, которая вычисляется из бинарной гистограммы на основе радиуса превращения минимума транспортного средства.
Алгоритм выбирает несколько держащихся направлений на основе открытого пространства и возможных направлений движения. Функция стоимости, с весами, соответствующими предыдущим, текущим, и целевым направлениям, вычисляет стоимость различных возможных направлений. Объект затем возвращает направление без препятствий с минимальной стоимостью. Используя направление без препятствий, можно ввести команды, чтобы переместить транспортное средство в то направление.
Чтобы использовать этот объект для вашего собственного приложения и среды, необходимо настроить свойства алгоритма. Значения свойств зависят от типа транспортного средства, датчика области значений и оборудования, которое вы используете.
Найти руководящее направление без препятствий:
Создайте controllerVFH объект и набор его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?.
возвращает векторный полевой объект гистограммы, который вычисляет руководящее направление без препятствий с помощью VFH = controllerVFHVFH+ алгоритм.
возвращает векторный полевой объект гистограммы с дополнительными опциями, заданными одним или несколькими VFH = controllerVFH(Name,Value)Name,Value пары. Имя является именем свойства, и Значение является соответствующим значением. Имя должно находиться внутри одинарных кавычек (' ')). Можно задать несколько аргументов пары "имя-значение" в любом порядке как Name1,Value1,...,NameN,ValueN. Свойства, не заданные, сохраняют свои значения по умолчанию.
находит руководящее направление без препятствий с помощью VFH + алгоритм для входа steeringDir = vfh(scan,targetDir)lidarScan объект, scan. Целевое направление дано на основе целевого местоположения.
Чтобы включить этот синтаксис, необходимо установить UseLidarScan свойство к true. Например:
mcl = monteCarloLocalization('UseLidarScan',true); ... [isUpdated,pose,covariance] = mcl(odomPose,scan);
задает скан лидара с двумя векторами: steeringDir = vfh(ranges,angles,targetDir)ranges и angles.
Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:
release(obj)
[1] Боренштайн, J. и И. Корен. "Гистограмма поля Vector - Быстрое Предотвращение Препятствия для Мобильных Роботов". Журнал IEEE Робототехники и Автоматизации. Издание 7, Номер 3, 1991, pp.278-88.
[2] Ульрих, я., и Дж. Боренштайн. "VFH: надежное предотвращение препятствия для быстрых мобильных роботов". Продолжения. 1 998 международных конференций IEEE по вопросам робототехники и автоматизации. (1998): 1572–1577.