Hallo,

Erstmal vorab (das muss einfach sein, da ich vermute, dass Matlab hier zu Bildungszwecken eingesetzt wird): Matlab und C sind zwei vollkommen unterschiedliche Sprachen - If-Abfragen sind ganz normale Sprachkonstrukte, die es in einer Vielzahl von Skript- und Programmiersprachen gibt. Mit C hat das hier absolut nichts zu tun
Natürlich kann es sein, dass der Roboter über eine C-Schnittstelle mit Matlab kommuniziert, aber das ist dann etwas komplett anderes


Du könntest, falls Du es ganz einfach halten möchtest, den vorherigen Fahrbefehl zwischenspeichern und in den Abfragen für die Drehung verwenden.
-> Drehst Du Dich schon nach rechts (vorherige Drehrichtung), so kannst Du nicht nach links drehen, bis eine Geradeausfahrt erreicht ist. Die Linksdrehung muss analog behandelt werden.

Allerdings ist das eher die "triviale Lösung", die noch weit davon entfernt ist, auch nur annähernd perfekt zu sein. Es kann damit immer noch passieren, dass sich der Roboter dann doch lieber etwas mehr Zeit in gewissen Ecken verbringt als geplant
Etwas mehr Sicherheit kriegst Du, indem Du z.B. eine Art "Chaos Drive" einführst, wie es z.B. von älteren Staubsaugerrobotern verwendet wird: Statt sich nur zu drehen, bis die Sensoren "frei" sind, dreht sich der Roboter um einen zufälligen Winkel/eine gewisse Zeit. So kommt man auch aus etwas anderen Ecken heraus.

Grüße,

Max