ich zitier einfach mal aus dem asuro manual:
Will man Zeichen empfangen, ist für ASURO die Funktion SerRead () defi niert. Der erste
Parameter enthält die Zeichenkettenvariable, in welcher empfangen Zeichen abgespeichert
werden, der zweite Parameter gibt an, wieviele Zeichen empfangen werden sollen, der dritte stellt
ein Timeout dar. Werden innerhalb der eingestellten Zeit (Prozessortakte) keine Daten empfangen,
bricht die Funktion ab. Wird hier “0” eingestellt, wartete die Funktion bis alle Zeichen empfangen
wurden.
die 0 sollte nicht dein problem sein, wohl schon eher, dass asuro1/asuro2 nicht immer beide die gleichen daten empfangen. die ir kommunikation ist imo die häufigste fehlerquelle.

auf die schnelle fällt mir keine lösung ein, du könntest aber folgendermaßen vorgehen:

asuro1 ist der "leader", der daten empfängt. wenn er nen befehl erhält, versucht er ihm per ir an asuro2 zu schicken, der dann ne rückmeldung liefert. asuro2 fährt los, asuro1 erhält die rückmeldung und los gehts.

das problem wird aber auch in diesem fall die ir kommunkation zwischen den asuros sein. was ist, wenn asuro1 die rückmeldung nicht kriegt?

bin ja mal auf deine lösung gespannt...

gruß, kaos.

[edit]
ach ja - um die asuros synchron fahren zu lassen würde ich auf odometrie zurückgreifen. in deinem code benutzt du nur motorgeschwindigkeit. diese wird aber wohl auch für beide asuros variieren...
[/edit]