Форум программистов, компьютерный форум, киберфорум
Робототехника и умный дом
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/91: Рейтинг темы: голосов - 91, средняя оценка - 4.98
xtriyi

Сенсор(ы) положения в пространстве для "слепого" робота

20.12.2011, 06:29. Показов 17001. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Посоветуйте, пожалуйста, что использовать для решения моей задачи. Требуется определить положение "слепого" робота в пространстве - хотя бы относительно точки, в которой он был в момент включения. Интересует положение:
1) по осям X и Y (Z - опционально)
2) азимут (в какую сторону смотрит)

Задача 1 решалась бы с помощью GPS, будь у него точность повыше раз так в 100 :) Можно было бы использовать какие-то радиомаяки, но в этом случае теряется автономность. Обе задачи бы решались хотя бы приблизительно при идеальном сцеплении с поверхностью через обратную связь от приводов, но увы...

Почитал про гироскопы, акселлерометры, компасы - в результате в голове каша. Где можно пройти ликбез? Что можете посоветовать из конкретных компонентов для решения этой задачи?
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.12.2011, 06:29
Ответы с готовыми решениями:

Описание класса для представления положения объекта в пространстве
Составить описание класса для представления положения объекта в пространстве. Разработать методы установки положения объекта и отдельных...

Написать программу вычисления координат положения руки робота для момента времени t1
Добрый вечер, мне нужна помощь с данными заданиями. Буду очень благодарен! Закон движения руки робота-манипулятора задан в виде ...

Построение пути для мобильного робота в двумерном пространстве
Задали мне написать алгоритм построение пути для мобильного робота в двумерном пространстве и разработать интерактивное GUI-приложение...

16
0 / 0 / 0
Регистрация: 12.04.2010
Сообщений: 3,260
20.12.2011, 07:59
Если относительно точки где включилось питание, то все проще. Достаточно просто отслеживать пройденный путь в каждую сторону с помощью простейших одометров, состоящих из фотоэлемента и диска с прорезями (как в шариковых мышках)
0
xtriyi
20.12.2011, 08:25
Цитата Сообщение от BykTiho
Если относительно точки где включилось питание, то все проще. Достаточно просто отслеживать пройденный путь в каждую сторону с помощью простейших одометров, состоящих из фотоэлемента и диска с прорезями (как в шариковых мышках)
А если будет проскальзывание? Или кто-то нагло схватит робота и перенесёт в другую точку? Не годится.
Обратная связь с приводами, как я уже сказал, есть - хотя конструктивно выполнена иначе.
0 / 0 / 0
Регистрация: 14.06.2004
Сообщений: 166
20.12.2011, 08:40
Можно использовать цифровой компас или гироскоп для определения азимута.
От проскальзывания спасет датчик наподобие датчика оптической мыши, но вот проблему с переносом с места на место даже он не решит. Для ее решения нужна система "абсолютного" позиционирования, наподобие GPS, но самому сделать нечто подобное с приемлемой точностью ИМХО не реально.
Хотя, если говорить о движении по заранее подготовленному небольшому участку - можно разложить в определенных точках RFID метки. Наехав на такую метку и зная, где она лежит, робот будет достаточно точно знать свои координаты, а азимут опять же укажет гироскоп. Другое дело, что для применения на практике идея не годится.
0
xtriyi
20.12.2011, 09:15
Цитата Сообщение от VyMT
От проскальзывания спасет датчик наподобие датчика оптической мыши
Не совсем понял, как его можно использовать. Ну, допустим, проскользнёт одно ведущее колесо относительно другого - мы это отследим. А если оба? Если поверхность скользкая? И она может запросто быть менее скользой, если робот проходит тот же участок, двигаясь в обратном направлении или под другим углом. Т.е. взаимооднозначного соответствия между числом оборотов колеса и пройденным расстоянием всё равно найти нельзя. Или я чего-то не так понимаю.

Резюмируя, могу ли я утверждать, что:
1) Компас даёт ТОЛЬКО ориентацию в пространстве относительно нигнитного поля Земли (и прочих посторонних нигнитиков :)
2) Гироскопический датчик - "пуп Земли" - мне может дать ТОЛЬКО угол в пространстве относительно "канонического" состояния (момент включения итд)
3) Акселлерометр может измерить ТОЛЬКО ускорение и никак не постоянную скорость.
?

Как следствие, ни один из этих датчиков нельзя использовать для восстановления координат - хотя бы относительно начальной точки. Следовательно, нужны внешние источники сигнала, на которые робот бы мог ориентироваться - GPS, радиомаяки, RFID-метки.
// Вон насекомые тоже по Солнцу навигацию строят, судя по тому, что от искусственных источников освещения начинают глючить :)

Либо. Он увы - должен быть зрячим, а это ставит ряд саааавсем других задач... :)
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
20.12.2011, 10:32
Цитата Сообщение от xtriyi
Либо. Он увы - должен быть зрячим, а это ставит ряд саааавсем других задач... :)
Зрение - это всего лишь еще один способ ориентирования. Из многих. Аналог позиционирования по РФИД-меткам. И его наличие так же не решает проблемы абсолютного позиционирования.
0
xtriyi
20.12.2011, 11:07
Цитата Сообщение от kytikot
Зрение - это всего лишь еще один способ ориентирования. Из многих. Аналог позиционирования по РФИД-меткам. И его наличие так же не решает проблемы абсолютного позиционирования.
Ну, смотря что понимать под зрением. Задачами распознавания образов заниматься точно не будем :)
Проблему абсолютного позиционирования зрение не решает, но делает менее актуальной.
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
20.12.2011, 11:32
Датчик оптической мыши - это фактически микрокамера, смотрит в пол и проскальзывания колес ей побоку. Но от переносов не спасет.

Есть вариант с акселерометром - если интегрировать показания акселерометра по времени, мы получим моментальную скорость. Если интегрировать скорость - получим перемещение. Но, понятное дело, будет накапливаться ошибка.
0
xtriyi
20.12.2011, 12:59
Цитата Сообщение от Stiit.mi
Датчик оптической мыши - это фактически микрокамера, смотрит в пол и проскальзывания колес ей побоку. Но от переносов не спасет.
А, ясно. Я почему-то после первого ответа опять подумал про механическую :) В принципе можно попробовать.

Цитата Сообщение от Stiit.mi
Есть вариант с акселерометром - если интегрировать показания акселерометра по времени, мы получим моментальную скорость. Если интегрировать скорость - получим перемещение. Но, понятное дело, будет накапливаться ошибка.
Да, была такая мысль. Можно было бы попробовать сделать оценку величины этой ошибки. Только надо собирать эмпирические данные, никто этим конечно заниматься не будет.
SWK
20.12.2011, 13:01
Цитата Сообщение от xtriyi
Требуется определить положение "слепого" робота в пространстве - хотя бы относительно точки, в которой он был в момент включения.
Что можете посоветовать из конкретных компонентов для решения этой задачи?
Сие тайна велика есть...

Сам давно над этим думаю.
Более - менее однозначно ни один из методов не решает (кроме навигаторов, но у них, как упоминалось, недостаточная для комнатного робота точность).
Я уже неоднократно выкладывал свои соображения по этому поводу, как в своих, так и чужих темах. Просмотрите темы раздела Робототехника, там много уже накопилось.

Если же коротко - нужно использовать несколько методов одновременно, дополняя и уточняя друг друга.
Более - менее точным и наиболее информативным является круговое сканирование УЗ локатором с достаточно узким лучом, и дальностью от 0,2-0,3 до 5-10м. Точность определения расстояний им довольно высока, (до долей сантиметра), а уговое разрешение - порядка 30 и менее градусов.
Имея данные этой круговой панорамы в памяти для точки старта, можно вычислить перемещения относительно ее и для других точек, лежащих в пределах отсканированного участка. В дополнение - хранить в памяти также карту помещения или местности, полученную при первичном обследовании доступной территории, и делать привязку к ней текущего положения, также отслеживать перемещения одометрами колес, уточнять свое положение и границы территории, а также препятствия, датчиками ближней зоны - ИК локатором, датчиками столкновения бамперов, можно использовать также для привязки расположенные по территории маячки (например, на кормушке - зарядном усиройстве). Азимут отслеживать (или уточнять) также по гироскопу. Магнитный компас вряд ли будет работать хорошо в роботе, среди кучи железа и нигнитов (по крайней мере, в моем роботе).
От акселерометров тоже мало толку, при малых скоростях и перемещениях робота. Да и обьем вычислений с ними получается большой, а погрешность велика...
xtriyi
20.12.2011, 18:58
SWK, спасибо за детальный разбор ситуации. Я так понял, задача "интересует всё прогрессивное человечество", а не только новичков робототехнике типа меня :) Идеального решения пока не найдено, в конечном счёте конкретная реализация будет зависеть от решаемых задач. Будем думать, чего хотим в первую очередь :)
Rotomd_Disshoym
22.12.2011, 01:33
Решения есть, но они очень дороги.
Если интересно - надо смотреть в сторону БИНС (бесплатформенные инерциальные навигационные системы). Координаты вычисляются по показаниям датчиков угловых скоростей и акселерометров. Показания интегрируются, отсюда очень жесткие требования к точности датчиков и задания начального положения, так как все ошибки при интегрировании накапливаются. Из-за необходимости прецизионных датчиков система получается очень дорогой.
0 / 0 / 0
Регистрация: 11.06.2010
Сообщений: 351
28.12.2011, 04:31
Где-то здесь кто-то писал о УЗ (ультра звук) навигации, я немного пораскапывал, первая проблема, непонятно где взять излучатели и микрофоны, частоты нужны около мегагерца для приемлемой точности. Дальше надо детектировать сигнал и точное время его приема, есть о чем подумать. Возможны схемы с одним подвижным излучателем и множеством неподвижных приемников либо наоборот, что будет лучше, тоже надо думать. Вычисление координат по полученным задержкам кажется уже более простой задачей, для меня.

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

Ну и всегда полезно объединять подобные методы с инерциальной навигацией для взаимной компенсации недостатков.
0
0 / 0 / 0
Регистрация: 12.04.2010
Сообщений: 3,260
28.12.2011, 06:09
Цитата Сообщение от omooro
Где-то здесь кто-то писал о УЗ (ультра звук) навигации, я немного пораскапывал, первая проблема, непонятно где взять излучатели и микрофоны, частоты нужны около мегагерца для приемлемой точности. Дальше надо детектировать сигнал и точное время его приема, есть о чем подумать. Возможны схемы с одним подвижным излучателем и множеством неподвижных приемников либо наоборот, что будет лучше, тоже надо думать. Вычисление координат по полученным задержкам кажется уже более простой задачей, для меня.
Все уже придумано. Лично я взял парочку вот таких модулей. Дешево и сердито. Управление проще некуда. В инете есть примеры управления как на С, так и на асме. Выслали в день оплаты, сейчас жду когда приедут, но наверняка уже в следующем году.
0
0 / 0 / 0
Регистрация: 11.06.2010
Сообщений: 351
28.12.2011, 06:39
Цитата Сообщение от BykTiho
Все уже придумано. Лично я взял парочку вот таких модулей. Дешево и сердито. Управление проще некуда. В инете есть примеры управления как на С, так и на асме. Выслали в день оплаты, сейчас жду когда приедут, но наверняка уже в следующем году.
Это сонар/дальномер, оно меряет расстояние до препятствия, а я говорил о измерении расстояний от робота до скажем четырех фиксированных точек (возможно даже не самих расстояний а их разностей), детектируется не отраженный сигнал а прямой, на выходе координаты в пределах комнаты (ну или некоторого объема охваченного датчиками).

Приходят по ночам всякие идеи. Ставим камеру на двух-осевом подвесе (две сервы или шаговых) так чтобы можно было следить за целью, цель - робот с мигающим светодиодом или ещё каким то видимым маяком. Алгоритм обработки картинки простой и может бытьреальзован на PC т.к. камера не двигается, в качесве камеры любая web. Надо поворачивать подвес так чтобы маяк был в центре изображения, улы поворота при этом дают напрвление, остается оценить расстояние, по размеру или делая проекцию на пол если робот ползучий. Хотя можно камерой и не двигать если она имеет достаточно широкий угол, тогда механическая часть отсутсвует и все совсем просто. Недостатки очевидны, препятсвия загораживающие робота от камеры и возможно плохая точность.
0
0 / 0 / 0
Регистрация: 12.04.2010
Сообщений: 3,260
28.12.2011, 06:53
Как вариант - посылка синхронного радиосигнала, но с разной несущей. Если будет 4 источника (по углам), то имеем 4 "разных" сигнала. Разница по времени в приеме этих сигналов можно пересчитать в относительные координаты. Тот же GPS только боком ;)
0
SWK
28.12.2011, 09:36
Цитата Сообщение от BykTiho
Как вариант - посылка синхронного радиосигнала, но с разной несущей. Если будет 4 источника (по углам), то имеем 4 "разных" сигнала. Разница по времени в приеме этих сигналов можно пересчитать в относительные координаты. Тот же GPS только боком ;)
Для малых расстояний не годится. Скорость света (и радиоволн!) на 6 порядков больше, чем скорость звука, соответственно время задержки очень мало, порядка 3,3 наносекунды на метр. Простыми схемами такие задержки не померяешь. Для измерения с точностью до сантиметра частота заполнения (тактироваеия) измерителя длительности должна быть около 30 ГГц! Да и точное определение начала пачки колебаний связано с определенными трудностями...

Лазерные дальномеры для измерения малых расстояний используют измерение сдвига фазы или интерференцию, что тоже в самоделках довольно сложно реализовать. Звук - более реально, тут имеем уже около 3мс на метр (в один конец), или 30 мксек на сантиметр, что легко меряется микроконтроллерами.

Но при использовании в реальных условиях, особенно в помещениях, нужно учитывать наличие препятствий, поглощений и отражений сигналов...

Идеально обсчитывается только сферический зеркальный конь в вакууме бесконечного обьема.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.12.2011, 09:36
Помогаю со студенческими работами здесь

Составить описание класса для представления положения объекта в пространстве
Составить описание класса для представления положения объекта в пространстве. Разработать методы установки положения объекта и отдельных...

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

Формирование положения изображений в ограниченном пространстве.
Всем привет, Хотелось бы сделать коллаж изображений в jquery, что бы при просмотре на планшете изображении не теряли размер а...

Определение положения в пространстве посредством акселерометра
Доброго времени суток, уважаемые форумчане! Не могли бы вы помочь советом или каким-то примером по разрешению моей задачи. Задача:...

Узнать углы положения смартфона в пространстве
Как можно узнать углы положения смартфона в пространчтве? Без гироскопа и магнитного датчика. Это реально? Акселерометр полагаю в этом не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru