Векторное поле Histogram

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

Размерности робота

Чтобы вычислить держащиеся направления, необходимо указать информацию о размере робота и его ведущих возможностях. Алгоритм VFH требует только четырех входных параметров для робота. Эти параметры являются свойствами класса robotics.VectorFieldHistogram: RobotRadius, SafetyDistance, MinTurningRadius и DistanceLimits.

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

  • SafetyDistance опционально задает добавленное расстояние сверху RobotRadius. Можно использовать это свойство добавить коэффициент безопасности при навигации по среде.

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

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

Примечание

Вся информация о показаниях датчика области значений принимает, что ваше средство поиска области значений смонтировано в центре вашего робота. Если датчик области значений смонтирован в другом месте, преобразуйте свои показания датчика диапазона от лазерного координатного кадра до опорной рамы робота. Смотрите Данные сканирования Лазера Преобразования От Сети ROS для примера.

Веса функции стоимости

Веса функции стоимости используются, чтобы вычислить итоговые руководящие направления. Алгоритм VFH рассматривает несколько держащихся направлений на основе ваших текущих, предыдущих, и целевых направлений. Путем установки CurrentDirectionWeight, PreviousDirectionWeight и свойств TargetDirectionWeight, можно изменить держащееся поведение робота. Изменение этих весов влияет на скорость отклика робота и как это реагирует на препятствия. Чтобы заставить робота направиться к своему целевому местоположению, установите TargetDirectionWeight выше, чем сумма других весов. Это высокое значение TargetDirectionWeight помогает гарантировать, что вычисленное руководящее направление близко к целевому направлению. В зависимости от вашего приложения вы можете должны быть настроить эти веса.

Histogram Properties

Алгоритм VFH вычисляет гистограмму на основе данных данных о датчике области значений. Это берет все направления вокруг робота и преобразовывает их в угловые секторы, которые заданы как свойство NumAngularSectors. Это свойство является ненастраиваемым и остается фиксированным, если объект robotics.VectorFieldHistogram называется. Данные о датчике области значений используются, чтобы вычислить полярную гистограмму плотности по этим угловым секторам.

Примечание

Используя маленький NumAngularSectors значение может заставить алгоритм VFH пропускать меньшие препятствия. Пропущенные препятствия не появляются на гистограмме.

Эта гистограмма отображает угловые секторы синего цвета и пороги гистограммы в розовом. Свойство HistogramThresholds является двухэлементным вектором, который определяет значения гистограммы маскированной, заданной как [lower upper]. Полярные значения плотности препятствия выше, чем верхний порог представлены как занятое место (1) в гистограмме маскированной. Значения, меньшие, чем более низкий порог, представлены как свободное пространство (0). Значения, которые падают между пределами, установлены к значениям в предыдущей бинарной гистограмме со значением по умолчанию, являющимся свободным пространством (0). Гистограмма маскированная также включает MinTurningRadius, RobotSize и SafetyDistance.

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

Настройки параметров Используя show

При работе с объектом robotics.VectorFieldHistogram можно визуализировать свойства и параметры алгоритма с помощью метода robotics.VectorFieldHistogram.show. Этот метод отображает полярный график плотности и замаскировал бинарную гистограмму. Это также отображает параметры алгоритма и выходное руководящее направление для VFH.

Вы можете затем настройки параметров, чтобы помочь вам моделировать свое приложение предотвращения препятствия. Например, если вы видите, что определенные препятствия не появляются в Полярном графике Гистограммы Маскированном (справа), затем в Полярном графике Плотности Препятствия, рассмотрите корректировку порогов гистограммы к соответствующим значениям. После того, как вы внесете корректировки в Полярном графике Гистограммы Маскированном, показания датчика области значений, отображенные красным, должны совпасть с местоположениями в (синей) гистограмме маскированной. Кроме того, вы видите цель и держащиеся направления. Вы задаете целевое направление. Держащимся направлением является основной вывод из алгоритма VFH. Корректировка Весов Функции стоимости может помочь вам настроить вывод итогового руководящего направления.

Несмотря на то, что можно использовать метод show в цикле, он замедляет скорость вычисления из-за графического изображения. Если при запуске этот алгоритм для приложений реального времени, получаете и отображаете данные VFH в отдельных операциях.

Смотрите также

|