2

Je reçois un nuage de points de mon lidar qui est fondamentalement un tableau de points numptiques en coordonnées cartésiennes 2D. Existe-t-il un moyen efficace de détecter les coins formés par de tels points 2D? Ce que j'ai essayé jusqu'à présent était de détecter les clusters, puis d'appliquer RANSAC sur chaque cluster pour détecter deux lignes, puis estimer le point d'intersection de ces deux lignes. Cette méthode fonctionne bien quand je sais combien de clusters j'ai (dans ce cas, j'ai mis 3 boîtes devant mon robot) et quand l'entourage du robot est libre et qu'aucun autre objet n'est détecté. Ce que je voudrais faire est d'exécuter une détection de coin générale, puis prendre les points entourant chaque coin et vérifier si les lignes sont orthogonales. Si c'est le cas, je peux considérer ce coin comme une caractéristique. Cela rendrait mon algorithme plus flexible en ce qui concerne l'environnement.Détection d'angle dans un tableau de points

est ici une visualisation des données que je reçois: enter image description here

Répondre

0

Il y a beaucoup de façons de le faire. La première chose que j'essaierais dans votre cas serait de chaîner avec un seuil de distance raisonnable pour les discontinuités, en utilisant l'ordre de balayage lidar naturel des points. Ensuite, il devient un problème d'estimation de la courbure locale ou, comme vous l'avez fait, de croissance et de fusion de segments linéaires.

+0

En fait, j'ai oublié l'ordre naturel des points de balayage lidar. Ce que j'ai essayé maintenant est un lissage pour réduire le bruit, la détection de tous les minima qui sont plus petits qu'au moins n points voisins, puis les minima de fusion qui sont trop proches les uns des autres, enfin extraire des groupes de points et validez si les lignes détectées sont orthogonales. – Mehdi

+0

Hum, a un sens, un peu. L'étape de lissage me semble suspecte - pourquoi jeter des informations avant de savoir avec certitude qu'il s'agit d'un «bruit»? Avez-vous un modèle pour le processus de bruit? En outre, si par "détection de ligne" vous voulez dire une ligne droite aux points voisins, gardez à l'esprit que vous aurez besoin d'un robustifier (par exemple LMedS, aller le plein RANSAC/MLESAC est probablement inutile). Le robustifier est l'endroit où il est approprié d'introduire un modèle de bruit, puisque vous rendez votre modèle explicite (c'est-à-dire la ligne droite) à cette étape. Dernier, s'il vous plaît upvote/accepter si vous trouvez la réponse utile. –