Ich nehme mal an der rote Bereich bei dir bedeutet "nicht befahrbar" und der weiße "befahrbar"?

Dann wäre es für den Staubsaugerroboter doch sinnvoll wenn man zusätzlich einen Algoritmus einbaut, der dafür sorgt, dass sobald ein weißer Bereich abgefahren wurde, den ebenso auf rot setzt, damit er diesen nicht nochmal saugt.
Das Problem was wiederum hierbei auftauchen könnte ist, dass dann eine Rote Fläche so positioniert ist, dass eine noch weiße nicht erreicht werden kann. Deshalb müsste zusätzlich noch ein Verweis eingebaut werden, der kennzeichnet, dass die Fläche zwar schon gesaugt ist, aber dennoch durchfahren werden kann um zur nächsten weißen Fläche zu gelangen.

Und zu deiner Frage bzgl. der Genauigkeit der Navigation bzw. der Lokalisation:
GPS fällt definitiv weg, ist für innerhalb kaum zu gebrauchen und die Genauigkeit liegt nur im Meterbereich.
Mit dem Fehler der durch die mechanische Odometrie entsteht muss man dann eben leben, aber da gibt es auch verschiedene Möglichkeiten den möglichst gering zu halten.

Tom

Edit:
Wie könnte denn ein Codebeispiel in C aussehen? Gibt ja genügend Mikrocontroller die Hochsprachen unterstützen und ehrlich gesagt ist C auch die einzige die mir ein wenig liegt