Документация Engee

Vector Field Histogram

Избегание препятствий с помощью гистограммы векторного поля.

Тип: VectorFieldHistogram

Путь в библиотеке:

/Navigation/Control algorithms/Vector Field Histogram

Описание

Блок Vector Field Histogram (Vector Field Histogram, VFH) позволяет транспортному средству избегать препятствий на основе данных датчика дальности. Получив показания датчика в виде дальностей и углов, а также целевое направление движения, контроллер VFH вычисляет направление поворота руля, свободное от препятствий.

Более подробную информацию об алгоритме см. в разделе Гистограмма векторного поля.

Ограничения

При генерации кода для моделей, использующих этот блок, количество элементов во входных портах Ranges и Angles ограничено значением 4000.

Порты

Вход

# Ranges — значения дальностей из данных сканирования
вектор

Details

Значения дальностей из данных сканирования, заданные как вектор скалярных величин в метрах. Эти значения дальностей представляют собой расстояния от датчика под заданными углами. Длина вектора должна совпадать с длиной соответствующего вектора Angles.

Типы данных

Float32, Float64

Поддержка комплексных чисел

Нет

# Angles — значения углов из данных сканирования
вектор

Details

Значения углов из данных сканирования, заданные как вектор скалярных величин в радианах. Эти значения углов представляют собой конкретные углы заданных дальностей. Длина вектора должна совпадать с длиной соответствующего вектора Ranges.

Типы данных

Float32, Float64

Поддержка комплексных чисел

Нет

# TargetDir — направление движения транспортного средства
скаляр

Details

Целевое направление транспортного средства, заданное как скаляр радианах. Направление движения транспортного средства вперед считается равным нулю радиан, а положительные углы измеряются против часовой стрелки. Можно использовать выходной порт Target Direction блока Pure Pursuit при создании элементов управления на основе набора путевых точек.

Типы данных

Float32, Float64

Поддержка комплексных чисел

Нет

Выход

# SteerDir — направление поворота транспортного средства
скаляр

Details

Направление поворота транспортного средства, возвращаемое в виде скаляра в радианах. Это свободное от препятствий направление рассчитывается на основе алгоритма VFH+. Направление движения транспортного средства вперед считается равным нулю радиан, а положительные углы измеряются против часовой стрелки.

Типы данных

Float32, Float64

Поддержка комплексных чисел

Нет

Параметры

Histogram parameters

# Number of angular sectors — количество интервалов, используемых для создания гистограмм
Real number

Details

Количество интервалов, используемых для создания гистограмм, заданное как скаляр. Установить значение для этого параметра можно только при инициализации объекта.

Значение по умолчанию

180

Имя для программного использования

NumAngularSectors

Настраиваемый

Нет

Вычисляемый

Да

# Range distance limits (m) — пределы для показаний датчика дальности
Array of real numbers

Details

Пределы для показаний датчика дальности в метрах, заданные как двухэлементный вектор скалярных величин. Входные показания дальности учитываются только в том случае, если они попадают в пределы дальности. Используйте нижний предел дальности, чтобы игнорировать ложные срабатывания из-за низкой производительности датчика на малых расстояниях. Используйте верхний предел, чтобы игнорировать препятствия, находящиеся слишком далеко от транспортного средства.

Значение по умолчанию

[0.05, 2]

Имя для программного использования

DistanceLimits

Настраиваемый

Да

Вычисляемый

Да

# Histogram thresholds — пороговые значения для вычисления бинарной гистограммы
Array of real numbers

Details

Пороговые значения для вычисления бинарной гистограммы, заданные как двухэлементный вектор скалярных величин. Алгоритм использует эти значения для вычисления бинарной гистограммы на основе плотности полярных препятствий. Значения плотности полярных препятствий выше верхнего порогового значения представляются как занятое пространство (1) в бинарной гистограмме. Значения меньше нижнего порогового значения представляются как свободное пространство (0). Значения, попадающие в пределы, устанавливаются равными значениям предыдущей вычисленной бинарной гистограммы, если таковая существует из предыдущих итераций. Если предыдущая гистограмма не существует, значение устанавливается как свободное пространство (0).

Значение по умолчанию

[3, 10]

Имя для программного использования

HistogramThresholds

Настраиваемый

Да

Вычисляемый

Да

Vehicle parameters

# Vehicle radius (m) — радиус транспортного средства
Real number

Details

Радиус транспортного средства, заданный как скаляр в метрах. Этот параметр определяет наименьшую окружность, которая может охватить транспортное средство. Радиус транспортного средства используется для учета размеров транспортного средства при вычислении направления, свободного от препятствий.

Значение по умолчанию

0.1

Имя для программного использования

RobotRadius

Настраиваемый

Да

Вычисляемый

Да

# Safety distance (m) — безопасное расстояние вокруг транспортного средства
Real number

Details

Безопасное расстояние, остающееся вокруг положения транспортного средства, в дополнение к параметру Vehicle radius (m), заданное как скаляр в метрах. Радиус транспортного средства и безопасное расстояние используются для вычисления направления, свободного от препятствий.

Значение по умолчанию

0.1

Имя для программного использования

SafetyDistance

Настраиваемый

Да

Вычисляемый

Да

# Minimum turning radius (m) — минимальный радиус поворота при текущей скорости
Real number

Details

Минимальный радиус поворота транспортного средства, движущегося с текущей скоростью, заданный как скаляр в метрах.

Значение по умолчанию

0.1

Имя для программного использования

MinTurningRadius

Настраиваемый

Да

Вычисляемый

Да

Основные

# Target direction weight — вес функции стоимости для целевого направления
Real number

Details

Вес функции стоимости для движения в целевом направлении, заданный как скаляр. Чтобы следовать целевому направлению, установите для этого параметра значение больше суммы значений параметров Current direction weight и Previous direction weight. Чтобы игнорировать стоимость целевого направления, установите для этого параметра значение 0.

Значение по умолчанию

5

Имя для программного использования

TargetDirectionWeight

Настраиваемый

Да

Вычисляемый

Да

# Current direction weight — вес функции стоимости для текущего направления
Real number

Details

Вес функции стоимости для движения транспортного средства в текущем направлении, заданный как скаляр. Более высокие значения этого параметра обеспечивают более эффективные траектории. Чтобы игнорировать стоимость текущего направления, установите для этого параметра значение 0.

Значение по умолчанию

2

Имя для программного использования

CurrentDirectionWeight

Настраиваемый

Да

Вычисляемый

Да

# Previous direction weight — вес функции стоимости для предыдущего направления
Real number

Details

Вес функции стоимости для движения в ранее выбранном направлении, заданный как скаляр. Более высокие значения этого параметра обеспечивают более плавные траектории. Чтобы игнорировать стоимость предыдущего направления, установите для этого параметра значение 0.

Значение по умолчанию

2

Имя для программного использования

PreviousDirectionWeight

Настраиваемый

Да

Вычисляемый

Да

Алгоритмы

Гистограмма векторного поля

Details

Блок использует алгоритм VFH+ для вычисления направления, свободного от препятствий. Сначала алгоритм получает данные о дальности и углах от датчика дальности и строит полярную гистограмму для местоположения препятствий. Затем он использует пороговые значения входной гистограммы для вычисления бинарной гистограммы, указывающей на занятое и свободное направления. Наконец, алгоритм вычисляет маскированную гистограмму, которая определяется из бинарной гистограммы на основе минимального радиуса поворота транспортного средства.

Алгоритм выбирает несколько направлений движения на основе открытого пространства и возможных вариантов направления. Функция стоимости с весами, соответствующими предыдущему, текущему и целевому направлениям, вычисляет стоимость различных возможных направлений. Затем алгоритм возвращает направление, свободное от препятствий, с минимальной стоимостью. Используя свободное от препятствий направление, можно вводить команды для перемещения транспортного средства в этом направлении.

Для использования этого блока в пользовательской модели необходимо настроить параметры алгоритма. Значения параметров зависят от типа транспортного средства, датчика дальности и используемого оборудования.