Математика определения источника звука[RoboBus, звук]

Обсуждаем рождающиеся мысли и результаты экспериментов.

Математика определения источника звука[RoboBus, звук]

Сообщение blindman » 14 май 2009, 15:00

Тема выделена оттуда: Проект звукового модуля под шину RoboBus.
<Digit>


Внимание!
Правила темы:
Все сообщения, отклоняющиеся от математического направления в общие принципы и прочие сопутствующие обсуждения считаются оффтопиком, т.е. ЗАПРЕЩЕНЫ!


Кто шарит в математике, помогите плиз

micro.png
micro.png (7.96 КиБ) Просмотров: 25025


Есть 3 точи расположенных на окружности заданного радиуса LaTeX: R = \left|O-B\right| через 120°. Есть некая точка LaTeX: X, координаты которой неизвестны. A,B,C - это микрофоны, X - источник звука. Считаем, что микрофоны и источник звука лежат в одной плоскости (горизонтальной). Известны LaTeX: \left|X-B\right| - \left|X-A\right| и LaTeX: \left|X-B\right| - \left|X-C\right|.
  1. Надо найти LaTeX: \angle XOB и LaTeX: \left|X-O\right|
  2. Если перейти из плоскости в пространство, и допустить, что источник звука может находиться вне плоскости микрофонов, то будет ли формула из п.1 справедлива для LaTeX: \angle X'OB и LaTeX: \left|X'-O\right|, где LaTeX: X' - проекция точки LaTeX: X на плоскость микрофонов.
  3. Верно ли, что 3 микрофонов недостаточно, чтобы определить не только LaTeX: \angle X'OB (LaTeX: \angle XOB), но и угол возвышения источника звука? Похоже что это верно ...
Последний раз редактировалось Digit 15 май 2009, 16:45, всего редактировалось 2 раз(а).
Причина: дорисовал правила этой темы
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Проект звукового модуля под шину RoboBus

Сообщение =DeaD= » 14 май 2009, 15:14

blindman писал(а):[*] Верно ли, что 3 микрофонов недостаточно, чтобы определить не только LaTeX: \angle X'OB (LaTeX: \angle XOB), но и угол возвышения источника звука? Похоже что это верно ... [/list]

Модуль угла определить будет можно, а вот знак - нет.

Как и на плоскости с 2 микрофонами - пересечение 2 окружностей за редкими исключениями либо 0 либо 2 точки.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Проект звукового модуля под шину RoboBus

Сообщение blindman » 14 май 2009, 15:21

=DeaD= писал(а):Известны расстояния до них от робота.

В общем случае - нет. Мы не можем определить расстояние от источника звука до микрофона, так так источник звука не контролируем. Но мы можем определить насколько источник звука дальше от одного микрофона, чем от другого.

Добавлено спустя 5 минут 34 секунды:
=DeaD= писал(а):Модуль угла определить будет можно, а вот знак - нет.

Даже это и то хорошо. Если микрофоны достаточно низко, то при небольшом модуле угла можно считать, что источник на одном уровне с микрофонами, иначе - выше
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Проект звукового модуля под шину RoboBus

Сообщение =DeaD= » 14 май 2009, 15:27

blindman писал(а):
=DeaD= писал(а):Известны расстояния до них от робота.

В общем случае - нет. Мы не можем определить расстояние от источника звука до микрофона, так так источник звука не контролируем. Но мы можем определить насколько источник звука дальше от одного микрофона, чем от другого.

Тогда берём решение из темы mandigit'а :)
У него вроде сходилось за 5-10 итераций всё.

Добавлено спустя 1 минуту 7 секунд:
Вот оно: [[Определение координат робота по расстояниям до маяков, измеренным с одинаковым отклонением]]
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Проект звукового модуля под шину RoboBus

Сообщение blindman » 14 май 2009, 15:33

=DeaD=, а твои формулы нельзя выразить через разности расстояний вместо самих расстояний?

Добавлено спустя 3 минуты 37 секунд:
А чего формулы то удалил ? Восстанавливаю :
=DeaD= писал(а):Задачу надо обобщить до: есть 3 маяка с известными координатами. Известны расстояния до них от робота. Определить координаты робота.
Пусть координаты маяков (x1,y1), (x2,y2), (x3,y3), расстояния до них d1,d2,d3.
Координаты робота искомые - (x,y).
Получаем систему с 2 неизвестными и 3 уравнениями (xi-x)^2+(yi-y)^2=di^2
Очевидно что она не будет решаться часто из-за погрешности.
Выпишем некоторую погрешность определения каждого расстояния (xi-x)^2+(yi-y)^2=(di+pi)^2
Значит нам надо будет найти такие (x,y), чтобы p1^2+p2^2+p3^2 было минимально.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Проект звукового модуля под шину RoboBus

Сообщение =DeaD= » 14 май 2009, 15:35

Выразить то можно, как решать то потом получившуюся чудовищного вида систему?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Проект звукового модуля под шину RoboBus

Сообщение blindman » 14 май 2009, 15:39

А может попробуешь? ;) Может не такая и чудовищная она получится ? ;)

Предлагаю задачу упростить - оставить 2 микрофона, и определить направление на источник с точностью до знака. Потом использовать третий микрофон для устранения неоднозначности
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Проект звукового модуля под шину RoboBus

Сообщение =DeaD= » 14 май 2009, 15:48

Дык пробовал уже. Геометрический подход изложен в вике так же, но проверять всё это сейчас точно не успею, это ж копец сколько математики :)

Может mandigit даст кусочек кода, а мы его в библиотеку оформим и выложим в вики? :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Проект звукового модуля под шину RoboBus

Сообщение contr » 14 май 2009, 16:32

Один направленный микрофон навести на максимум звука последовательным приближением по двум плоскостям. Вся беда, что сильно мешают отражения.
Поскольку звук случайный, то использовать 3 микрофона и определить источник по фазе сигнала не получится.
contr
 
Сообщения: 987
Зарегистрирован: 17 апр 2009, 15:09
Откуда: Rostov-Don

Re: Проект звукового модуля под шину RoboBus

Сообщение =DeaD= » 14 май 2009, 16:43

2blindman: Осилишь выкладки которые по итерационному алгоритму? Или помощь зала? :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Проект звукового модуля под шину RoboBus

Сообщение TrashVigor » 14 май 2009, 17:16

Тут нужна полярная система координат.Типо 2 микрофона определяют положение источника. А третий прикрученный к серве высоту.
Или платформу с микрофонами вращать, тогда если звук уходит от третьего значит впереди, и наоборот сзади.
GIRUGAMESH!
Аватара пользователя
TrashVigor
 
Сообщения: 134
Зарегистрирован: 11 июл 2008, 22:43
Откуда: Воронежск
прог. языки: С, Delphi, Asm

Re: Проект звукового модуля под шину RoboBus

Сообщение =DeaD= » 14 май 2009, 17:29

2TrashVigor: Расстояния до источника звука неизвестны, известна только их разница. Внимательно читаем условия задачи, я уже попался :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Проект звукового модуля под шину RoboBus

Сообщение blindman » 14 май 2009, 18:10

=DeaD= писал(а):2blindman: Осилишь выкладки которые по итерационному алгоритму? Или помощь зала? :)

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

Добавлено спустя 28 минут 12 секунд:
Получается, что имеем 3 конуса (возможно вырожденных в прямые или плоскости), и надо найти точку их пересечения. В задаче mandigit'а не конусы, а окружности, потому что все лежит в одной плоскости, и известны абсолютные расстояния.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Проект звукового модуля под шину RoboBus

Сообщение =DeaD= » 14 май 2009, 18:17

2blindman: В 3 координатах всё еще хуже будет - я думал у тебя 3 маяка в плоскости той же что и робот.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Проект звукового модуля под шину RoboBus

Сообщение blindman » 14 май 2009, 18:24

У меня 3 микрофона и 1 источник звука, который может быть где угодно
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

След.

Вернуться в Идеи

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 44