bonsoir tous le monde,
j'ai un petit problème que je n'arrive pas à le résoudre. j'ai développé une méthode comme entrée une valeur d'angle (angle entre robot et son objectif) et comme sortie une valeur d'angle (angle appliqué par le robot pour se rapprocher de son objectif)
la méthode est basée sur la théorie de logique flous.
pour la variable de sortie j'ai définit les angles (univers de discours) comme suit:
angle.add("Négatif Grand", -PI/5);
angle.add("Négatif Moyen", -PI/10);
angle.add("Négatif Proche", -PI/20);
angle.add("Zéro", 0);
angle.add("Positif Petit", PI/20);
angle.add("Positif Moyen", PI/10);
angle.add("Positif Grand", PI/5);
les règles sont comme suit :
TO : angle entre robot et objectif
angle : l'angle à appliqué par le robot pour s'orienter vers son objectif
1- si TO =-1.6 alors angle is PG =PI/5
2-si TO =-0.75 alors angle is PM = PI/10
3- si TO =-0.25 alors angle is PP =PI/20
4- si TO=0.0 alors angle is Z =0.0
5- si TO=0.25 alors angle is NP =-PI/20
6- si TO=0.75 alors angle is NM =-pi/10
7- si TO=1.6 alors angle is NG =-pi/5
exemple, si l'angle entre le robot et son objectif est -1.6 en radian ( input TO= -1.6 ) alors la règle n°1 va être dèclanché le robot doit appliqué un angle positif grand égal à PI/5
le problème est que la méthode me renvoi une valeur NaN (not a number)
les angles négatifs sont bien applicables tandis que les angles positifs me renvoi NaN.
donc comment puisse je faire la congruence entre les angles pour éviter d'avoir un conflit.
merci infiniment pour vos aides.