День добрый, коллеги,
BR,
gandalvab писал(а):Ну просто на уровне идеи.
Ставим на робота 4 пьезоизлучателя(можно надергать из тех же hc-sr04) направленные в разные стороны. Фигачим пачки 40килогерц скажем с частотой 10 герц. На стены вешаем 3 приемника(в каждом приемнике по несколько пьезоприемников из тех же hc-sr04 и операционные усилители с микрухой(к примеру atmega8)). Как только приемник примет пачку он поднимает ногу в 1-ку например на 20мс. Все три приемника мы подключаем к одной микрухе к примеру atmega328. На 328-й мы ловим первую поднявшуюся ножку, затем начинаем считать время до следующих поднявшихся ножек. В итоге мы знаем 2 временных разницы прохождения звука до 3-х датчиков.
Что мы имеем
x1,y1,z1 - координаты датчика 1
x2,y2,z2 - координаты датчика 2
x3,y3,z3 - координаты датчика 3
zr - координата робота по высоте.
d1,d2 - разность расстояний от первого сработавшего датчика до 2-го и 3-го
Что нужно вычислить
d - расстояние до первого сработавшего датчика
xr,yr - координаты робота
После того как мега 328 вычислит координаты робота она может по сети отправить udp широковещательный пакет о текущих координатах или по http только тогда надо знать адрес и порт робота.
Мне кажется что система должна работать, поправьте если я не прав.
Да, примерно, так мы и работаем.
Пара вопросов:
- А вы уже знаете координаты маяков на стенах?
Добавлено спустя 3 минуты 7 секунд:gandalvab писал(а):Вот нашел, кто-то уже реализовал такую систему:
тутТолько можно было сделать намного проще и с поддержкой нормальной сети LAN на 328-й меге. Плюсом легко можно сделать в такой системе поддержку нескольких роботов. Первый робот шлет по сети пакет мол давай определим мои координаты, система отвечает я готова или занята. Робот отправляет ультразвук, система его обрабатывает и вычисляет координаты, потом координаты отправляются роботу. Если скажем по квартире катается несколько роботов то каждому присваиваем уникальный идентификатор и при запросе они его указывают а система с координатами шлет и идентификатор того кому этот пакет.
Да, и так тоже мы делаем. Time division multiple access.
Из ссылки:
Единственным способом устранения этого недостатка является увеличение расстояния между Приёмниками — при его увеличении в 4 раза, то есть до 2 м, область разброса уменьшится более чем в 4 раза. Проведем расчеты:Именно поэтому мы отказались от множественных датчиков на роботе - расстояние между ними малое. И, даже, малые погрешности измерения расстояния приводили к относительно большим погрешностям вычисления положения. Чем больше база между приемниками или передатчиками - сенсорами - тем выше точность.
На точность влияет, конечно, очень много показателей.
Добавлено спустя 2 минуты 16 секунд:Scorpio писал(а):Примерно на таком принципе, только в 2D, работают
электронные мишени. У них по углам установлены 4 пьезомикрофона.
Здесь достигается высокая точность за счет того, что высчитывается положение внутри фигуры, описанной микрофонами. Если бы нужно было бы измерять далеко мне поля мишени, точность бы падала очень быстро.