Kannst du nicht alle paar Sekunden den Bot nach dem Kompass ausrichten Also Wert speicher, fahren, vergleichen, ausrichten, fahren usw., kann ja alles während der Fahrt gemacht werden (Räder nicht gegensinnig drehen, halt nur die eine Seite verstärkt).
Ich glaube nicht, dass ein brauchbarer Regelalgorythmus hierfür einfacher ist, als wenn man den Geradeauslauf über die Drehzahl der Motoren oder der Räder regelt.
Ich würde eher tippen das funktioniert schlechter, weil ein Kompass störfälliger und ungenauer ist als Drehencoder.

Wenn das Fahrgestell einen Bogen fährt, muss das glaube ich nicht unbedingt an unterschiedlich schnell drehenden Motoren liegen.
Ein Fahrgestell mit vier Rädern fährt auch geradeaus, wenn nur ein Rad angetrieben wird, weil die Achsgeometrie das Fahrzeug in der Spur hält und die nicht angetriebenen Räder dadurch "mitgezogen" werden.
Kleinere Unterschiede zwischen den Motoren müssten sich dadurch eigentlich auch ausgleichen.

Ich würde mal kontrollieren, ob Achsgeometrie stimmt, oder eventuell ein oder mehrere Motoren etwas schräg sitzen.
Eventuell lässt sich der Geradeauslauf auch verbessern wenn man die Motoren absichtlich etwas schräg montiert, so dass die Räder etwas Vorspur haben.