roboforum.ru

Технический форум по робототехнике.

Подскажите алгоритм аппроксимации окружностью (или сферой)..

Подскажите алгоритм аппроксимации окружностью (или сферой)..

Michael_K » 19 дек 2010, 14:31

...для калибровки компаса.
Хочется сделать процедуру "калибровки в поле".
для начала - найти центр окружности (сферы), вокруг которого ложатся точки.
Разброс сравнительно большой.

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

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

Re: Подскажите алгоритм аппроксимации окружностью (или сферо

=DeaD= » 19 дек 2010, 14:38

Точки по окружности равномерно раскиданы?

Re: Подскажите алгоритм аппроксимации окружностью (или сферо

Michael_K » 19 дек 2010, 16:02

нет...
было б равномерно, не спрашивал бы - усреднил бы и все :)

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

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

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


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

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

Re: Подскажите алгоритм аппроксимации окружностью (или сферо

=DeaD= » 19 дек 2010, 20:36

Это минимум суммы по i от (sqrt((x0-xi)^2+(y0-yi)^2+(z0-zi)^2)-r0)^2

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

Re: Подскажите алгоритм аппроксимации окружностью (или сферо

Michael_K » 19 дек 2010, 20:55

Спасибо...
пытался решить на бумажке... запутался :) (ну вот такой я мотематег... :()
нашел тут
http://www.prografix.narod.ru/rus_cirap.html
еще не проверял.

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

и, похоже, что свернуть в один проход его не удастся :(
то есть все точки нужно сначала в память накопить...
Последний раз редактировалось Michael_K 19 дек 2010, 21:01, всего редактировалось 1 раз.

Re: Подскажите алгоритм аппроксимации окружностью (или сферо

=DeaD= » 19 дек 2010, 20:59

Ну там минимизируют не квадрат разности, а квадрат разности квадратов, чтобы от корня уйти :)

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

Re: Подскажите алгоритм аппроксимации окружностью (или сферо

skyfoxss » 28 фев 2011, 20:19

Если выводить лень, есть готовые формулы для МНК оценки окружности. На первой странице этой работы выписаны. Для сферы по аналогии выписываются.

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


12.gif
12.gif (1.1 КиБ) Просмотров: 5853

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


Добавлено спустя 14 минут 52 секунды:
Re: Подскажите алгоритм аппроксимации окружностью (или сферой)..
Да, если в данных могут быть слишком удаленные от аппроксимирующей сферы точки (т.е. шум который не вписывается в модель из за больших разбросов) то нужно применять МНК для случайных выборок - RANSAC алгоритм.
Вложения
Ramanauskas-The Investigation of Eye Tracking Accuracy using Synthetic Images (circle aprox).pdf
(211.94 КиБ) Скачиваний: 0


cron
Rambler\'s Top100 Mail.ru counter