Избегайте препятствий с помощью векторной полевой гистограммы
Navigation Toolbox / Алгоритмы управления
Блок Vector Field Histogram (VFH) позволяет вашему транспортному средству избежать препятствий на основе данных о датчике области значений. Учитывая датчик области значений, читающий в терминах областей значений и углов и целевого направления, чтобы управлять к, контроллер VFH вычисляет руководящее направление без препятствий.
Для получения дополнительной информации о деталях алгоритма смотрите Гистограмму поля Vector в соответствии с Алгоритмами.
Ranges
и Angles
входные параметры ограничиваются 4 000 элементов при генерации кода для моделей, которые используют этот блок.
Ranges
— Значения диапазона от данных сканированияЗначения диапазона от данных сканирования в виде вектора скаляров в метрах. Эти значения области значений являются расстояниями от датчика под заданными углами. Вектор должен быть той же длиной как соответствующий вектор Angles.
Angles
— Угловые значения от данных сканированияУгловые значения от данных сканирования в виде вектора скаляров в радианах. Эти угловые значения являются определенными углами заданных областей. Вектор должен быть той же длиной как соответствующий вектор Ranges.
TargetDir
— Целевое направление для транспортного средстваЦелевое направление для транспортного средства в виде скаляра в радианах. Прямое направление транспортного средства рассматривается нулевыми радианами с положительными углами, измеренными против часовой стрелки. Можно использовать TargetDir выход от блока Pure Pursuit при генерации средств управления от набора waypoints.
steeringDir
— Регулирование направления для транспортного средстваРегулирование направления для транспортного средства в виде скаляра в радианах. Это направление без препятствий вычисляется на основе VFH + алгоритм. Прямое направление транспортного средства рассматривается нулевыми радианами с положительными углами, измеренными против часовой стрелки.
Number of angular sectors
— Количество интервалов раньше создавало гистограммы
(значение по умолчанию) | скалярКоличество интервалов раньше создавало гистограммы в виде скаляра. Этот параметр является ненастраиваемым. Можно установить этот параметр только, когда объект инициализируется.
Range distance limits (m)
— Пределы для показаний области значений
(значение по умолчанию) | двухэлементный вектор скаляровПределы для показаний области значений в метрах в виде двухэлементного вектора скаляров. Вход показаний области значений только рассматривается, если они находятся в пределах пределов расстояния. Используйте более низкий предел расстояния, чтобы проигнорировать ложные положительные стороны от плохой производительности датчика в более низких областях значений. Используйте верхний предел, чтобы проигнорировать препятствия, которые являются слишком далеко от транспортного средства.
Histogram thresholds
— Пороги для вычислительной бинарной гистограммы
(значение по умолчанию) | двухэлементный вектор скаляровПороги для вычислительной бинарной гистограммы в виде двухэлементного вектора скаляров. Алгоритм использует эти пороги, чтобы вычислить бинарную гистограмму из полярной плотности препятствия. Полярные значения плотности препятствия выше, чем верхний порог представлены как занятое место (1) в бинарной гистограмме. Значения, меньшие, чем более низкий порог, представлены как свободное пространство (0). Значения, которые падают между пределами, установлены к значениям предыдущей вычисленной бинарной гистограммы, если вы существуете от предыдущих итераций. Если предыдущая гистограмма не существует, значение установлено как свободное пространство (0).
vehicle radius (m)
— Радиус транспортного средства
(значение по умолчанию) | скалярРадиус транспортного средства в виде скаляра в метрах. Эта размерность задает самый маленький круг, который может ограничить ваше транспортное средство. Радиус транспортного средства используется, чтобы составлять размер транспортного средства при вычислении направления без препятствий.
Safety distance (m)
— Расстояние безопасности вокруг транспортного средства
(значение по умолчанию) | скалярРасстояние безопасности разбросало положение транспортного средства в склонности к vehicle radius в виде скаляра в метрах. Радиус транспортного средства и расстояние безопасности используются для расчета направление без препятствий.
Minimum turning radius (m)
— Радиус превращения минимума на текущей скорости
(значение по умолчанию) | скалярРадиус превращения минимума для транспортного средства, перемещающегося на его текущей скорости в виде скаляра в метрах.
Simulate using
— Задайте тип симуляции, чтобы запуститьсяCode generation
(значение по умолчанию) | Interpreted execution
Code generation
— Симулируйте модель с помощью сгенерированного кода C. В первый раз, когда вы запускаете симуляцию, Simulink® генерирует код С для блока. Код С снова используется для последующих симуляций, пока модель не изменяется. Эта опция требует дополнительного времени запуска, но скорость последующих симуляций сопоставима с Interpreted execution
.
Interpreted execution
— Симулируйте модель с помощью интерпретатора MATLAB®. Эта опция сокращает время запуска, но имеет более медленную скорость симуляции, чем Code generation
. В этом режиме можно отладить исходный код блока.
Настраиваемый: нет
Target direction weight
— Вес функции стоимости для целевого направления
(значение по умолчанию) | скалярВес функции стоимости для перемещения к целевому направлению в виде скаляра. Чтобы следовать за целевым направлением, установите этот вес быть выше, чем сумма Current direction weight и Previous direction weight. Чтобы проигнорировать целевую стоимость направления, установите этот вес на 0
.
Current direction weight
— Вес функции стоимости для текущего направления
(значение по умолчанию) | скалярВес функции стоимости для перемещения транспортного средства в текущем направлении заголовка в виде скаляра. Более высокие значения этого веса производят эффективные пути. Чтобы проигнорировать текущую стоимость направления, установите этот вес на 0
.
Previous direction weight
— Вес функции стоимости для предыдущего направления
(значение по умолчанию) | скалярВес функции стоимости для того, чтобы приблизиться ранее выбранное руководящее направление в виде скаляра. Более высокие значения этого веса производят более сглаженные пути. Чтобы проигнорировать предыдущую стоимость направления, установите этот вес на 0
.
Блок использует VFH + алгоритм, чтобы вычислить направление без препятствий. Во-первых, алгоритм берет области значений и углы из данных о датчике области значений и создает полярную гистограмму для местоположений препятствия. Затем это использует входные пороги гистограммы, чтобы вычислить бинарную гистограмму, которая указывает на занятые и свободные направления. Наконец, алгоритм вычисляет гистограмму маскированную, которая вычисляется из бинарной гистограммы на основе радиуса превращения минимума транспортного средства.
Алгоритм выбирает несколько держащихся направлений на основе открытого пространства и возможных направлений движения. Функция стоимости, с весами, соответствующими предыдущим, текущим, и целевым направлениям, вычисляет стоимость различных возможных направлений. Алгоритм затем возвращает направление без препятствий с минимальной стоимостью. Используя направление без препятствий, можно ввести команды, чтобы переместить транспортное средство в то направление.
Чтобы использовать этот блок в вашем собственном приложении и среде, необходимо настроить параметры алгоритма. Значения параметров зависят от типа транспортного средства, датчика области значений и оборудования, которое вы используете. Для получения дополнительной информации об алгоритме VFH смотрите controllerVFH
.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.