Huvudrotation som funktion av fokusvektorn
Trigonometrisk kalkyl, 2D-exempel (ovanifrån)
Flytta objektet som skall fokuseras (upp | ner | vänster | höger) och så snurrar robotens huvud automatiskt så att det tittar på objektet.

Data

Uträkning och "oscilleringsproblemet"
När krysset flyttas förändras den gröna vinkeln. En detektor anropas kontinuerligt och justerar huvudet så att den gröna vinkeln mot fokusvektorn alltid är 90 grader +/- ett litet belopp m (satt till 0.05 radianer) för att undvika oscillering. Oscillering uppstår när huvudet vridit färdigt och nått önskvärd position, då ärvärde ungefär är lika med börvärdet. Detta med ungefär är lika med är viktigt att komma ihåg. Oscillering uppstår eftersom huvudet flyttas i diskreta steg och därför aldrig "träffar rätt". I ett analog (kontinuerligt) scenario graviterar denna oscillering mot noll. Men eftersom givare lämnar ifrån sig digital data och därför att det även i ett analogt fall existerar diskreta steg måste man på något sätt hantera risken för oscillering även då.

RC servoDenna oscillering existerar även i t.ex digitala servon i radiostyrda modeller. Man märker detta eftersom servomotorerna "brummar" och aldrig tycks vilja tystna. Detta brum är alltså normalt och beror på att servot jobbar hela tiden för att hitta rätt läge.

Huvudet flyttas med en sjättedel av skillnad mellan bör-vinkel och är-vinkel per timer-tick. Ju närmare rätt vinkel den kommer desto mindre förflyttning alltså.

	var m=0.05;
	var v=green_angle-blue_angle-c1;
	if(v>(m))
	{
		rleft(Math.abs(v)/6);
	}
	if(v<(-m))
	{
		rright(Math.abs(v)/6);
	}

Variabeln c1 är 270 grader. Dessutom kompenseras för den blå vinkeln eftersom rleft och rright tar en vinkel mot horisonten (snarare än mot fokusvektorn) när de ritar upp huvudet.