Как уместить более одной линии в точки данных

Я пытаюсь уместить более одной линии в список точек в 2D. У меня довольно мало очков (16 или 32).

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

Подобрать одну линию к набору точек не проблема, если мы знаем, что все эти точки находятся на линии или вокруг нее.

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

Как бы вы решили эту проблему? Если я посмотрю на все возможности, например, для групп из 5 баллов для всех 32 баллов, то получится 32 варианта выбора 5 = 201376 возможностей. Я думаю слишком много времени уходит на то, чтобы опробовать все возможности и попытаться подогнать строку ко всем пяти кортежам.

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

Как вы думаете, можно ли выполнить какое-то преобразование Хафа для дискретного набора данных с таким малым количеством записей?

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

sensors

11
задан hyperknot 19 November 2011 в 22:31
поделиться