Руководство · Начальный · 18 мин чтения

Ультразвуковые датчики и времяпролётные датчики для роботов

Сравнение ультразвуковых датчиков и времяпролётных датчиков, а также установка, калибровка, фильтрация и проверка для обхода препятствий.

Датчик расстояния даёт роботу то, чего не может дать бампер: время на реакцию до контакта. Он не заменяет бампер — контактный выключатель ловит чёрную ножку стула, стекло и препятствие на неподходящей высоте, которые пропускает любой датчик расстояния. Два распространённых недорогих варианта — ультразвуковой сонар и оптический времяпролётный датчик (ToF). Оба сообщают расстояние, но по-разному взаимодействуют с поверхностями. Выбор только по максимальной заявленной дальности приводит к ненадёжному обходу препятствий.

Полезный вопрос звучит так: какой датчик даёт достоверные измерения для целей, освещения, геометрии, частоты обновления и тормозного пути именно этого робота?

Поймите, как измеряет каждый датчик

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

Оптический времяпролётный датчик излучает модулированный инфракрасный свет и оценивает расстояние по возвращающемуся сигналу. Такие устройства, как семейство VL53, содержат электронику измерения времени и обработки сигнала и обычно предоставляют результат по I²C.

Их режимы отказа различаются:

  • Звук может отражаться в сторону от наклонных, мягких, узких или звукопоглощающих целей.
  • Несколько ультразвуковых датчиков могут слышать друг друга, если их не запускать по управляемому расписанию.
  • Оптические датчики могут испытывать трудности с малоотражающими целями, сильным внешним инфракрасным излучением, перекрёстными засветками и отражениями от защитного стекла или целями вне поля зрения.
  • Ни один тип автоматически не знает, достоверен ли результат; используйте статус и данные о качестве сигнала, если они доступны.
Сравнение областей измерения двух датчиков расстояния. Верхний датчик излучает широкий конус примерно на тридцать градусов, с небольшим круглым препятствием внутри конуса, но не на центральной линии, которое отмечено как объект, который будет сообщён вместо стены за ним. Нижний датчик излучает узкий луч примерно на два с половиной градуса, достигающий той же стены в виде маленького пятна.
Одни и те же слова — «датчик расстояния» — для двух очень разных областей измерения. Конус сообщает ближайший объект в любом месте внутри себя; пятно сообзывает одну точку и пропускает всё остальное. Скачать SVG

Выбирайте по сцене и контуру управления

Ультразвуковые модули полезны, когда важна стоимость, цели достаточно широкие и допустим более широкий акустический луч. Они могут обнаруживать прозрачные объекты, с которыми некоторые оптические методы справляются с трудом. Их луч также может сообщить о близкой стене, находящейся не непосредственно перед роботом.

Модули ToF компактны, на многих устройствах имеют управляемое время измерения и могут задавать более узкую область интереса. Несколько одинаковых датчиков I²C могут потребовать выводов отключения или последовательности назначения адреса. Сильный солнечный свет и тёмные поверхности нужно проверять на реальной платформе.

Перед покупкой оборудования запишите четыре требования:

  1. Минимальное и максимальное полезное расстояние.
  2. Требуемый период обновления.
  3. Наименьшее препятствие, которое необходимо обнаружить.
  4. Наиболее трудная для обнаружения поверхность и условия: чёрная ткань, стекло, наклонная стена, солнечный свет или встречное движение.

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

Установите для нужного измерения

Разместите ось измерения там, где роботу нужна информация о зазоре, а не просто там, где удобно крепится кронштейн. Датчик высоко на шасси может пропустить низкие препятствия; слишком низкий увидит отражения от пола или элементы колёс. Бампер и шасси должны находиться вне поля зрения.

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

Жёсткое крепление важно. Вибрация меняет направление наведения, а движение кабеля может повредить ненадёжному контакту. Если оптический датчик находится за защитным окном, выполняйте процедуру калибровки перекрёстных отражений производителя именно для этой механической сборки.

Откалибруйте смещение и проверьте повторяемость

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

  • среднее или медианное сообщаемое расстояние;
  • разброс, например минимум/максимум или стандартное отклонение;
  • число измерений с признаком недопустимости;
  • условия окружения и материал цели.

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

Для модуля ToF перед калибровкой перекрёстных отражений выполните указанную производителем калибровку смещения. Сохраните данные калибровки и загружайте их при запуске, если это требует API устройства. После изменения защитного окна или геометрии крепления повторите калибровку.

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

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

Медиана последних трёх или пяти достоверных выборок отбрасывает отдельные выбросы, не растворяя их в управляющем сигнале:

if (measurement.valid) {
  window.push(measurement.distanceMm);
  if (window.size() > 5) window.popOldest();
  filteredDistance = median(window);
}

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

Превращайте расстояние в безопасное правило остановки

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

stopThreshold = speed² / (2 × deceleration) + speed × delay + margin

Измерьте достижимое замедление на реальной поверхности вместо предположения: предел задаёт сцепление µg, а не решение двигателя, а подробный расчёт приведён здесь. При большей скорости тормозной член растёт пропорционально квадрату скорости, поэтому фиксированный порог 15 cm не одинаково безопасен при каждой команде.

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

Проверяйте сложные цели

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

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

Диагностируйте типичные сбои

  • Постоянное смещение везде: проверьте физическую точку отсчёта, затем примените калибровку производителя.
  • Случайные короткие показания ультразвукового датчика: ищите перекрёстные отражения, электрический шум или позднее эхо от расположенных рядом конструкций.
  • Показания ToF ухудшаются за защитным окном: выполните калибровку смещения и перекрёстных отражений для материала защитного окна.
  • Робот колеблется рядом со стеной: добавьте гистерезис и уменьшите запаздывание фильтра перед повторной настройкой руления.
  • Обнаруживает стены, но пропускает ножки стульев: геометрия луча и крепление не покрывают нужный объект.
  • Останавливается слишком поздно только на высокой скорости: логика порога не учитывает тормозной путь и задержку.

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

Исследуйте граф

Входит в эти сборки

Проекты и учебные пути, в которые входит это руководство.

Дополнительные материалы

Источники