Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: взаимное положение объектов в пространстве
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Maverick
Например есть в руках находится два предмета.
Как узнать что предмет находится слева/справа/снизу/сверху/сзади/спереди от другого предмета.
В каждый предмет заложены гироскоп и акселерометр и какое то передающее устройство для связи с ПК (не важно).
Возможно не хватает какого-то датчика...
Постоянно контролировать значения с датчиков не хочется, зная начальное положение. Хочется работать в определенные моменты времени.
Может есть какие то готовые варианты решения (не дорогие) ?
Может алгоритмы какие-то существуют?
_pv
любые гироскопы/акселерометры измеряют не координаты, а производные (первые и вторые) от них, и без периодической калибровки по абсолютному положению, шумы и ошибки будут копиться при интегрировании и рано или поздно показания расползуться на столько что станут бесполезными.

можно посмотреть в сторону света/радио/ультразвука: времяпролётного, фазового с двумя приёмниками или просто по диаграмме направленности и RSSI, но не зная требуемых размеров, точностей, минимальных/максимальных расстояний и времени измерений сложно что-то конкретное посоветовать
Maverick
Цитата(_pv @ May 19 2016, 13:48) *
любые гироскопы/акселерометры измеряют не координаты, а производные (первые и вторые) от них, и без периодической калибровки по абсолютному положению, шумы и ошибки будут копиться при интегрировании и рано или поздно показания расползуться на столько что станут бесполезными.

можно посмотреть в сторону света/радио/ультразвука: времяпролётного, фазового с двумя приёмниками или просто по диаграмме направленности и RSSI, но не зная требуемых размеров, точностей, минимальных/максимальных расстояний и времени измерений сложно что-то конкретное посоветовать

максимальное удаление предметов друг от друга 0 (соприкосновение между собой) - 1 метр
точность 1см или меньше
Размеры предметов от 3*3*3 см до 10*10*10 см или плоские с высотой 1-3 см
Предметов может быть до 9 штук.

В первом посте это был самый простой вариант.
Serhiy_UA
Цитата(Maverick @ May 19 2016, 13:51) *
максимальное удаление предметов друг от друга 1-2 метра
точность 1см или меньше

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

может посоветуете какие-то пищалки?
Serhiy_UA
Цитата(Maverick @ May 19 2016, 16:44) *
может посоветуете какие-то пищалки?

HC-SR04 с разбором:
http://robocraft.ru/blog/electronics/772.html
http://www.kosmodrom.com.ua/prodlist.php?name=distancesensor
yes
по-моему, пищалки лучше в предметах. для внешних приемиков проще время синхронизовать, ну и вообще проще уравнения
Maverick
Цитата(yes @ May 19 2016, 16:15) *
по-моему, пищалки лучше в предметах. для внешних приемиков проще время синхронизовать, ну и вообще проще уравнения

допустим их разложили на полу в один ряд (прямая линия) или в несколько рядов (образуя прямоугольник/квадрат)
как узнать их порядок?

по первой ссылке:
Цитата
— это я немного поводил рукой перед сенсором.
Последние значения показывают неспособность сенсора определить расстояние до объекта.

sm.gif
_pv
по времени распространения звука известно расстояние от объекта до каждого неподвижного приёмника с заранее известными координатами.
если построить сферу с приёмником в центре и намеренным расстоянием, то две таких сферы от двух разных приёмников в пересечении дадут окружность.
а если приёмников 3, то пересечение еще одной сферы с полученной окружностью - две точки, если приёмников 4 и больше то точка пересечения будет одна - искомое положение предмета.

Цитата
по первой ссылке:
Цитата
— это я немного поводил рукой перед сенсором.
Последние значения показывают неспособность сенсора определить расстояние до объекта.

HC-SR04 слишком направленные, надо что-нибудь вроде http://www.aliexpress.com/item/Hot-sale-El...2321322898.html только не такое китайское, чтобы хоть какой-нибудь даташит с ачх был.

ну и собственно если загородить чем-нибудь прямо около источника или приёмника требуемый 1см точности можно и не получить.
Maverick
Цитата(_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

Цифрами обозначены предметы, чтобы не рисовать, показал схематически.
Как мне узнать где какой предмет?
yes
достаточно 4 приемника (в вершинах тетраэдра лучше всего)

каждый предмет должен пищать уникальным образом и иметь некий таймштамп/старт (то есть просто частота не годится) - ну я бы предложил что-то типа М-последовательностей, кодов Голда. но нужно смотреть, как модулировать пищалку - они все-таки резонансные и все-такое. как вариант лчм, с разными старт-стоп-скоростью (но тоже плохо из-за резонансов) - короче говоря, чтобы автокорреляция и взаимокорреляция были _хорошими_

так как расстояние небольшое, то задержка часть последовательности, целое число 0 (то есть все сильно проще, чем в ЖПСах)

ну и получается 4 уравнения для каждого предмета, для 4х неизвестных (x,y,z и некое t, относительно которого измерялись задержки максимумов корреляционных функций - ну если можем как-то синхронизировать старт передачи с предметов со временем приемника - то t не нужно)
а если все в плоскости - то 3

как-то так, по-моему


_pv
Цитата(Maverick @ May 19 2016, 19:40) *
Уравнений выходит многовато... Проще никак?
Мне надо знать взаимное положение 4 (максимум 9) предметов друг относительно друга, чтобы правильно управляющее устройство могло им передать данные для выполнения.
...
Как мне узнать где какой предмет?

ну если это много уравнений, то не знаю.
Раскрасте их разными цветами (либо светодиоды с разной частотой моргающие) и повесте видеокамеру под потолок.
Maverick

Камера не желательна.
Идея понятна.
Буду разбираться далее.
Спасибо за подсказку/помощь.
lennen
Расскажите о задаче подробнее. Вообще это обычная инерциальная навигация. Вы подключили компьютер в некоторый момент времени. Допустим, что в этот момент времени объекты с акселерометрами сведены в одну точку, от которой начинаем нашу систему координат. Ничто Вам не мешает сами объекты поместить на некоторое расстояние друг от друга, просто Вы должны добавить эти значения в компьютер в качестве корректировочных. Ну и судите сами, если одна деталька переместилась к другой и села на нее, например, то на микроконтроллере это будет выглядеть так, так будто один объект передвинулся относительно точки отчета на 20 см, например. Оказался слева, допустим. Но с учетом корректировки вы увидите на экране, что один объект оказался над другим. И теперь можете перемещать их, как хотите.

Расскажите подробнее, что требуется, потому что можно что-то и поинтереснее придумать...
yes
Цитата(lennen @ May 25 2016, 19:02) *
Вообще это обычная инерциальная навигация.


на доступной компонентной базе инерциалку надо калибровать постоянно, чтобы не уходила. за 5 мин эти объекты "по приборам" улетят в космос.

lennen
А можно тогда подробнее, куда должны перемещаться объекты, каких габаритов, на какие расстояния?
Maverick
Цитата(lennen @ May 31 2016, 17:56) *
А можно тогда подробнее, куда должны перемещаться объекты, каких габаритов, на какие расстояния?

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

не понял
lennen
Ну когда есть колода карт, они могут быть разложены и нужно найти конкретную карту
lennen
А такое не подойдет разве?
http://tienda.bricogeek.com/61-medicion-inercial-imu
Maverick
Цитата(lennen @ Jul 9 2016, 12:00) *
А такое не подойдет разве?
http://tienda.bricogeek.com/61-medicion-inercial-imu

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

вообще-то можно и с инерциальными системами попробовать, если предметы в основном лежат неподвижно, перемещаются кратковременно и быстро, и не могут лежать как попало (например только на плоскости и не друг на дружке), то по показаниям можно отделить лежание от перемещения, а раз известно что предметы могут располагаться в пространстве не совсем как попало, а только определённым образом, то это можно использовать как некую калибровку абсолютного положения.
при этом всё равно остаются проблемы с тем что измеряется не абсолютное положение а только относительные перемещения и если появится ошибка в определении перемещения, то она так и останется и будет портить все последующие. и еще систему можно будет обмануть очень медленными перемещениями.
lennen
А вообще есть еще простой вариант. Если можно добыть всенаправленный радиодальномер в виде некоторого датчика, то можно настроить частоты каждого такого дальномера, и на приеме определять расстояние до каждого. Тогда берем 2 приемника, получаем x и y, и довольно простой вариант.
lennen
Ну просто я так быстро прочитал, о чем уже говорили, но представьте, что в комнате стоит любой орган зрения типа камеры, и он настроен различать информацию по любому отличительному признаку. Для глаза это цвет и расстояние, которое с OpenCV может быть зафиксировано и с помощью одной камеры по изменению размеров. Итого - мне понравился вариант с 3 измерителями и системой уравнений. Но мне как-то симпатизирует, когда это объясняется так, что у каждого объекта, например, своя частота, излучаемая всенаправлено. Например, ультразвуковая частота. И эта частота принимается приемниками в трех осях. Хотя, наверное, можно проще, но пока так.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.