Ультразвуковая локальная система позиционирования

Тема в разделе "Глядите, что я сделал", создана пользователем Daemon2017, 6 авг 2015.

  1. Daemon2017

    Daemon2017 Нерд

    [​IMG]

    Забабахал ультразвуковую локальную систему позиционирования для мобильных роботов.

    Рабочая зона: 32 кв.м.
    Точность: +-5 см.

    Я допустил некоторые ошибки по незнанию и переделывать что-либо было поздно, но в статье постарался предостеречь читателей от их повторения.

    Полную документацию под моим авторством можно прочитать на ВикиВерситете. Если что-то расписал недостаточно понятно - комментируйте, я дополню статью :)

    Огромное спасибо форумчанам Megakoteyka, NR55RU, Unixon за помощь и ответы на мои глупые вопросы на старте проекта.

    Спасибо магазину Амперка за возможность быстро купить абсолютно любые комплектующие, когда время решает всё. Единственная деталь, которой в Амперке не нашлось, это плата расширения для Дуни, на которой установлены винтовые клеммные колодки - золотая вещь! Не подумывали наладить производство таких?
     
    BGreen, Megakoteyka и Alex19 нравится это.
  2. DrProg

    DrProg Вечный нерд

    Где должен находится робот? На полу? А посторонние предметы разве не мешают?
     
  3. Daemon2017

    Daemon2017 Нерд

    Да, при использовании текущей конфигурации (3 спутника) система может определять положение робота в пространстве, но с очень значительной ошибкой, поэтому этот функционал я даже нигде не описывал.

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

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

    vvr Инженерище

    почитал вашу статью - просто фундаментальное исследование
    можно сказать только одно МОЛОДЦА!!!!!!!
     
  5. Daemon2017

    Daemon2017 Нерд

    Спасибо :) В последующей работе над системой постараюсь держать планку.
     
  6. DrProg

    DrProg Вечный нерд

    А если сделать на инфракрасных датчиках?
     
  7. Daemon2017

    Daemon2017 Нерд

    В статье описана причина, почему невозможно использовать радиоканал. С ИК-датчиками всё аналогично: скорость света это примерно 300 млн м/с, поэтому задержка прохождения светового луча от передатчика к приемнику настолько мала, что ни одна Arduino не справится с её замером.

    Например, задержка до объекта (приёмника), расположенного в 5 метрах от передатчика:
    5 м / 300 000 000 м/с = 1.6(6)^-8 c
    А степень "-9" это уже наносекунды. Если я не ошибаюсь, то Arduino способна считать только каждую четвертую микросекунду, а это секунда в степени "-6".

    Так что свет нам здесь не помощник :(
     
  8. DrProg

    DrProg Вечный нерд

    Есть же готовые датчики расстояния на ИК.
     
  9. geher

    geher Гуру

    Готовые датчики на ИК основаны на регистрации отраженного сигнала. В связи с этим возникают вопросы к материалам поверхностей. Для измерения расстояния таким датчиком луч должен быть достаточно точно ориентирован относительно приемника. Плюс возможная засветка любым теплым объектом или каким-нибудь инфракрасным пультом.
    Причем подозреваю, что там все основано совсем не на измерении времени распространения инфракрасного излучения в пространстве.
    Так что не для данного случая штука.
    Кроме того тут интересна сама модель функционирования системы, как у систем GPS. Такую на дешевых компонентах в радио или оптическом диапазоне электромагнитного излучения не построишь. Точности измерения не хватит.
     
  10. Daemon2017

    Daemon2017 Нерд

    Там несколько различные принципы определения расстояния до преграды (объекта). УЗ дальномеры используют время задержки (т.е. результат мы получаем умножив время задержки на скорость звука), а ИК - угол приема сигнала (т.е. триангуляция).