Симулятор датчиков робота для калибровки и слияния данных
Исследуйте шум, смещение, дрейф, квантование, пропуски, фильтрацию и слияние данных в детерминированном интерактивном симуляторе датчиков робота.
- Категория
- Датчики
- Время
- 60–150 min
- Платформа
- Браузер · Микроконтроллер
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.
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.
- 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.
Управление
Выберите гладкий или ступенчатый истинный сигнал, затем настройте частоту дискретизации, квантование, случайный шум, дрейф, смещение, пропуски и память фильтра. Сравните исходные данные с оценками скользящего среднего, фильтра нижних частот, медианного и комплементарного фильтров. Пресеты делают зашумлённое, смещённое и ненадёжное поведение датчиков повторяемым.
Теория
У каждого датчика есть диапазон измерения, разрешение, точность, полоса пропускания, задержка и поведение при отказе. Точность из технического описания описывает только часть системы; при реальных результатах часто доминируют монтаж, температура, шум питания, электромагнитные помехи и свойства поверхности.
Слияние работает, когда датчики дают взаимодополняющую информацию, а их неопределённость представлена честно. Объединение двух смещённых измерений не создаёт истину автоматически. Начните с калибровки, меток времени, систем координат и проверок качества данных.
Алгоритм
- Присваивайте каждому отсчёту метку времени и проверяйте диапазон непосредственно при получении данных.
- Переводите показания в рабочие единицы с помощью масштаба, смещения и ориентации осей при калибровке.
- Отбрасывайте невозможные скачки или помечайте их недействительными, а не выдумывайте данные.
- Применяйте самый лёгкий фильтр, удовлетворяющий требованию к шуму последующего контура.
- Преобразуйте измерения в общую систему координат и объедините их с учётом известной неопределённости.
- Сохраняйте исходные и обработанные значения в лог, чтобы сбои оставались воспроизводимыми.
Исходный код
Экспоненциальный фильтр нижних частот полезен, если его постоянная времени выбрана осознанно:
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 добавляет смещение, зависящее от температуры, негауссовы выбросы и нестабильность временных меток шины, которые эта модель упрощает. Здесь дискретизация идеально периодична, но в цикле микроконтроллера из-за времени цикла и задержки прерываний метки времени становятся необходимыми, — поэтому каждый режим обработки в элементах управления одновременно показывает истинное значение, исходные отсчёты и оценку. График после фильтрации выглядит привлекательно, однако любое дополнительное сглаживание добавляет задержку, которая позже проявится на реальной системе как задержка управления; тот же компромисс рассматривается в руководстве по шуму, фильтрации и слиянию данных датчиков.
Схема соединений
Перед подключением нескольких датчиков проверьте напряжение шины, требования к подтягивающим резисторам, адреса и максимальную длину кабеля.
Руководство по экспериментам
Настройки в этой лаборатории нужны для того, чтобы вы могли воспроизвести каждую неисправность датчика намеренно, а затем увидеть, какой инструмент её устраняет. Одно такое действие стоит огромного количества чтения.
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. Посмотрите, что слияние может и чего не может
Сделайте один источник зашумлённым, но несмещённым, а другой — гладким, но дрейфующим, и посмотрите, как комплементарная оценка берёт хорошую половину каждого. Затем задайте обоим источникам одинаковое смещение и посмотрите, как объединённая оценка наследует его без изменений.
Слияние использует ошибки, независимые друг от друга. Ошибка общего режима остаётся нетронутой, поэтому калибровка должна предшествовать слиянию, а не следовать за ним.
Что следует наблюдать
| Конфигурация | Исходное значение | Лучший фильтр | Почему |
|---|---|---|---|
| Гауссов шум без смещения | Симметричное рассеяние | Скользящее среднее или фильтр нижних частот | Шум усредняется к истинному значению |
| Редкие выбросы | В основном хорошие значения, изредка экстремальные | Медиана | Напрямую отбрасывает выбросы |
| Постоянное отклонение | Тесно, но неверно | Нет — калибровать | Фильтрация не видит отклонение |
| Медленный дрейф | Сначала верно, затем уходит | Нет — повторно калибровать или объединять | Нужен абсолютный эталон |
| Пропуски | Разрывы | Медиана и удержание последнего хорошего значения | Придуманное значение хуже отмеченного разрыва |
| Квантованный | Попадает на дискретные ступени | Нет — это ваше разрешение | Фильтрация между ступенями добавляет задержку, а не информацию |
Переход к реальному оборудованию
| Эта лаборатория | Настоящий датчик |
|---|---|
| Дискретизация идеально периодична | Время цикла и задержка прерываний делают метки времени необходимыми |
| Шум задаётся как гауссов или равномерный | Негауссовы выбросы и смещение, меняющееся с температурой |
| Истинное значение доступно для сравнения | Истинного значения нет, поэтому калибруйте по известному входу |
| Пропуски обозначены явно | Пропуск может выглядеть как правдоподобное значение |
| Один датчик за раз | Несколько шин, несколько частот дискретизации и проблемы согласования между ними |
Практическая процедура с реальным датчиком коротка: удерживайте его неподвижно при известном входном воздействии, записывайте несколько тысяч отсчётов с метками времени и стройте как временной ряд, так и гистограмму. Гистограмму пропускают чаще всего, хотя именно она наиболее информативна: гауссов шум образует колокол, выбросы — колокол с несколькими точками далеко в хвостах, и для этих двух случаев нужны разные фильтры. Полный метод приведён в шум, смещение и фильтрация датчиков.
Список оборудования
Компоненты
- Микроконтроллер или одноплатный компьютер
- Один или несколько цифровых или аналоговых датчиков
- Известные эталоны калибровки
- Стабилизированный источник питания и правильные логические уровни
- Интерфейс для записи данных, обеспечивающий повторяемые эксперименты
Исследуйте граф
Где используется этот симулятор
Проекты, учебные пути и руководства, которые опираются на эту лабораторию.
Продолжайте сборку
Материалы для загрузки
Пользуйтесь этими справочными материалами на странице, пока работаете над проектом. Загружаемые пакеты проекта появятся только после публикации их исходников и версии.
Частые вопросы
Часто задаваемые вопросы
Всегда ли более гладкий сигнал лучше?
Нет. Сильная фильтрация может удалить полезное движение и добавить задержку. Выбирайте фильтр по спектру шума, требуемому времени отклика и управляющим решениям, принимаемым по результату измерения.
Чем смещение отличается от шума?
Смещение — повторяемое отклонение от истинного значения, а шум изменяется от отсчёта к отсчёту. Калибровка может оценить смещение; усреднение или фильтрация способны уменьшить случайный шум, но не могут надёжно удалить неизвестное смещение.
Что такое дрейф датчика и чем он отличается от смещения?
Смещение — фиксированное отклонение, которое можно один раз измерить и вычесть. Дрейф — медленное изменение этого отклонения со временем, обычно из-за температуры или старения компонента, поэтому калибровка, выполненная при запуске, постепенно перестаёт соответствовать реальности. Дрейф — причина, по которой длительные запуски требуют периодической повторной калибровки или эталона, по которому можно корректировать оценку.
Какой фильтр выбрать: скользящее среднее, фильтр нижних частот или медианный?
Скользящее среднее и экспоненциальный фильтр нижних частот сглаживают гауссов шум, меняя отзывчивость на плавность через окно или постоянную времени. Медианный фильтр лучше удаляет редкие выбросы и пропуски, поскольку несколько плохих отсчётов не изменяют медиану. Выбирайте самый лёгкий фильтр, который удовлетворяет требованиям последующего контура, а не самый гладкий на вид.
Какую задержку добавляет фильтрация?
Любой сглаживающий фильтр отстаёт от истинного сигнала, и чем сильнее сглаживание, тем больше задержка: фильтр нижних частот с большой постоянной времени подавляет больше шума, но сильнее отстаёт при быстрых изменениях. Всегда сравнивайте отфильтрованную оценку с исходными отсчётами и истинным значением, чтобы задержка была видна до того, как вы начнёте полагаться на неё в контуре управления.
Что такое слияние данных датчиков и когда оно действительно помогает?
Слияние объединяет несколько датчиков в одну оценку и помогает только тогда, когда они дают взаимодополняющую информацию, а их неопределённость представлена честно. Объединение двух смещённых измерений не создаёт истину. Например, комплементарный фильтр доверяет одному датчику на высоких частотах, а другому — на низких; сначала займитесь калибровкой, метками времени и системами координат, а затем объединяйте данные.
Почему каждому отсчёту нужна метка времени?
Отсчёты редко приходят с идеально постоянным интервалом, а слияние и фильтрация предполагают, что известно время измерения каждого значения. Метки времени позволяют обнаружить дрожание, согласовать данные разных датчиков и отбросить устаревшие показания. Запись исходных значений рядом с обработанными делает воспроизводимыми сбои вроде обрезания, пропусков и ошибок калибровки.
Дополнительные материалы
Источники
Авторитетные источники, чтобы пойти глубже ограниченной учебной модели этого симулятора.