Перейти к основному содержимому

Датчики положения и наклона

Мобильный робот определяет наклон и контрольные положения

Роботу часто нужно знать не только расстояние до объекта, но и собственное состояние: дошёл ли механизм до края, закрыта ли крышка, наклонилась ли платформа, как быстро корпус вращается. Для этих задач используют разные датчики, и путать их опасно.

Коротко

Концевик и геркон дают событие: достигнута точка или рядом магнит. Датчик наклона сообщает грубое пороговое состояние. Акселерометр измеряет ускорение, включая гравитацию. Гироскоп измеряет скорость вращения. Ни один из них сам по себе не является идеальным датчиком положения.

Зачем это нужно

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

Примеры датчиков

Примеры датчиков положения и наклона

ДатчикЧто выдаётИнтерфейсГде применяют
Концевикзамкнут/разомкнутцифровой входкрай хода, бампер, homing
Герконмагнит рядом/далекоцифровой входкрышка, дверца, контроль точки без касания
SW-520Dнаклон превысил порогцифровой выход модуляпростое событие наклона или встряски
ADXL345ускорение по 3 осямI²C/SPIнаклон в покое, удар, вибрация
MPU6050ускорение + угловая скоростьI²Cориентация, балансировка, движение

Главный вопрос: нужен точный угол, факт касания или событие около магнита? Концевик не измеряет угол, акселерометр не знает координату механизма, а гироскоп без коррекции накапливает ошибку.

Главная идея

Датчики положения и наклона делятся на две группы:

ГруппаПримерыЧто получает программа
Событийныеконцевик, геркон, SW-520Dtrue/false, иногда с дребезгом
ИзмерительныеADXL345, MPU6050числовые значения по осям

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

Концевик: известная точка через контакт

Концевик срабатывает при достижении упора

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

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

Геркон: событие рядом с магнитом

Геркон реагирует на магнит без касания

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

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

Датчик наклона: простое пороговое событие

Пороговый датчик наклона сообщает событие

SW-520D и похожие модули сообщают, что наклон или встряска превысили некоторый порог. Это не IMU и не точный угломер. Такой датчик удобен для сигнализации: робот перевернулся, крышка поднялась, устройство встряхнули.

Если нужен угол в градусах, берут акселерометр или IMU. Если нужен только факт опасного положения, пороговый датчик наклона может быть проще.

Акселерометр: вектор и проекция гравитации

Акселерометр видит проекцию гравитации на оси

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

Для ADXL345 или акселерометра внутри MPU6050 важно знать ориентацию платы: ось X на модуле не обязана совпадать с направлением движения робота.

Гироскоп: скорость вращения

Гироскоп измеряет скорость вращения

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

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

Зачем объединяют измерения

Акселерометр и гироскоп дополняют друг друга

Акселерометр даёт ориентир по гравитации, но путается при ускорении. Гироскоп хорошо видит быстрый поворот, но дрейфует при долгой работе. Вместе они дают более устойчивую оценку угла, если программа учитывает время, шум и калибровку.

Это не магия «шести осей». MPU6050 имеет три оси акселерометра и три оси гироскопа, но итоговая ориентация появляется только после обработки данных.

Что запомнить про положение и наклон

  • Концевик и геркон дают событие, а не координату.
  • Датчик наклона сообщает грубый порог, а не точный угол.
  • Акселерометр в покое помогает оценить наклон, но при разгоне видит не только гравитацию.
  • Гироскоп измеряет скорость вращения и дрейфует при интегрировании.
  • Для IMU важны оси, время, калибровка и фильтрация.

Практика

  1. Нарисуйте, где на манипуляторе поставить концевик для поиска нуля.
  2. Проверьте геркон с магнитом: отметьте расстояние срабатывания и отпускания.
  3. Положите акселерометр в шесть положений и запишите, какая ось показывает примерно +1g или -1g.
  4. Подумайте, почему гироскоп на неподвижном столе может показывать не ровно ноль.

Проверьте себя

  1. Почему концевик не заменяет датчик угла?
  2. Чем геркон удобен для крышки робота?
  3. Почему акселерометр не всегда показывает чистый наклон?
  4. Почему угол из гироскопа со временем уплывает?
  5. Зачем IMU нужны метки времени?
Ориентиры для самопроверки

Сначала ответьте без подсказки. Ответ можно считать полным, если вы:

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

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

Словарь статьи

  • Концевик — механический датчик крайнего положения.
  • Геркон — контакт, срабатывающий в магнитном поле.
  • Акселерометр — датчик ускорения по осям.
  • Гироскоп — датчик угловой скорости.
  • IMU — инерциальный модуль, объединяющий несколько датчиков движения.
  • Дрейф — медленный уход результата из-за смещения и ошибок.

Связанные темы

Источники