Was gibt Dir "odometry_Get.."?
Eine Ticks-Anzahl. Wenn Du nur daran eine Korrektur (pro Seite) festmachst bringt Dir das nichts.
Die Differenz zwischen links und rechts in Relation zur Gesamt-Ticks-Anzahl (der betrachteten Seite) zu ermitteln wäre schon zielführender. Damit kannst Du einen Korrektur-Faktor ermitteln und diesen anwenden.
Du musst dazu aber sinnvollerweise jeweils die Odometrie-Werte beim Auslesen zurücksetzen (odometry_get...(
1)"), damit der jeweilige Zähler nicht überläuft (oder entsprechend mit dem Überlauf umgehen).
Also z.B. bei Ticks_a > Ticks_b:
Faktor = ( 10000 / Ticks_a ) * ( Ticks_a - Ticks_b )
power_a = 300 - ( ( 300 * Faktor ) / 10000 ).
Wenn Du "int"-Variablen nimmst hast Du keine Nachkommastellen ... für den Faktor