|
Как использовать gyro sensors, помогите разобраться с использованием датчиков |
|
|
|
Jun 7 2011, 23:42
|
Участник

Группа: Участник
Сообщений: 51
Регистрация: 9-10-06
Из: Киев
Пользователь №: 21 117

|
Здравствуйте! Есть 2 вопроса для реализации одного дела. Дело: есть управляемый робот, которая ездит по плоской поверхности и максимальная скорость которого – 2,5 м/с. Площадь движения –прямоугольник в котором заданы 2 оси. При движении данного устройства мне надо контролировать его угол (угловая ориентация относительно заранее заданной оси). Контролировать надо постоянно и следить за тем, чтоб объект не отклонился на более чем 2 градуса (опять таки, относительно оси). Скажем так. Идей никаких, кроме как использовать гироскопы (gyro sensors). Если кто имел опыт работы –поделитесь. Я просто понятия не имею, как его выбрать. В характеристиках данных устройств приведены таки данные, как:
Output : Analog DC voltage centered at about 2.5VDC Rate Range : +/-100 deg/sec Scale Factor : 20mV/(deg/sec)
А я понятия не имею, как с этого мне вытянуть разрешение по углу и погрешность измерения угла. Буду очень признателен, если объясните подробности использования таких устройств.
Второе менее важное. Может, кто знает, как использовать сенсоры как оптической мышке, для измерения перемещения? Т.е есть ли сенсоры такого типа, которые можно прикрепить к объекту и измерять его перемещения вдоль 1 или 2 осей? Как точно можно измерить перемещение. Диапазон перемещений не большой – 1 метр.
|
|
|
|
|
 |
Ответов
(1 - 6)
|
Jun 8 2011, 14:47
|
Участник

Группа: Участник
Сообщений: 18
Регистрация: 21-04-11
Пользователь №: 64 536

|
МЭМС-гироскопы меряют не угол, а угловую скорость поворота, сигнал нужно интегрировать, при этом накапливается ошибка из-за дрифта и прочих факторов, для ее коррекции обычно используют компас на основе магнитометра, они тоже подвержены ошибкам, но другого рода. Другими словами, гироскоп точен в высокочастотной области, магнитометр - в низкочастотной.
Сенсоры из оптических мышей использовать просто, прямо сейчас делаем навигационную систему на их основе. Связь с ними по SPI, даташиты доступны. Нужно только поставить боковую подсветку и оптику для работы на нужной вам высоте подвеса сенсора над поверхностью (у сенсора можно получить картинку, которую он видит, для настройки резкости, например). У нас ADNS-3080 на ~15 см над дорогой на асфальте, бетоне, линолеуме, кафеле дает ошибку порядка 0.5% на десятках метров.
|
|
|
|
|
Jun 14 2011, 11:20
|
Участник

Группа: Участник
Сообщений: 51
Регистрация: 9-10-06
Из: Киев
Пользователь №: 21 117

|
Спасибо. А софт для боработки изобрадения саме писали? И еще момент. Как Вы справились с накоплением погрешности? Ведь это главная проблема как в инкрементальных сенсорах (энкодерах), так и в таких вот...оптических. И расстояние меня удивило. Там по описанию: 2,5 мм (distance from lens plane to surface). Вы какие-то хитрые линзы ставили?
|
|
|
|
|
Jun 14 2011, 21:12
|
Участник

Группа: Участник
Сообщений: 18
Регистрация: 21-04-11
Пользователь №: 64 536

|
Софт зашит во встроенный DSP датчика (и закрыт, разумеется), наружу отдаются дельты расстояния по X и Y в пикселях картинки, плюс некоторые параметры вроде средней яркости, "качества" картинки (количество features, насколько я понял). Судя по даташитам, алгоритмы основаны на optical flow. Накопление погрешности корректируется с помощью GPS. Насчет оптики: родной корпус с пинхолом не трогали, поверх прикрутили объектив для камер видеонаблюдения под резьбу M12x0.5, фокусное f=6.3мм (в принципе подходят любые от 2.5 до 8 мм, пробовали все что были под рукой, качественной разницы нет).
|
|
|
|
|
Jun 14 2011, 23:30
|
Участник

Группа: Участник
Сообщений: 18
Регистрация: 21-04-11
Пользователь №: 64 536

|
Цитата(Sirko @ Jun 15 2011, 02:53)  Не всегда (в смысле не только) http://dump.bitcheese.net/images/ywuvyga/sensor_shot.png - устрашающая надпись на сигаретной пачке, с точки зрения датчика с нашей оптикой.
Сообщение отредактировал LexsZero - Jun 14 2011, 23:30
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|