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