Salut Newbie !
Tout d'abord, tu as combien de données en entrée et de variable linguistiques pour ces données ? Et combien de variable de sortie ?
En entrée, tu as distance_droite, distance_gauche et distance_centre ? Les variables linguistiques sont petit et grand ?
Dans ce cas, tu as 2^3 règles à définir. Sinon tu oublies des cas particulier.
Deuxièmement, tu ne peux pas prendre des variables de sorties comme variable d'entrée. Ta règle "SI orientation est xxx ALORS xxx" n'est pas bonne.
Tu dois tout exprimer en fonction de variable d'entrée "Si capteur_gauche = xxx ET capteur_droit = xxx ET capteur_centre = xxx ALORS orientation = xxx ET vitesse = xxx"
Troisièmement, dis-nous ce que tu as choisi comme opérateur ET / OU ainsi que la méthode de défuzification.
C'est aussi le choix de ces opérateurs qui conditionnent la qualité du résultat en sortie.
De mes souvenirs de cours, l'intérêt de la logique floue était de faire des raisonnements symboliques en prenant en compte l'incertitude qu'il y a sur les notions (genre petit, grand, etc.). En relisant rapidement un cours, je vois que ça n'était pas exact, puisque selon la méthode de défuzzification, on peut avoir une valeur qui n'appartient pas à une catégorie.
Après, j'ai un biais négatif envers cette approche : elle essaie de définir des catégories symboliques artificielles (données par l'humain) pour contrôler un robot à un niveau subsymbolique.
Alors que ça peut être fait élégamment sans passer par cette notion symbolique, avec une approche purement numérique (Braitenberg en version simple, réseaux de neurones en version plus compliquée avec apprentissage des poids de connexion). Mais là, j'ai un biais positif. 
Moi aussi je préfère les méthodes du type RdN & co.
Seulement dans ce type de problème, un RdN n'est pas forcement mieux qu'un système flou pour la simple est bonne raison que dans le premier cas tu n'arrives pas à interpréter le poids des neurones, alors que dans un système flou, tu as des règles, des variables linguistiques et des opérateurs que tu peux interpréter.
Si tu modélises le problème de Newbie par un RdN de 3 neurones d'entrée, 8 neurones cachés et 2 de sorties, en linéarisant le RdN tu te rends compte qu'on arrive à peu près au mêmes équations qu'avec un système flou. Sauf qu'avec un système flou, tout est explicite alors qu'avec un RdN, tout est implicite. Pour une autre structure de RdN, ça devient très difficilement interprétable (voir impossible à interpréter, ça marche, c'est tout, on ne sait pas pourquoi).
L'autre intérêt, c'est qu'il est possible de calculer des informations dérivées des mesures de distance : en faisant une différence temporelle entre deux mesures, on peut obtenir une estimation de la vitesse à laquelle l'obstacle se rapproche (donc de la vitesse du véhicule si l'obstacle est fixe) : hors, s'il se rapproche doucement, il n'y a pas besoin de tourner beaucoup du côté le plus dégagé ; à l'inverse, s'il se rapproche vite, tu peux avoir envie de braquer fort pour prendre la courbe correctement.
Tu n'as pas besoin de coder ça dans un système flou car si tes règles sont bonnes et tes opérateurs assez fins, le système adaptera tes vitesses automatiquement en fonction de la distance de l'objet. Du coup, l'objet se rapprochera toujours avec la même accélération.
J'ai déjà implémenté le déplacement de robots à l'aide d'un système flou et j'ai été étonné par la fluidité avec laquelle ils se déplacent.
Couplé à un algo d'attracteur par champ de potentiel ou par bande élastique, ça te fait un algo de planification de trajectoire basique mais redoutablement efficace en milieu convexe qui t'évite les obstacles sans connaitre l'environnement à l'avance et qui peut largement se calculer en temps réel.
Si tu as un peu de temps pour tester cet exemple tu te rendras compte de ce que je dis par toi même : http://www.ferdinandpiette.com/blog/2011/08/exemple-de-systeme-flou-un-planificateur-de-trajectoire/
La vitesse de ton robot sera juste limité par la vision de celui-ci (distance max à laquelle tu peux détecter un objet avec tes capteurs) ainsi que par le nombre de fois que tu réexécute l'algo par seconde.
Après, ça ne prend pas en compte la cinématique du robot, c'est à dire qu'on est pas garanti que le robot puisse effectuer le mouvement demandé (on ne prend pas en compte l'encombrement du robot, sa capacité maximale d'accélération et autre). Mais de toute façon, un RdN non plus.
Pour prendre en compte ces critères, il faut un vrai algo de plannif comme DKP par exemple : http://www.ferdinandpiette.com/blog/2011/05/algorithmes-de-planification-de-trajectoires-bref-etat-de-lart/
P.S. : Je ne dis pas que les RdN ou autre méthode purement numérique sont moins efficaces, j'essaye juste de te convaincre qu'un système flou peut l'être tout autant avec l'avantage d'avoir un comportement intelligible par n'importe quel humain 