September 2, 2018
I’m not sure how the robot is supposed to detect how many degrees it’s supposed to rotate but in many tests I can’t get them to rotate as much as I want them to. I’ve tried this with two relatively new robots and the results are the same.
I can demonstrate with this simple program that is supposed to drive the edison forward, turn 180 degrees, and repeat 10 times. Unfortunately, in testing on different hard / smooth surfaces I’m getting the same problem. Instead of turning 180 deg, the robot turns 175 or so. Not fun.
This (and my previous topic) I noticed when writing what should be a simple program that makes the edison drive along the path of a regular polygon. Give an input (round button) and it would increment the number of sides the robot would draw, while decrementing the angle (e.g., draw 2 sides, 360/2 = 180 deg turns; 3 sides, 360/3 = 120 deg turns; 4 sides, 360/4 = 90 deg turns …)
Anyway, hope there is a firmware solution to this. I figured the current implementation could compensate for wheel slip or worn motors because they are supposed to detect amount of rotation somehow. Also I would assume the distance detection would work similarly. For the time being I’ll have to manually compensate for the robot’s lack of turning (e.g, “spin 190 degrees” to make the robot spin 180.
August 24, 2015
Due to minor mechanical differences in the motors and encoders inside different Edison robots, some robots may not turn to exactly 90 degrees when given the input of 90. Encourage students to try different values around 90 (e.g. 87 or 93) to find the input that works best for their Edison.
When using programs that run multiple ‘drive’ commands consecutively, students may note that their Edison robot’s accuracy is reduced as more and more commands run. Adding a pause (using either a ‘wait’ with a very short input value or a ‘stop motors’ block as appropriate) between ‘drive’ commands allows the motors to fully stop moving, which will increase accuracy.