Maverick
May 19 2016, 09:15
Например есть в руках находится два предмета.
Как узнать что предмет находится слева/справа/снизу/сверху/сзади/спереди от другого предмета.
В каждый предмет заложены гироскоп и акселерометр и какое то передающее устройство для связи с ПК (не важно).
Возможно не хватает какого-то датчика...
Постоянно контролировать значения с датчиков не хочется, зная начальное положение. Хочется работать в определенные моменты времени.
Может есть какие то готовые варианты решения (не дорогие) ?
Может алгоритмы какие-то существуют?
любые гироскопы/акселерометры измеряют не координаты, а производные (первые и вторые) от них, и без периодической калибровки по абсолютному положению, шумы и ошибки будут копиться при интегрировании и рано или поздно показания расползуться на столько что станут бесполезными.
можно посмотреть в сторону света/радио/ультразвука: времяпролётного, фазового с двумя приёмниками или просто по диаграмме направленности и RSSI, но не зная требуемых размеров, точностей, минимальных/максимальных расстояний и времени измерений сложно что-то конкретное посоветовать
Maverick
May 19 2016, 10:51
Цитата(_pv @ May 19 2016, 13:48)

любые гироскопы/акселерометры измеряют не координаты, а производные (первые и вторые) от них, и без периодической калибровки по абсолютному положению, шумы и ошибки будут копиться при интегрировании и рано или поздно показания расползуться на столько что станут бесполезными.
можно посмотреть в сторону света/радио/ультразвука: времяпролётного, фазового с двумя приёмниками или просто по диаграмме направленности и RSSI, но не зная требуемых размеров, точностей, минимальных/максимальных расстояний и времени измерений сложно что-то конкретное посоветовать
максимальное удаление предметов друг от друга 0 (соприкосновение между собой) - 1 метр
точность 1см или меньше
Размеры предметов от 3*3*3 см до 10*10*10 см или плоские с высотой 1-3 см
Предметов может быть до 9 штук.
В первом посте это был самый простой вариант.
Serhiy_UA
May 19 2016, 11:02
Цитата(Maverick @ May 19 2016, 13:51)

максимальное удаление предметов друг от друга 1-2 метра
точность 1см или меньше
Возможно, поможет...
http://electronix.ru/forum/index.php?showt...132866&st=0По мне, для таких условий, с ультразвуком было бы попроще.
тогда пожалуй ультразвуком проще всего, утразвуковой gps, по углам расставить пищалки в предметах - приёмники.
можно даже немного упростить задачу добавив синхронизацию по радио (какой-нибудь nrf24l01 100-200нс обеспечит, да и связь с внешним миром всё равно нужна) чтобы не по разности времени распространения как в gps, а прямо измерять расстояния от излучателей по предметов.
либо наоборот в предметы пищалки, которые каждая на своей частоте периодически коротенько пищит и несколько синхронизированных приёмников микрофонов по углам, тогда в самом предмете никаких мозгов кроме пищалки и 555 таймера.
но вот насчёт 1см, особенно если предметы перекрывают друг друга и/или еще кто-нибудь встанет между предметом и приёмником, могут быть сложности.
Maverick
May 19 2016, 12:44
Цитата(_pv @ May 19 2016, 14:47)

тогда пожалуй ультразвуком проще всего, утразвуковой gps, по углам расставить пищалки в предметах - приёмники.
можно даже немного упростить задачу добавив синхронизацию по радио (какой-нибудь nrf24l01 100-200нс обеспечит, да и связь с внешним миром всё равно нужна) чтобы не по разности времени распространения как в gps, а прямо измерять расстояния от излучателей по предметов.
либо наоборот в предметы пищалки, которые каждая на своей частоте периодически коротенько пищит и несколько синхронизированных приёмников микрофонов по углам, тогда в самом предмете никаких мозгов кроме пищалки и 555 таймера.
но вот насчёт 1см, особенно если предметы перекрывают друг друга и/или еще кто-нибудь встанет между предметом и приёмником, могут быть сложности.
может посоветуете какие-то пищалки?
Serhiy_UA
May 19 2016, 13:07
по-моему, пищалки лучше в предметах. для внешних приемиков проще время синхронизовать, ну и вообще проще уравнения
Maverick
May 19 2016, 13:21
Цитата(yes @ May 19 2016, 16:15)

по-моему, пищалки лучше в предметах. для внешних приемиков проще время синхронизовать, ну и вообще проще уравнения
допустим их разложили на полу в один ряд (прямая линия) или в несколько рядов (образуя прямоугольник/квадрат)
как узнать их порядок?
по первой ссылке:
Цитата
— это я немного поводил рукой перед сенсором.
Последние значения показывают неспособность сенсора определить расстояние до объекта.
по времени распространения звука известно расстояние от объекта до каждого неподвижного приёмника с заранее известными координатами.
если построить сферу с приёмником в центре и намеренным расстоянием, то две таких сферы от двух разных приёмников в пересечении дадут окружность.
а если приёмников 3, то пересечение еще одной сферы с полученной окружностью - две точки, если приёмников 4 и больше то точка пересечения будет одна - искомое положение предмета.
Цитата
по первой ссылке:
Цитата
— это я немного поводил рукой перед сенсором.
Последние значения показывают неспособность сенсора определить расстояние до объекта.
HC-SR04 слишком направленные, надо что-нибудь вроде
http://www.aliexpress.com/item/Hot-sale-El...2321322898.html только не такое китайское, чтобы хоть какой-нибудь даташит с ачх был.
ну и собственно если загородить чем-нибудь прямо около источника или приёмника требуемый 1см точности можно и не получить.
Maverick
May 19 2016, 13:40
Цитата(_pv @ May 19 2016, 16:32)

по времени распространения звука известно расстояние от объекта до каждого неподвижного приёмника с заранее известными координатами.
если построить сферу с приёмником в центре и намеренным расстоянием, то две таких сферы от двух разных приёмников в пересечении дадут окружность.
а если приёмников 3, то пересечение еще одной сферы с полученной окружностью - две точки, если приёмников 4 и больше то точка пересечения будет одна - искомое положение предмета.
HC-SR04 слишком направленные, надо что-нибудь вроде
http://www.aliexpress.com/item/Hot-sale-El...2321322898.html только не такое китайское, чтобы хоть какой-нибудь даташит с ачх был.
Уравнений выходит многовато... Проще никак?
Мне надо знать взаимное положение 4 (максимум 9) предметов друг относительно друга, чтобы правильно управляющее устройство могло им передать данные для выполнения.
Например, изначально предметы размещались в ряд так: 1 2 3 4
Потом их переставили: 3 2 1 4
Или расставили в 2 ряда:
3 1
2 4
Цифрами обозначены предметы, чтобы не рисовать, показал схематически.
Как мне узнать где какой предмет?
достаточно 4 приемника (в вершинах тетраэдра лучше всего)
каждый предмет должен пищать уникальным образом и иметь некий таймштамп/старт (то есть просто частота не годится) - ну я бы предложил что-то типа М-последовательностей, кодов Голда. но нужно смотреть, как модулировать пищалку - они все-таки резонансные и все-такое. как вариант лчм, с разными старт-стоп-скоростью (но тоже плохо из-за резонансов) - короче говоря, чтобы автокорреляция и взаимокорреляция были _хорошими_
так как расстояние небольшое, то задержка часть последовательности, целое число 0 (то есть все сильно проще, чем в ЖПСах)
ну и получается 4 уравнения для каждого предмета, для 4х неизвестных (x,y,z и некое t, относительно которого измерялись задержки максимумов корреляционных функций - ну если можем как-то синхронизировать старт передачи с предметов со временем приемника - то t не нужно)
а если все в плоскости - то 3
как-то так, по-моему
Цитата(Maverick @ May 19 2016, 19:40)

Уравнений выходит многовато... Проще никак?
Мне надо знать взаимное положение 4 (максимум 9) предметов друг относительно друга, чтобы правильно управляющее устройство могло им передать данные для выполнения.
...
Как мне узнать где какой предмет?
ну если это много уравнений, то не знаю.
Раскрасте их разными цветами (либо светодиоды с разной частотой моргающие) и повесте видеокамеру под потолок.
Maverick
May 19 2016, 20:04
Камера не желательна.
Идея понятна.
Буду разбираться далее.
Спасибо за подсказку/помощь.
lennen
May 25 2016, 16:02
Расскажите о задаче подробнее. Вообще это обычная инерциальная навигация. Вы подключили компьютер в некоторый момент времени. Допустим, что в этот момент времени объекты с акселерометрами сведены в одну точку, от которой начинаем нашу систему координат. Ничто Вам не мешает сами объекты поместить на некоторое расстояние друг от друга, просто Вы должны добавить эти значения в компьютер в качестве корректировочных. Ну и судите сами, если одна деталька переместилась к другой и села на нее, например, то на микроконтроллере это будет выглядеть так, так будто один объект передвинулся относительно точки отчета на 20 см, например. Оказался слева, допустим. Но с учетом корректировки вы увидите на экране, что один объект оказался над другим. И теперь можете перемещать их, как хотите.
Расскажите подробнее, что требуется, потому что можно что-то и поинтереснее придумать...
Цитата(lennen @ May 25 2016, 19:02)

Вообще это обычная инерциальная навигация.
на доступной компонентной базе инерциалку надо калибровать постоянно, чтобы не уходила. за 5 мин эти объекты "по приборам" улетят в космос.
lennen
May 31 2016, 14:56
А можно тогда подробнее, куда должны перемещаться объекты, каких габаритов, на какие расстояния?
Maverick
Jun 1 2016, 20:48
Цитата(lennen @ May 31 2016, 17:56)

А можно тогда подробнее, куда должны перемещаться объекты, каких габаритов, на какие расстояния?
прочтите пожалуйста все мои сообщения, там я об этом писал
Ну не за тем же, чтобы в карты мухлевть? Зачем?
Maverick
Jun 3 2016, 20:00
Цитата(lennen @ Jun 3 2016, 22:27)

Ну не за тем же, чтобы в карты мухлевть? Зачем?

не понял
Ну когда есть колода карт, они могут быть разложены и нужно найти конкретную карту
Maverick
Jul 9 2016, 16:50
Цитата(lennen @ Jul 9 2016, 12:00)

Читаем 2 сообщение
Цитата(Maverick @ Jul 9 2016, 22:50)

Читаем 2 сообщение
вообще-то можно и с инерциальными системами попробовать, если предметы в основном лежат неподвижно, перемещаются кратковременно и быстро, и не могут лежать как попало (например только на плоскости и не друг на дружке), то по показаниям можно отделить лежание от перемещения, а раз известно что предметы могут располагаться в пространстве не совсем как попало, а только определённым образом, то это можно использовать как некую калибровку абсолютного положения.
при этом всё равно остаются проблемы с тем что измеряется не абсолютное положение а только относительные перемещения и если появится ошибка в определении перемещения, то она так и останется и будет портить все последующие. и еще систему можно будет обмануть очень медленными перемещениями.
lennen
Jul 13 2016, 21:12
А вообще есть еще простой вариант. Если можно добыть всенаправленный радиодальномер в виде некоторого датчика, то можно настроить частоты каждого такого дальномера, и на приеме определять расстояние до каждого. Тогда берем 2 приемника, получаем x и y, и довольно простой вариант.
lennen
Jul 17 2016, 21:32
Ну просто я так быстро прочитал, о чем уже говорили, но представьте, что в комнате стоит любой орган зрения типа камеры, и он настроен различать информацию по любому отличительному признаку. Для глаза это цвет и расстояние, которое с OpenCV может быть зафиксировано и с помощью одной камеры по изменению размеров. Итого - мне понравился вариант с 3 измерителями и системой уравнений. Но мне как-то симпатизирует, когда это объясняется так, что у каждого объекта, например, своя частота, излучаемая всенаправлено. Например, ультразвуковая частота. И эта частота принимается приемниками в трех осях. Хотя, наверное, можно проще, но пока так.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.