roboforum.ru

Технический форум по робототехнике.
Текущее время: 27 ноя 2024, 08:58

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 142 ]  На страницу Пред.  1 ... 5, 6, 7, 8, 9, 10  След.
Автор Сообщение
 Заголовок сообщения: Математика определения источника звука[RoboBus, звук]
СообщениеДобавлено: 14 май 2009, 15:00 
Не в сети
Аватара пользователя

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


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


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

Вложение:
micro.png
micro.png [ 7.96 КиБ | Просмотров: 25044 ]


Есть 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), но и угол возвышения источника звука? Похоже что это верно ...

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

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



Последний раз редактировалось Digit 15 май 2009, 16:45, всего редактировалось 2 раз(а).
дорисовал правила этой темы


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Математика определения источника звука[RoboBus, звук]
СообщениеДобавлено: 17 май 2009, 16:59 
Не в сети

Зарегистрирован: 17 апр 2009, 15:09
Сообщения: 987
Откуда: Rostov-Don
тады я не понимаю принцип работы :( Стационарный микрофон ничего кроме уровня сигнала не выдает. Что с чем вы сравниваете?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Математика определения источника звука[RoboBus, звук]
СообщениеДобавлено: 17 май 2009, 17:15 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
Вот тут все описано, с формулами и картинками http://local.wasp.uwa.edu.au/~pbourke/m ... correlate/

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

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



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Математика определения источника звука[RoboBus, звук]
СообщениеДобавлено: 14 янв 2010, 00:01 
Не в сети

Зарегистрирован: 08 янв 2010, 11:11
Сообщения: 14
Откуда: Ufa
Тема мне интересна, хочу реализовать подобное в своем (будущем)роботе. Т.к тут приведены, в основном, рассуждения с теоретической т.з, хочется написать с практической, скажем так, т.з.
В варианте с 2 микрофонами мы имеем только разность Ta-Tb - м/у временами прихода звукового фронта на 1 и 2 микрофоны. Также знаем расстояние м/у микрофонами (например, 10см) и скорость звука ессно. Этого достаточно, чтобы на практике робот посмотрел в сторону хлопка, если источник звука был спереди. Разность Ta-Tb находится в промежутке [-303мкс;303мкс] (для 10см), что соответствует положениям головы робота [-90*;90*].
Разумеется, это простейший решение на случай, если кто-то хочет сделать робота с поворачивающейся на звук головой :D


Последний раз редактировалось semak 14 янв 2010, 00:58, всего редактировалось 3 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Математика определения источника звука[RoboBus, звук]
СообщениеДобавлено: 14 янв 2010, 00:14 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
semak, после прочтения вашего поста хочется сказать, что еще 2+2=4. Ну вдруг кто не знал :ROFL:

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Математика определения источника звука[RoboBus, звук]
СообщениеДобавлено: 14 янв 2010, 11:52 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
И тем не менее никто ж не скажет, что учебник арифметики для начальной школы, где всерьез написано "2х2=4" совсем не нужен. Нужен. Потому что там просто и понятно для начинающих написано, что дважды два - четыре, и никто не ведет рассуждений о том, что в поле вычетов по модулю 3 дважды два равно 1 :).

Да, два микрофона можно использовать для поворота головы на источник звука в одной плоскости, а три микрофона - в двух плоскостях (pan&tilt). В обоих случаях задача нахождения угла(ов) направления на источник имеет ровно одно решение, что не может не радовать (если сравнивать с задачами определения расстояний, которые здесь рассматривались).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Математика определения источника звука[RoboBus, звук]
СообщениеДобавлено: 14 янв 2010, 13:06 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
2boez: Как это одно решение? Я вот всегда думал, что множество точек с фиксированной разницей расстояний до двух заданных точек - это гипербола, а у вас? Момент возникновения звука ведь неизвестен.

Добавлено спустя 1 минуту 37 секунд:
И даже если момент возникновения звука известен - в обоих ситуациях будет не ровно одно решение, а почти всегда ровно два решения.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Математика определения источника звука[RoboBus, звук]
СообщениеДобавлено: 14 янв 2010, 13:32 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
Так написано же - нахождения угла (углов). То есть только направление ищем, ну типа чтобы робот голову на источник звука повернул, или пушка на комара навелась, было ж у нас такое обсуждение. Хотя конечно я не прав, это для бесконечно удаленного источника все точно, а если источник звука близко, то точный угол не узнаешь без расстояния. Но если расстояние d до источника существенно больше базы a между микрофонами - то решение для бесконечно удаленного источника alfa=arcsin((d1-d2)/a) даст хорошее приближение угла. Уж для поворота головы "дружественного" робота к собеседнику 100% хватит :)

Добавлено спустя 1 минуту 54 секунды:
Сходу не соображу, что даст arcsin((d1-d2)/a) в случае конечного расстояния? Направление асимптоты той гиперболы, на которой лежит источник?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Математика определения источника звука[RoboBus, звук]
СообщениеДобавлено: 14 янв 2010, 13:55 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
2boez: В случае бесконечно удаленного источника и 2 микрофонов всё равно будет два направления соотв. 2 хвостам 1 ветки гиперболы. То же самое про 3 микрофона и пространство.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Математика определения источника звука[RoboBus, звук]
СообщениеДобавлено: 14 янв 2010, 17:23 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
А - точно будет два, спереди и сзади... :oops:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Математика определения источника звука[RoboBus, звук]
СообщениеДобавлено: 14 янв 2010, 23:33 
Не в сети
Аватара пользователя

Зарегистрирован: 11 июл 2008, 22:43
Сообщения: 134
Откуда: Воронежск
прог. языки: С, Delphi, Asm
http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2005/jhl33/index.html#Introduction

Вот похожий проэкт с 3 мя микрафонами

_________________
GIRUGAMESH!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Математика определения источника звука[RoboBus, звук]
СообщениеДобавлено: 10 июн 2010, 13:38 
Не в сети

Зарегистрирован: 10 июн 2010, 13:18
Сообщения: 7
Откуда: Киров
прог. языки: C#, pascal
ФИО: Роман Веснин
Задача по определению направления имеет простое решение:
Предположим, что источник звука бесконечно удален.
Из трех точек можно выбрать пару тремя способами. Для каждой пары будет существовать на плоскости два решения (находил через arccos), третья точка позволит одно неверное отсечь.
Таким образом получаем 3 приближенных решения, усреднение которых дает достаточно точное направление.
Правда метод дает лаг при углах +/- 30 градусов от каждого из векторов ОА, ОВ и ОС. Знаю в чем причина, но пока не знаю как устранить :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Математика определения источника звука[RoboBus, звук]
СообщениеДобавлено: 10 июн 2010, 13:50 
Не в сети

Зарегистрирован: 10 июн 2010, 13:18
Сообщения: 7
Откуда: Киров
прог. языки: C#, pascal
ФИО: Роман Веснин
Задача нахождения расстояния до источника упрощается, когда известно направление. Тут формул придумать не смог. Пришлось искать решение путем поиска точки на луче с минимальной ошибкой. Можно взять отрезок например длиной 1000м, разделить его на три части и сравнить ошибки на их границах, далее отбросить крайнюю часть с максимальной ошибкой. За 30 дроблений можно сузить отрезок до 1го сантиметра.
Вобщем результаты получаются тоже точными.
Пробовал ввести случайную погрешность в задержки до 0,2%. Направление еще терпимо вычисляется, а точность расстояния резко снижается.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Математика определения источника звука[RoboBus, звук]
СообщениеДобавлено: 10 июн 2010, 14:13 
Не в сети

Зарегистрирован: 10 июн 2010, 13:18
Сообщения: 7
Откуда: Киров
прог. языки: C#, pascal
ФИО: Роман Веснин
Сейчас ищу способ модификации метода для работы с пространством, а не с плоскостью. Для трех микрофонов в пространстве будет 2 решения ("вверху" и "внизу"). Но одно (нижнее) можно всегда отбрасывать, если микрофоны будут лежать на полу.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Математика определения источника звука[RoboBus, звук]
СообщениеДобавлено: 10 июн 2010, 14:26 
Не в сети

Зарегистрирован: 10 июн 2010, 13:18
Сообщения: 7
Откуда: Киров
прог. языки: C#, pascal
ФИО: Роман Веснин
Вот примеры работы программы:
без погрешности
http://webfile.ru/4544404
с погрешностью
http://webfile.ru/4544403
и сама программа
http://webfile.ru/4544408


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Математика определения источника звука[RoboBus, звук]
СообщениеДобавлено: 16 июн 2010, 14:25 
Не в сети

Зарегистрирован: 10 июн 2010, 13:18
Сообщения: 7
Откуда: Киров
прог. языки: C#, pascal
ФИО: Роман Веснин
Вот программа и ее исходники под VS 2008(C#).


Вложения:
SoundLocation.zip [20.89 КиБ]
Скачиваний: 0
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 142 ]  На страницу Пред.  1 ... 5, 6, 7, 8, 9, 10  След.

Часовой пояс: UTC + 4 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO