Избегайте препятствий с помощью векторной полевой гистограммы
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.