roboforum.ru

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

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




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Подскажите алгоритм аппроксимации окружностью (или сферой)..
СообщениеДобавлено: 19 дек 2010, 14:31 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
...для калибровки компаса.
Хочется сделать процедуру "калибровки в поле".
для начала - найти центр окружности (сферы), вокруг которого ложатся точки.
Разброс сравнительно большой.

Что-то не гуглится алгоритм прямого вычисления...
(приближение численными методами не предлагать :))

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подскажите алгоритм аппроксимации окружностью (или сферо
СообщениеДобавлено: 19 дек 2010, 14:38 
Не в сети
Аватара пользователя

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подскажите алгоритм аппроксимации окружностью (или сферо
СообщениеДобавлено: 19 дек 2010, 16:02 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
нет...
было б равномерно, не спрашивал бы - усреднил бы и все :)

Добавлено спустя 3 минуты 52 секунды:
Re: Подскажите алгоритм аппроксимации окружностью (или сферой)..
Задумка _приблизительно_ такая - датчик физически представляет из себя цилиндр.
Чел кладет его на плоский стол и катает... (ну и возможно потом поворачивает на столе на 90 градусов и еще катает - чтобы типа сферу получить).
Стол не обязательно строго горизонтальный, углы чел не обязан строго соблюдать и т.п.

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

Добавлено спустя 15 минут 33 секунды:
Re: Подскажите алгоритм аппроксимации окружностью (или сферой)..


Ну вот, например, такие данные:
Изображение

Добавлено спустя 4 минуты 45 секунд:
Re: Подскажите алгоритм аппроксимации окружностью (или сферой)..
млин, только сейчас доперло, что окружности мало - сфера нужна.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подскажите алгоритм аппроксимации окружностью (или сферо
СообщениеДобавлено: 19 дек 2010, 20:36 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Это минимум суммы по i от (sqrt((x0-xi)^2+(y0-yi)^2+(z0-zi)^2)-r0)^2

Не очень похоже, что оно аналитически решается.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подскажите алгоритм аппроксимации окружностью (или сферо
СообщениеДобавлено: 19 дек 2010, 20:55 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Спасибо...
пытался решить на бумажке... запутался :) (ну вот такой я мотематег... :()
нашел тут
http://www.prografix.narod.ru/rus_cirap.html
еще не проверял.

для плоской окружности, правда...

и, похоже, что свернуть в один проход его не удастся :(
то есть все точки нужно сначала в память накопить...


Последний раз редактировалось Michael_K 19 дек 2010, 21:01, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подскажите алгоритм аппроксимации окружностью (или сферо
СообщениеДобавлено: 19 дек 2010, 20:59 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Ну там минимизируют не квадрат разности, а квадрат разности квадратов, чтобы от корня уйти :)

Добавлено спустя 1 минуту 6 секунд:
Re: Подскажите алгоритм аппроксимации окружностью (или сферой)..
Это минимум суммы по i от ((x0-xi)^2+(y0-yi)^2+(z0-zi)^2-r0^2)^2

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подскажите алгоритм аппроксимации окружностью (или сферо
СообщениеДобавлено: 28 фев 2011, 20:19 
Не в сети

Зарегистрирован: 12 окт 2010, 13:43
Сообщения: 12
Откуда: Москва, Тольятти
Если выводить лень, есть готовые формулы для МНК оценки окружности. На первой странице этой работы выписаны. Для сферы по аналогии выписываются.

Добавлено спустя 31 минуту 38 секунд:
Re: Подскажите алгоритм аппроксимации окружностью (или сферой)..
О, для сферы нашел.
N точек xi, yi,zii,
Центр сферы находится как решение системы линейных уравнений:
Вложение:
Sphere.gif
Sphere.gif [ 12.77 КиБ | Просмотров: 4780 ]


Вложение:
12.gif
12.gif [ 1.1 КиБ | Просмотров: 5654 ]

Система 3 на 3 решается по правилу Крамера либо если есть готовая библиотека с матрицами - через обратную.
далее радиус сферы:
Вложение:
R.gif
R.gif [ 2.47 КиБ | Просмотров: 5674 ]


Добавлено спустя 14 минут 52 секунды:
Re: Подскажите алгоритм аппроксимации окружностью (или сферой)..
Да, если в данных могут быть слишком удаленные от аппроксимирующей сферы точки (т.е. шум который не вписывается в модель из за больших разбросов) то нужно применять МНК для случайных выборок - RANSAC алгоритм.


Вложения:
Ramanauskas-The Investigation of Eye Tracking Accuracy using Synthetic Images (circle aprox).pdf [211.94 КиБ]
Скачиваний: 0
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

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


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

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


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

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