Team Eight/Final Paper
Software Design:
0) Development Cycle: Really need to coordinate with ME and EE people to start working with a prototype of a robot as soon as possible instead of hallucinating the whole architecture from the beginning. We could have won the competition if we had not wasted the first two weeks wandering around
1) Architecture: faster and faster!!! a) Vision: scipy.weave to embed c code b) Control: Arduino code to navigate with sensor information c) Logic: use pipe instead of queue for multi-process. Remember multi-thread in python is an illusion...
It took us three weeks, five versions of coding, to realize that this may be the best conmbination.
2) Test: If we had just one more day to test....
The full verison of source code is on https://github.com/Eminemya/maslab2012. Happy hacking
Stability of 5V power supply
The very first problem in our circuit manifested when we observed that the IR sensor works fine when the robot is
stationary but freaks out when the robot is running around. By observing the 5v input voltage for IR sensor with
oscilloscope, we discovered that it fluctuate as the motors are running. The supply voltage occasionally drops to
2v, which is way below the working voltage of the IR sensor.
By reading datasheets of various parts in the circuit, we found out that the voltage regulator should be collected
in parallel with capacitors at both input and output end. The capacitors effectively filtered out the high
frequency part and insured steady voltage to the IR sensor.
Motor current limits
Initially we burn out motor controller frequently. It was due to the fact that the motor draws current directly
from the motor controller, which supplied a voltage of 12v. When the robot get stuck, the effective resistance of
the motors dropped drastically, hence the current increases and burnt the motor controller. Initially, we tried to
fix this problem by adding a resistance in serial with the motor, so that the current will not get too high even if
the motor is stuck. However, this can be problematic as well. Since the ground for the robot is not perfectly flat,
it get stuck occasionally. The effective resistance of the motor drops and much less voltage is applied upon the
motors. Therefore, the torque provided by the motor is then weakened drastically and the robot can never get out of
stuck. The solution to this problem was sort of hilarious. We managed to get two motors with high static resistance
so that the current will not surge above the limit of the motor controller while stuck and yet maintain high output
torque.