Как загрузить карту помещения в контроллер Arduino

Тема в разделе "Arduino & Shields", создана пользователем Den1975, 21 мар 2014.

  1. DrProg

    DrProg Вечный нерд

    На бытовом уровне, думаю, ничего не сделать.
     
    ИгорьК нравится это.
  2. AbaddoN__S

    AbaddoN__S Нерд

    Извиняюсь если не понял что требуется, но на днях видел статью на гиктаймсе "Зрение для робота" - не поможет в Вашей проблеме?
     
  3. archeryMaster

    archeryMaster Нуб

    Пробовал делать карту помещения УЗ датчиком. Шторы рассеивают сигнал, выдаёт в 1м от шторы 4,5м и долго на неё пищит, ждёт ответа наверно...
     
  4. А что мешает просто упереться в стену и объехать комнату по контуру убирая пыль и запоминая контур?
    А потом "закрасить" пространство параллельно одной из стен пользуясь боковыми дальномерами, калебруя чтобы расстояние сбоку было одинаковым пока агрегат движется, а препятствия объезжать возвращаясь на ту же боковую длину.
    -
    Два дальномера поставить по принципу плоттера вперед и вбок. А роботу сделать возможность двигаться боком
     
    Последнее редактирование: 20 июн 2016
  5. ostrov

    ostrov Гуру

    Вот сделаете так, покажете.
     
  6. Arkad_snz

    Arkad_snz Гик

    Насколько я понял то, что в меня впихивали 5 лет в универе - Инерциальная система навигации и призвана ориентироваться без внешних ориентиров (сетки на полу).
    В околоземном космосе же верстовых столбов, и указателей нет, а спутники летают, а космонавты возвращаются домой.
    По идее Ардуино с акселерометром должна справиться с классической задачей навигации.
    _____
    Задача1: Аппарат стартует из точки (0,0), и движется в произвольном направлении с произвольной скоростью. В любой момент времени аппарат должен "знать" свою координату.
    Аппараты специального назначения должны еще к тому же "знать" свою ориентацию, и скорость (куда смотрит дуло орудия, или куда полетит ГЧ после отделения).
    _____
    Задача2: Аппарат стартует из точки О(0,0) и движется по произвольной траектории (по командам оператора с ПДУ, например, или из каких-то своих "соображений"), по таймеру или по команде оператора аппарат "запоминает" время и свою текущую координату.
    По команде оператора "к ноге!" аппарат возвращается в точку О.
    После чего прочитывается "черный ящик" аппарата, и на компе строится траектория пройденного пути.
    _____
    Вторая задача полностью покрывает задачу построения карты помещения просто погоняв такого робота по коридорам.
     
    Последнее редактирование: 8 окт 2016
  7. ostrov

    ostrov Гуру

    Все это мечты. Реальность суровее.
     
  8. Arkad_snz

    Arkad_snz Гик

    На то и человек на земле - чтобы реальность не борзела.
    Кстати, у человека именно инерциальная система навигации-ориентации - нам не обязательно трогать стены, чтобы навестить ночью белого друга.
     
  9. Tomasina

    Tomasina Сушитель лампочек Модератор

    проскальзывание одного из колес при резком старте, либо скользкой поверхности, либо неидеальности теххарактеристик привода (относительно остальных) приведет к отклонению реального положения от расчетного. Потому что инерциалные СН это не видят. Даже на 10 кв. метрах при 6-8 поворотах это уже приведет к невозврату в исходную точку.

    Так что корректирующие внешние "базовые станции" необходимы.
     
  10. ostrov

    ostrov Гуру

    Пока что без "опорных точек" вряд ли возможно сделать устройство ориентирующееся в пространстве как человек даже ночью. Увы, вычислительный мощности и качество сенсоров отличаются. )
     
  11. Arkad_snz

    Arkad_snz Гик

    Все это верно для неинерциальных СН (штурман в самолете или на корабле) течение или ветер "снесет" аппарат, и штурман запарится это учитывать
    В том и смысл ИСН, что она не опирается на внешние ориентиры (скорость вращения колес, течения, ветер,кот поиграл с роботом).
    Разница (на пальцах) примерно такая: Сидите вы в поезде у окошка, ждете оправления. Как вы определяете, что поезд тронулся?
    У вас два способа: 1 - "вокзал поехал" наблюдаете в окно перемещение здания вокзала. 2 - вас "дернуло" и прижало к спинке кресла.
    Вот первый способ - неинерциальный, второй инерциальный (вам неважно все, что "вне" вас).
     
  12. ostrov

    ostrov Гуру

    Да хорош уже мечтать то. ))
     
  13. Arkad_snz

    Arkad_snz Гик

    Чтобы имея ускорение получить текущую скорость не нужны особые вычислительные мощности! Интегрирующую RC-цепочку еще никто не отменил
    Все, что сегодня стоит в шахтах и ждет своего часа (не дай бг) создано в 60-70 годах прошлого века - какие там "вычислительные мощности"!?
    Гироскопы, акселерометры, интеграторы, компараторы. Совпали координата и вектор скорости с заданными - все-приехали - выбрасываем ложные цели и отстреливаем ГЧ.
    И Гагарин бы не объехал весь мир показывая свою улыбку, если бы ИСН не привела его «Восток» в точку спуска. Не по ЖПС же он рулил!
    Кстати, сойти с орбиты можно только в определенном месте, в определенной ориентации, и импульсом определенной величины. Гагарин все это на бумажке на коленке столбиком вычислял!?
     
    Последнее редактирование: 9 окт 2016
  14. ostrov

    ostrov Гуру

    Удачи вам. И ждем отчета.
     
  15. Arkad_snz

    Arkad_snz Гик

    Могучие ЭВМ там нужны были только для принятия решения, и распознавания образов (отличить верблюда от куста саксаула), а с обычной задачей навигации и Ардуинка справится.

    Навигация-ориентирование и выбор маршрута - разные весчи!
    Навигация - это определение своих координат в некоей мировой системе координат МСК "Боцман, где мы?"
    Ориентация - определение направлений осей МСК относительно своих осей - "Где здесь север?"
    Выбор - это из разряда принятия решения, а это уже элемент искусственного интеллекта - Ардуина не потянет

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

    Зная свои координаты и координаты цели карта не нужна!
    Достаточно тупенького алгоритма обхода препятствия ( по правой или левой стенке).
    Карта нужна если робот-наседка выводит из лабиринта цыплят, и дает им команды.
    Помните "Страна богровых туч" Стругацких? Там бронетанк рулил командой мелких роботов-разведчиков

    Если визуально следить, то проще как кутенка - за шиворот и "на место!". Поставил руками в базовую точку с известными координатами, и нажал кнопочку "Место!"

    Пинг - он и есть Пинг. Хоть на УЗ, хоть на ИК. Все равно есть предел скорости для передачи сигнала (Любого!)
    Кстати, еще к тому же скорость звука не всегда и не везде одинакова.

    Как точное расположение углов комнаты (в которых висят радиомодули) даст вам координаты тележки?

    Движение по графическим меткам ничем не отличается от движения в темноте "на ощупь", "по стеночке". Стенка - тоже метка.
    Поставьте щупы на левом и правом бортах, и вперед.

    Зачем по линии двигайтесь по стеночке!
     
    Последнее редактирование модератором: 9 окт 2016
  16. Arkad_snz

    Arkad_snz Гик

    Тема расползлась от загрузки плана помещения на кучу частных подзадач.
    Предлагаю определиться с постановкой задачи, а потом затевать дебаты о путях ее решения.
    Вот какие задачи, в той или иной форме, озвучены в теме:
    1. Сканирование (составление карты) лабиринта (любое помещение, квартира, спортзал, вообще говоря, есть лабиринт) Хорошо бы карту хранить в ЕПРОМЕ, или на СД, а дома - выгрузить в ПК. Вариации: сканирование стен, или осевой линии коридоров.
    2. Прохождение лабиринта - ставим робота перед входом в лабиринт, и жмем "пуск" робот должен выйти из лабиринта через выход, где его ждет "морковка" - магнитик на полу. Варианты: с картой (см задачу 1), и без оной.
    3. Достижение цели - считаем, что на лабиринт наложена декартова система координат (в метрах, сантиметрах - не важно) вход в лабиринт имеет координату (0,0) Задача робота найти "морковку" в точке с заданными координатами (х,у) - общий случай задачи прохождения без карты (очевидно, что выход находится в точке (0,H+d), где Н - высота лабиринта, d - на сколько нужно выехать за пределы лабиринта)
    Если унифицировать лабиринт (выработать единую для всех схему), и "весовые категории" роботов (с ЖПС, без...) то можно устраивать заочные состязания Чемпионат по робомногоборью на приз Амперки... (м.б.) - болельщики, репортажи с заездов, ставки, страсти. эмоции...
     
    Последнее редактирование: 9 окт 2016
  17. Хомяк

    Хомяк Нерд

    я вот тоже этим занимаюсь, смысл в том что робот должен доехать в определенную точку(координату), все же карту надо, в идеале ткнул пальцем и он туда поехал, но можно и забитые, ткнул кнопку приехал куда было сказано в переменных и уехал домой. но проблема именно в том как он определит где он, с ездой фиг сней, можно просто int x = 0; int y = 0; for(x<ну там 7; x++){void goForward(просто 1 клетка - 1 секунда движения - 50 см)} for(y<ну там 9; y++){void right
    void goForward}, но именно с позиционированием, буксировка, заряд аккума, моторы даже(не одинаковые же, ну есть погрешность) - все это мешает, а робот и не знает нихрена где он, камера магнитики, полосочки, маяки это не хорошо? фиг с ним с оптимальным путем, как узнать где он?
     
    Последнее редактирование: 19 дек 2016
  18. Хомяк

    Хомяк Нерд

    у меня только 3 ИК дальномера, можно и докупить че нить, но рисовать неохото на полу, портится, камера это тоже хрень, можно скорость определить акселерометром, я думаю, и дальше milis(внутренний отсчет времени роботы) ну и по S = v*t высчитать, я думаю так можно, а направление по горизонту тем же акселерометром или там гироскопом
     
    Последнее редактирование: 19 дек 2016
  19. Хомяк

    Хомяк Нерд

    к сожалению нет, зачем, с препятствием фиг с ним, тут проблема в позицианированием робота в пространстве, жпс, сразу нет, погрешность велика, она я так понял должна быть +/- 10-20 см по в каждую сторону, и в перед/назад и лево/право
     
  20. rkit

    rkit Гуру

    3 УЗ излучателя в углах комнаты и норм.