Технический форум по робототехнике.
blindman » 14 май 2009, 15:00
Тема выделена оттуда: Проект звукового модуля под шину RoboBus.
<Digit>Внимание!
Правила темы:
Все сообщения, отклоняющиеся от математического направления в общие принципы и прочие сопутствующие обсуждения считаются оффтопиком, т.е. ЗАПРЕЩЕНЫ!Кто шарит в математике, помогите плиз
- micro.png (7.96 КиБ) Просмотров: 25009
Есть 3 точи расположенных на окружности заданного радиуса
через 120°. Есть некая точка
, координаты которой неизвестны. A,B,C - это микрофоны, X - источник звука. Считаем, что микрофоны и источник звука лежат в одной плоскости (горизонтальной). Известны
и
.
- Надо найти и
- Если перейти из плоскости в пространство, и допустить, что источник звука может находиться вне плоскости микрофонов, то будет ли формула из п.1 справедлива для и , где - проекция точки на плоскость микрофонов.
- Верно ли, что 3 микрофонов недостаточно, чтобы определить не только (), но и угол возвышения источника звука? Похоже что это верно ...
Последний раз редактировалось
Digit 15 май 2009, 16:45, всего редактировалось 2 раз(а).
Причина: дорисовал правила этой темы
=DeaD= » 14 май 2009, 15:14
blindman писал(а):[*] Верно ли, что 3 микрофонов недостаточно, чтобы определить не только
(
), но и угол возвышения источника звука? Похоже что это верно ... [/list]
Модуль угла определить будет можно, а вот знак - нет.
Как и на плоскости с 2 микрофонами - пересечение 2 окружностей за редкими исключениями либо 0 либо 2 точки.
blindman » 14 май 2009, 15:21
=DeaD= писал(а):Известны расстояния до них от робота.
В общем случае - нет. Мы не можем определить расстояние от источника звука до микрофона, так так источник звука не контролируем. Но мы можем определить насколько источник звука дальше от одного микрофона, чем от другого.
Добавлено спустя 5 минут 34 секунды:=DeaD= писал(а):Модуль угла определить будет можно, а вот знак - нет.
Даже это и то хорошо. Если микрофоны достаточно низко, то при небольшом модуле угла можно считать, что источник на одном уровне с микрофонами, иначе - выше
=DeaD= » 14 май 2009, 15:27
blindman писал(а):=DeaD= писал(а):Известны расстояния до них от робота.
В общем случае - нет. Мы не можем определить расстояние от источника звука до микрофона, так так источник звука не контролируем. Но мы можем определить насколько источник звука дальше от одного микрофона, чем от другого.
Тогда берём решение из темы mandigit'а
У него вроде сходилось за 5-10 итераций всё.
Добавлено спустя 1 минуту 7 секунд:Вот оно:
[[Определение координат робота по расстояниям до маяков, измеренным с одинаковым отклонением]]
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 было минимально.
=DeaD= » 14 май 2009, 15:35
Выразить то можно, как решать то потом получившуюся чудовищного вида систему?
blindman » 14 май 2009, 15:39
А может попробуешь?
Может не такая и чудовищная она получится ?
Предлагаю задачу упростить - оставить 2 микрофона, и определить направление на источник с точностью до знака. Потом использовать третий микрофон для устранения неоднозначности
=DeaD= » 14 май 2009, 15:48
Дык пробовал уже. Геометрический подход изложен в вике так же, но проверять всё это сейчас точно не успею, это ж копец сколько математики
Может mandigit даст кусочек кода, а мы его в библиотеку оформим и выложим в вики?
contr » 14 май 2009, 16:32
Один направленный микрофон навести на максимум звука последовательным приближением по двум плоскостям. Вся беда, что сильно мешают отражения.
Поскольку звук случайный, то использовать 3 микрофона и определить источник по фазе сигнала не получится.
=DeaD= » 14 май 2009, 16:43
2blindman: Осилишь выкладки которые по итерационному алгоритму? Или помощь зала?
TrashVigor » 14 май 2009, 17:16
Тут нужна полярная система координат.Типо 2 микрофона определяют положение источника. А третий прикрученный к серве высоту.
Или платформу с микрофонами вращать, тогда если звук уходит от третьего значит впереди, и наоборот сзади.
=DeaD= » 14 май 2009, 17:29
2TrashVigor: Расстояния до источника звука неизвестны, известна только их разница. Внимательно читаем условия задачи, я уже попался
blindman » 14 май 2009, 18:10
=DeaD= писал(а):2blindman: Осилишь выкладки которые по итерационному алгоритму? Или помощь зала?
Вряд ли осилю. В лоб использовать формулы из вики не получится, там условия задачи другие - известны абсолютные расстояния, да и положение маяков по вертикали фиксировано. А здесь по-любому надо в 3 координатах решать, да еще и расстояния обсолютные неизвестны...
Добавлено спустя 28 минут 12 секунд:Получается, что имеем 3 конуса (возможно вырожденных в прямые или плоскости), и надо найти точку их пересечения. В задаче mandigit'а не конусы, а окружности, потому что все лежит в одной плоскости, и известны абсолютные расстояния.
=DeaD= » 14 май 2009, 18:17
2blindman: В 3 координатах всё еще хуже будет - я думал у тебя 3 маяка в плоскости той же что и робот.
blindman » 14 май 2009, 18:24
У меня 3 микрофона и 1 источник звука, который может быть где угодно