Bonjour les développeurs !
Je crois que c'est mon premier post sur le forum. Donc une mini présentation s'impose, je développe (sans aucun but lucratif pour l'instant, c'est juste par passion) sur diverses technos web et microcontrôleurs comprenant du C / C++ / NodeJS / JavaScript / PHP / CSS / (x)HTML5 et éventuellement d'autres.
Afin de perfectionner un algo de SLAM = localisation et cartographie simultanée (ultra léger par rapport à tout ce qui existe sur le sujet, nuage de points en 2D de faible résolution sur microcontrôleur) j'ai besoin de la brique élémentaire algorithmique suivante :
Extraire les moyennes des N plus grands blocs de nombres proches (à N près) dans un tableau.
(En C à destination d'un microcontrôleur 32 bits 80MHz, le type des valeurs du tableau est int16_t et son index rentre dans de l'uint8_t mais cela n'a pas d'importance).
Ce que j'ai déjà c'est une fonction de quickSort qui me permet de grouper les valeurs similaires.
"Si je trace la courbe de ce tableau trié, j'ai une sorte d'escalier avec des marches plus ou moins grandes, des plateaux. Il me faut extraire la hauteur moyenne des N plus grandes marches."
Peut être qu'il faut que je passe dans le domaine fréquentiel à l'aide de transformations de Fourier, j'ai déjà un algo qui fait du fourier en arithmétique entière... mais j’aimerais bien trouver un algo plus léger...
peut être que quelqu'un à une idée d'un algo déjà existant à utiliser en une ou plusieurs passes... Toute idées mathématiques peuvent m'aider à implémenter l'algo recherché.
Pour qui cela intéresse de voir ma création loisir du moment, voici la page web de loisir (zéro publicité) concernant le sujet de mon post ici : https://www.serveurperso.com/?page=robot (n'importe quel visiteur peux jouer avec le robot de façon limitée sauf si demande sur un chat et j'accorde les droits de le piloter complètement)
Il s'agit d'un robot avec des capacités autonomes et de pilotage en temps réel depuis le net n'exploitant qu'une seule puce 32 bits 80MHz et un scanner à balayage laser "RPLIDAR A2".
Il est géolocalisé à l'aide "d'Amers" (balises) fixes, un algo qui ressemble à du SLAM mais incapable de fonctionner sans configuration très simple, mais manuelle de repères caractéristique.
Algo que je souhaite encore améliorer pour qu'il s'adapte automatiquement à l'environnement et deviennent du vrais SLAM.
Merci
Pascal
EDIT : reformulations...
Partager