Избегайте препятствий с помощью векторной полевой гистограммы
Система robotics.VectorFieldHistogram
object™enables ваш робот, чтобы избежать препятствий на основе данных о датчике области значений с помощью векторных полевых гистограмм (VFH). Учитывая лазерные показания сканирования и целевое направление, чтобы управлять к, объект вычисляет руководящее направление без препятствий.
VectorFieldHistogram
в частности использует VFH + алгоритм, чтобы вычислить направление без препятствий. Во-первых, алгоритм берет области значений и углы от лазерных данных сканирования и создает полярную гистограмму для местоположений препятствия. Затем входные пороги гистограммы используются, чтобы вычислить бинарную гистограмму, которая указывает на занятые и свободные направления. Наконец, алгоритм вычисляет гистограмму маскированную, которая вычисляется из бинарной гистограммы на основе радиуса превращения минимума робота.
Алгоритм выбирает несколько держащихся направлений на основе открытого пространства и возможных направлений движения. Функция стоимости, с весами, соответствующими предыдущим, текущим, и целевым направлениям, вычисляет стоимость различных возможных направлений. Объект затем возвращает направление без препятствий с минимальной стоимостью. Используя направление без препятствий, можно ввести команды, чтобы переместить робота в то направление.
Чтобы использовать этот объект для вашего собственного приложения и среды, необходимо настроить свойства алгоритма. Значения свойств зависят от типа робота, датчика области значений и оборудования, которое вы используете.
Найти руководящее направление без препятствий:
Создайте объект robotics.VectorFieldHistogram
и установите его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.
VFH = robotics.VectorFieldHistogram
VFH = robotics.VectorFieldHistogram(Name,Value)
возвращает векторный полевой объект гистограммы, который вычисляет руководящее направление без препятствий с помощью алгоритма VFH
= robotics.VectorFieldHistogramVFH+
.
возвращает векторный полевой объект гистограммы с дополнительными опциями, заданными одной или несколькими парами VFH
= robotics.VectorFieldHistogram(Name
,Value
)Name,Value
. Имя является именем свойства, и Значение является соответствующим значением. Имя должно находиться внутри одинарных кавычек (' ').
Можно задать несколько аргументов пары "имя-значение" в любом порядке как Name1,Value1,...,NameN,ValueN
. Свойства, не заданные, сохраняют свои значения по умолчанию.
steeringDir = vfh(scan,targetDir)
steeringDir = vfh(ranges,angles,targetDir)
находит руководящее направление без препятствий с помощью VFH + алгоритм для объекта входа steeringDir
= vfh(scan
,targetDir
)lidarScan
, scan
. Целевое направление дано на основе целевого местоположения.
Чтобы включить этот синтаксис, необходимо установить свойство UseLidarScan
на true
. Например:
mcl = robotics.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.