The ER1 robot tracks where it *thinks* it is located in the room, relative to it's starting position. As we discovered while working with the robot, the ER1's internal coordinate system uses the direction the robot is pointed in at the start for the positive x direction, so the moves of the robot should send it to (100,0), (100, -100), (0, -100), and (0,0) in the robot's system. The robot also records the amount it has rotated relative to the starting position.
In order to measure the location of the robot relative to its starting point, we created a set of coordinate axes on the floor out of masking tape. On these two axies, the robot started out going along the y axis, giving us ideal positions of (0,100), (100,100), (100,0), (0,0). To add to the complexity of these calculations, we started the robot off inside the square, measured the location of both wheels (to determine the orientation of the robot, if we were interested), and got to measure everything in inches. So the raw data from one sample run looks like:
Robot Y (cm) | Robot X (cm) | Robot Theta (deg) | Wheel A X (in) | Wheel A Y (in) | Wheel C X (in) | Wheel C Y (in) |
0 | 0 | 0 | 23.375 | 17 | 8.125 | 17 |
99.998 | -0.62 | 0.0034 | 24.125 | 55.125 | 9.25 | 55 |
99.814 | -100 | -90.009 | 55.875 | 47 | 55.875 | 62 |
-0.1511 | -100.036 | 179.998 | 50.25 | 14 | 70 | 14.75 |
0.116 | -0.0714 | 89.997 | 18.875 | 20.125 | 20.875 | 3.75 |
However, all we're concerned about this week is the length of each of the four legs, and the angle which the robot turned. So, all the data for 10 runs was put into a giant excel spreadsheet of doom by Victoria, and many numbers were crunched, so we ended up with the average length of each leg, and the average value for each angle:
Leg of Run | Measured Avg Length (cm) | Measured Length Std Dev | Odometer Avg Length (cm) | Odometer Length Std Dev |
1 | 99.22457036 | 2.144977518 | 99.99886676 | 0.002751234 |
2 | 99.38501563 | 0.304970553 | 99.88585594 | 0.190196825 |
3 | 98.51729163 | 2.557876561 | 99.95509102 | 0.018554453 |
4 | 98.43025813 | 2.354875505 | 99.88047283 | 0.136275454 |
Angle of Run | Measured Avg Angle | Measured Angle Std Dev | Odometer Avg Angle | Odometer Angle Std |
1 | 87.27095858 | 1.125372742 | 90.00368111 | 0.0040753 |
2 | 87.19575624 | 1.277785731 | 90.00056122 | 0.003213627 |
3 | 86.11527885 | 0.431503191 | 90.00068222 | 0.000992153 |
So overall, the robot appears to not turn as far as it actually claims to, and to undershoot the distance a little bit as well. However, the standard deviation is large enough that depending on the run the robot may also overshoot by a couple centimeters.