Turn_Degrees(blocking=False) vs blocking=True Different?


I think I understand the difficulties of accurately turning (and stopping) the GoPiGo3 with only encoder feedback. In my case, turn_degrees(360,blocking=False) seems to be stopping about 5 degrees short consistently. I have not tested with a blocking=True case; (I would need to launch a distance sensor reading thread in that case).

I think my tires are 65.9 instead of the default 66.5 mm, but I have not compared how drive_cm() does to be sure this is a contributing factor.

Is there any difference between with and without blocking? The board does the stopping in both cases? The class only figures out when to return if blocking is True?


Blocking=False means the method will not wait for the turn to finish.
If you do a turn_degrees with blocking set to False, followed by a print statement, you will see the print output before the turn is finished.
With blocking set to True, the turn will finish first, then the print will be output’ed.