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