Nous supposons que le robot possède (au moins) deux capteurs de lumière placés de part et d’autre de la ligne à suivre. L’idée de l’algorithme est la suivante : quand le robot suit correctement la ligne, aucun de ses capteurs ne voit la ligne (Figure a).
Si le capteur droit voit la ligne, c’est que le robot s’est décalé vers la gauche, et donc qu’il doit tourner à droite (Figure b). De la même manière, si le capteur gauche voit la ligne, le robot doit tourner à gauche.
Enfin, les croisements sont signalés par une ligne perpendiculaire à la piste à suivre. Si les deux capteurs voient la ligne simultanément, c’est donc qu’il y a un croisement bientôt (Figure c).



L’algorithme est le suivant :
[code]
Repeat endlessly
if capteur gauche voit la ligne then
tourne a gauche, i.e. ralentit la roue gauche et accelere la roue droite;
end
else if capteur droit voit la ligne then
tourne a droite, i.e. ralentit la roue droite et accelere la roue gauche;
end
else if les deux capteurs voient la ligne then
traitement particulier;
end
// si aucun capteur ne voit la ligne, on ne tourne pas
end
[/code]