LPS (Локальная Система Позиционирования)

Здесь расположены обсуждения и проекты, которые с точки зрения администрации форума представляют наибольший интерес.
Правила форума
В этом форуме новые темы не создаются, однако обсуждение допустимо.

Re: LPS (Локальная Система Позиционирования)

Сообщение boez » 21 янв 2009, 12:29

mandigit писал(а):
Нельзя-же такое под вечер писать :o

На первый взгляд - интересное решение. Если дозавершить описание алгоритма и проверить на нескольких примерах - можно брать в копилку алгоритмов.
Остается так-же неясным, каково будет поведение алгоритма с учетом ошибки измерения.


Да вроде как довольно просто вышло. Да, а ошибки измерения - будут давать ошибки в координатах. Причем совершенно однозначные, так как решение одно. То есть мы будем получать координаты той точки, которая находится от маяков на расстояниях, соответствующих измеренным временам. Единственная проблема - на граничных зонах, когда ошибка приводит к неразрешимой задаче (если такие существуют)

Виталий писал(а):Все бы хорошо, но во-первых d - не одинаковое, а во вторых - неизвестно.


Так d - оно неизвестно строго в соответствии с планом :) У нас 3 уравнения и 3 неизвестных. Решаем, находим. Единственный вопрос - что там за второе решение.

=DeaD= писал(а):D=A1*B2-A2*B1=4*(x1-x2)*(y1-y3)-4*(x1-x3)*(y1-y2) - не ноль, т.к. маяки не на 1 прямой.


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

Re: LPS (Локальная Система Позиционирования)

Сообщение =DeaD= » 22 янв 2009, 16:38

Выложил в вику оба метода:
[[Определение координат робота по расстояниям до маяков, измеренным с одинаковым отклонением]]

Добавлено спустя 3 минуты:
boez писал(а):
=DeaD= писал(а):D=A1*B2-A2*B1=4*(x1-x2)*(y1-y3)-4*(x1-x3)*(y1-y2) - не ноль, т.к. маяки не на 1 прямой.


Это понятно. Там интереснее что за корни квадратного уравнения.

Я думаю там второй корень - это недопустимое решение при ri<0, мы же понимаем что каждое ri должно быть >0?

Добавлено спустя 1 минуту 58 секунд:
Мы же ведь вместо задачи поиска точки пересечения верхних полуконусов решали задачу пересечения полных конусов, а у них по моим прикидкам еще снизу есть точка пересечения (при отрицательных ri).

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

Re: LPS (Локальная Система Позиционирования)

Сообщение blindman » 22 янв 2009, 16:53

mandigit писал(а):2Blindman
Предлагаете дополнить модуль приемника еще одним каналом связи для целей первичного ввода информации? Учитывая, что система развертывается однажды - это не видется оправданным.

Я может не до конца понял, я ни разу не математик, но вроде у тебя в системе учитывается ошибка часов. При наличии канала с пренебрежимо малой (или просто известной и достаточно стабильной) задержкой - синхронизация часов не нужна. ИМХО это увеличит точность и скорость измерений.
Проект [[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: LPS (Локальная Система Позиционирования)

Сообщение =DeaD= » 22 янв 2009, 16:56

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

Re: LPS (Локальная Система Позиционирования)

Сообщение blindman » 22 янв 2009, 17:00

Именно так.
Проект [[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: LPS (Локальная Система Позиционирования)

Сообщение mandigit » 22 янв 2009, 20:50

blindman писал(а):Я может не до конца понял, я ни разу не математик, но вроде у тебя в системе учитывается ошибка часов. При наличии канала с пренебрежимо малой (или просто известной и достаточно стабильной) задержкой - синхронизация часов не нужна. ИМХО это увеличит точность и скорость измерений.

Увы, это не уменьшит ошибку :cry: . Отклонение времени между системой передатчиков и приемников за период измерения составляет ничтожную долю от итоговой ошибки. Основная проблема - неточность определения момента прихода импульса - здесь вся собака зарыта.
Аватара пользователя
mandigit
 
Сообщения: 583
Зарегистрирован: 28 ноя 2005, 12:05
Откуда: Москва

Re: LPS (Локальная Система Позиционирования)

Сообщение =DeaD= » 22 янв 2009, 20:59

mandigit писал(а):Увы, это не уменьшит ошибку :cry: . Отклонение времени между системой передатчиков и приемников за период измерения составляет ничтожную долю от итоговой ошибки. Основная проблема - неточность определения момента прихода импульса - здесь вся собака зарыта.

Почему это не уменьшит? По идее лишнее измерение будет - лишняя инфа для статистики.

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

Re: LPS (Локальная Система Позиционирования)

Сообщение mandigit » 22 янв 2009, 21:52

=DeaD= писал(а):Почему это не уменьшит? По идее лишнее измерение будет - лишняя инфа для статистики.
А товарищи по ссылке, которые 1см точность получили - они как определяют этот момент? :oops:


А в чем состоит лишнее измерение?

Теоретическая точность может быть очень высокой (если мы умеем правильно измерить приход первого импульса, да еще и фазу сумеем померить) - можно и до мм добраться (правда практически это воплотить - непросто :)

В топике я указал некую точность, какой она мне показалась на столе, где жила система. В реальности разброс может быть значительным, но добиться сантиметровой точности трудно.
Аватара пользователя
mandigit
 
Сообщения: 583
Зарегистрирован: 28 ноя 2005, 12:05
Откуда: Москва

Re: LPS (Локальная Система Позиционирования)

Сообщение =DeaD= » 23 янв 2009, 09:56

mandigit писал(а):А в чем состоит лишнее измерение?

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

mandigit писал(а):В топике я указал некую точность, какой она мне показалась на столе, где жила система. В реальности разброс может быть значительным, но добиться сантиметровой точности трудно.

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

Re: LPS (Локальная Система Позиционирования)

Сообщение mandigit » 23 янв 2009, 11:53

=DeaD= писал(а):В том, что если есть стробирование, тогда информация о расстоянии с 3 маяков получаем при всего 2 неизвестных, а значит у нас появляется проверочное уравнение, которое по идее значительно снижает среднюю ошибку.

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

=DeaD= писал(а):Ну то есть у этих парней принципиально задачи определения момента прихода импульса с высокой точностью тоже не решены?

Да, надо понимать, что эти параметры очень условны. Например, если измерять время прихода сигнала между передатчиком и приемником, направленным друг на друга - можно получить большую точность, чем при случайном их расположении, да и много других ньюансов. Наверное, эту информацию стоит воспринимать, как справочную
Аватара пользователя
mandigit
 
Сообщения: 583
Зарегистрирован: 28 ноя 2005, 12:05
Откуда: Москва

Re: LPS (Локальная Система Позиционирования)

Сообщение =DeaD= » 23 янв 2009, 12:25

mandigit писал(а):Стробирование уберет (очень условно, поскольку при стробировании мы то-же получим неточность) задачу определения отклонения часов, но поскольку это отклонение одинаково для всех пар приемник-передатчик и представляет из себя отклонение часов (а кварцы в нашем случае обладают точностью выше, чем ошибка измерения строба) за период измерения - мы скорее добавим элемент, потенциально обладающий меньшей точностью.

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

Re: LPS (Локальная Система Позиционирования)

Сообщение mandigit » 23 янв 2009, 13:12

=DeaD= писал(а):ИМХО ничего подобного - мы сейчас имеем систему из 3 уравнений с 3 неизвестными, при этом учитывая структуру системы мы получаем решение приблизительно одинаково по всем 3 искомым переменным, я считаю, что если мы сможем одну из переменных вычислить с более высокой точностью (т.е. использование стробирования даст точность времени большую, чем звук успевает проходить за 10см), тогда мы сможем повысить точность двух оставшихся переменных, потому что из 3 уравнений мы сможем даже в самом тупом случае вычислить 3 пары таких точек и взять от них среднюю, а значит повысим точность искомых координат (при накоплении статистики погрешность имеет свойство снижаться).


imho замена переменной, присутствующей во всех трех уравнениях на полученную извне величину не даст улучшения точности, поскольку основная ошибка возникает в каждом из уравнений при измерении момента прихода импульса. Для дальнейшего обсуждения идеи (а возможно, что ты прав), нужны или новые аргументы или эксперементальные данные.
Аватара пользователя
mandigit
 
Сообщения: 583
Зарегистрирован: 28 ноя 2005, 12:05
Откуда: Москва

Re: LPS (Локальная Система Позиционирования)

Сообщение =DeaD= » 23 янв 2009, 13:24

mandigit писал(а):основная ошибка возникает в каждом из уравнений при измерении момента прихода импульса

Если эта ошибка не имеет очень экзотического распределения по вероятности, тогда увеличение количества измерений и усреднение результата всегда увеличивает точность, я не прав?

А у нас получается как раз лишнее измерение в этом случае.

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

Re: LPS (Локальная Система Позиционирования)

Сообщение mandigit » 23 янв 2009, 15:18

=DeaD= писал(а):Если эта ошибка не имеет очень экзотического распределения по вероятности, тогда увеличение количества измерений и усреднение результата всегда увеличивает точность, я не прав?


Не совсем. Эта ошибка носит неслучайный характер - она зависит от угла между осями приемника и передатчика, от расстояния (фактически - от мощности принимаемого сигнала). Статистическая обработка уберет статистические шумы (не знаю, какую долю от общей ошибки они составляют)
Аватара пользователя
mandigit
 
Сообщения: 583
Зарегистрирован: 28 ноя 2005, 12:05
Откуда: Москва

Re: LPS (Локальная Система Позиционирования)

Сообщение =DeaD= » 23 янв 2009, 15:23

mandigit писал(а):Эта ошибка носит неслучайный характер - она зависит от угла между осями приемника и передатчика, от расстояния (фактически - от мощности принимаемого сигнала).

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

Пред.След.

Вернуться в Золотой фонд

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

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