Интерактивный симуляторНачальный

Симулятор датчиков робота для калибровки и слияния данных

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

Категория
Датчики
Время
60–150 min
Платформа
Браузер · Микроконтроллер
Техническая схема: Симулятор датчиков робота для калибровки и слияния данныхSAMPLE → FILTER → FUSE

01 / Начните здесь

Введение

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

Live lab / Deterministic measurement model

Robot sensor simulator

Compare a known signal with noisy absolute readings and a filtered estimate. Change one error source at a time to see what calibration can—and cannot—fix.

Browser native
This simulator compares truth, absolute samples, and the selected estimate over time. Use the controls below to run it, or read the theory and algorithm after this lab.

The main plot compares solid truth, individual absolute-sensor samples, and the thicker dashed estimate. The lower band shows signed estimation error around zero; gaps mark dropped absolute samples.

Simulation

Paused. Press Start or Step to collect samples.

Measurement
Reliability & filtering
Truth
—
Absolute
—
Estimate
—
Error
—
RMSE
—
Dropped
0

Keyboard: focus the plot, then use Space to run/pause, N to step, R to reset, and F for full screen.

Управление

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

Теория

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

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

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

Алгоритм

  1. Присваивайте каждому отсчёту метку времени и проверяйте диапазон непосредственно при получении данных.
  2. Переводите показания в рабочие единицы с помощью масштаба, смещения и ориентации осей при калибровке.
  3. Отбрасывайте невозможные скачки или помечайте их недействительными, а не выдумывайте данные.
  4. Применяйте самый лёгкий фильтр, удовлетворяющий требованию к шуму последующего контура.
  5. Преобразуйте измерения в общую систему координат и объедините их с учётом известной неопределённости.
  6. Сохраняйте исходные и обработанные значения в лог, чтобы сбои оставались воспроизводимыми.

Исходный код

Экспоненциальный фильтр нижних частот полезен, если его постоянная времени выбрана осознанно:

class LowPass:
    def __init__(self, alpha):
        self.alpha = alpha
        self.value = None

    def update(self, sample):
        if self.value is None:
            self.value = sample
        else:
            self.value += self.alpha * (sample - self.value)
        return self.value

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

Допущения и отличия от реального оборудования

Эта лаборатория — учебная модель сигнала, а не техническое описание конкретного датчика. Гауссов или равномерный шум задаётся регулируемым параметром; настоящий IMU или датчик ToF добавляет смещение, зависящее от температуры, негауссовы выбросы и нестабильность временных меток шины, которые эта модель упрощает. Здесь дискретизация идеально периодична, но в цикле микроконтроллера из-за времени цикла и задержки прерываний метки времени становятся необходимыми, — поэтому каждый режим обработки в элементах управления одновременно показывает истинное значение, исходные отсчёты и оценку. График после фильтрации выглядит привлекательно, однако любое дополнительное сглаживание добавляет задержку, которая позже проявится на реальной системе как задержка управления; тот же компромисс рассматривается в руководстве по шуму, фильтрации и слиянию данных датчиков.

Схема соединений

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

Блок-схема смешанной шины датчиков. Аналоговый датчик достигает контроллера через ADC, датчики I²C используют общие линии SDA и SCL, а датчик SPI использует линии выбора микросхемы, тактовую линию и линию данных. Контроллер записывает журнал с метками времени.
Разные шины датчиков сходятся на одном контроллере, который ставит метку времени каждому отсчёту, чтобы исходные и обработанные значения оставались воспроизводимыми. Скачать SVG

Руководство по экспериментам

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

1. Докажите, что фильтрация не исправляет смещение

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

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

2. Посмотрите, как среднее размазывает выброс, который отбрасывает медиана

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

Фильтр Что делает один выброс
Скользящее среднее по 5 Сдвигает оценку пять последовательных отсчётов
Медиана по 5 Вообще ничего не добавляет

Шум ультразвуковых датчиков и датчиков времени полёта не является гауссовым: это редкие экстремальные значения на фоне в остальном стабильного сигнала. Именно такой случай хуже всего обрабатывается усреднением.

3. Измерьте цену задержки

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

Настройка фильтра Типичная задержка При 0.3 m/s это
Медиана по 3 ~1 отсчёт 3 mm
Скользящее среднее по 10 ~4.5 отсчётов 14 mm
Фильтр нижних частот, α = 0.1 ~9 отсчётов 27 mm
Фильтр нижних частот, α = 0.02 ~49 отсчётов 147 mm

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

4. Посмотрите, что слияние может и чего не может

Сделайте один источник зашумлённым, но несмещённым, а другой — гладким, но дрейфующим, и посмотрите, как комплементарная оценка берёт хорошую половину каждого. Затем задайте обоим источникам одинаковое смещение и посмотрите, как объединённая оценка наследует его без изменений.

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

Что следует наблюдать

Конфигурация Исходное значение Лучший фильтр Почему
Гауссов шум без смещения Симметричное рассеяние Скользящее среднее или фильтр нижних частот Шум усредняется к истинному значению
Редкие выбросы В основном хорошие значения, изредка экстремальные Медиана Напрямую отбрасывает выбросы
Постоянное отклонение Тесно, но неверно Нет — калибровать Фильтрация не видит отклонение
Медленный дрейф Сначала верно, затем уходит Нет — повторно калибровать или объединять Нужен абсолютный эталон
Пропуски Разрывы Медиана и удержание последнего хорошего значения Придуманное значение хуже отмеченного разрыва
Квантованный Попадает на дискретные ступени Нет — это ваше разрешение Фильтрация между ступенями добавляет задержку, а не информацию

Переход к реальному оборудованию

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

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

Список оборудования

Компоненты

  • Микроконтроллер или одноплатный компьютер
  • Один или несколько цифровых или аналоговых датчиков
  • Известные эталоны калибровки
  • Стабилизированный источник питания и правильные логические уровни
  • Интерфейс для записи данных, обеспечивающий повторяемые эксперименты

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

Где используется этот симулятор

Проекты, учебные пути и руководства, которые опираются на эту лабораторию.

Продолжайте сборку

Материалы для загрузки

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

Частые вопросы

Часто задаваемые вопросы

Всегда ли более гладкий сигнал лучше?

Нет. Сильная фильтрация может удалить полезное движение и добавить задержку. Выбирайте фильтр по спектру шума, требуемому времени отклика и управляющим решениям, принимаемым по результату измерения.

Чем смещение отличается от шума?

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

Что такое дрейф датчика и чем он отличается от смещения?

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

Какой фильтр выбрать: скользящее среднее, фильтр нижних частот или медианный?

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

Какую задержку добавляет фильтрация?

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

Что такое слияние данных датчиков и когда оно действительно помогает?

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

Почему каждому отсчёту нужна метка времени?

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

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

Источники

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