Hallo

Auf Anhieb fallen mir hier einige Sachen auf die sehr problematisch sind:
Du benutzt eine do Schleife in der eine while(1) benutzt wird in der wiederum eine while(1) benutzt wird.
while(1) ist eine Endlosschleife heißt das drumherum kannst du dir sparen da die while(1) nie beendet wird.
Unabhängig von dem und einigen anderen Sachen verstehe ich nicht ganz wie dein Programm ablaufen soll.
Soll er die Linie suchen und während er die Linie sucht Hindernissen ausweichen oder soll er erst wenn er die Linie gefunden hat Hindernissen die sich auf der Linie befinden ausweichen?

Gruß Thund3r