Sharp Turns For The Non Agile Robot example essay topic
The open ended ness of the assignment led to many proposed choices concerning the path of robot, type of control and implantation of chosen design. The most obvious choice was optic sensors, as the tape would ensure a consistent route through the maze and the most accurate times. The design would be as obvious as the route: two sensors controlling the speed or direction of the wheels. When one sensor drifted from the light the wheels would compensate to bring the robot back on track.
The idea seemed simple and a sure way to rapidly complete the assignment without trouble. Further thought engendered many concerns: not only must the robot navigate the course but it must also do it faster than the competing teams. Sensors would ensure the robot would cross the finish line, but not with a fast time. The course the sensors must take is loopy and has somewhat sharp turns for the non agile robot. Speed would have to be decreased in order to keep the robot on the track, as a fast and sharp turn could throw the robot off the tape, destroying any possibility of a finish. Another problem arose with sensitivity.
The robot, once of the tape a little, would not be able to smoothly get back on the course, resulting in swerving and thus making the course twice as long. With these considerations in mind, we decided that the sensor idea would not be the best choice for our final design. Our second proposed option gained a notch in the level of thinking, although it was still simple and to the point. We designed a way to use both bumpers to make two turns in order to navigate both walls.
The robot would be angled at startup in order to ensure an impact with the far right wall. The robot would then make a left turn and head to the other wall, where it would again impact, turn, and in theory finish the course. The idea seemed consistent at first, and another quick and easy way of completing the course with a decent time. The only necessary circuit setup would be proper wiring of the control boards already constructed on the robot. These circuits would be fail-safe as they were designed by a commercial company and tested before shipping. With the operational status without doubt we could focus on setting the four potentiometers on the board in order to finely tune both turns.
Problems began immediately. Not only must both turn be accurate, but the starting angle would also have to be within a very narrow margin or both turn would be thrown off. Various ideas were tried so that the robot could be started at the same angle, but even that did not prevent miss guided turns due to error in the potentiometers. When the idea did work, the robots times were respectable but still not in the range of victory. It seemed indolent to strive for meritocracy, so we opted to decide on another way of designing the robot, although we saw did not discard using bumpers as a way of navigating the course. Our third design once again gained in complication and achievement.
We designed a system of analog turns in order to make two turns at specific times to clear both walls. The turns would not rely on hitting a wall which created two benefits over the previous design: we would not have to worry about starting the robot at a specific point and we would have to rely on the robot hitting the wall, which increasing the length and time of the course. The idea of analog turns had been implemented in previous lab, so no research would be required, only a refreshment of memory. We concluded that two separate timers could be used and then the output would be fed to the timing boards in order for the circuitry to make the two turn. Once again we would have to tune the settings of the four potentiometers, but there would not be as much error in starting angle, as it would be zero degrees. Construction of the circuit was easy and took less than an hour.
After tweaking the potentiometers we found that we could easily adjust the timing of the two turn with fairly decent accuracy. After testing the robot several times we noticed a decline in times and more of an error percent in turns. The batteries that ran the timers was draining, thus affecting the entire circuit. Lower voltage meant the wheels would run slower and the timers would act quicker.
The result was a robot that turned twice entirely too fast and with little accuracy. New batteries could be used to bring up the speed of the wheels but this meant new settings in all four of our potentiometers on our proto board as well as the four potentiometers on the robot control board. But once again the power would drain slightly between runs and the times could not be kept constant. The design also left no room for error.
Any mis turn would throw off the other turn and result in an incomplete course. We decided to discard the idea after many attempts to keep the times consistent and free from tweaking in between runs. Our next idea kept some of the soul of the previous but did not allow as much room for error. A digital timer would be used to make two turns at precise times. The timing for the turns could be maintained far better than the previous ideas. In order to keep voltage at an ideal level, we used a voltage regulator.
The regulator brought down the voltage some but allowed us to more accurately control the robot. The circuit design was used in another course and could almost be exactly transferred with the exception of the timing of the turns. A 555 counter would be used to send out pulses which a binary counter would add. The frequency of the pulses could be set by varying resistance and the timing of the turns could be controlled by the bit output of the counter. We used binary logic to choose the different bits the robot would turn at while making sure that only one combination would make the turn.
NAND, OR and NOT gates were used in order to make the turn selection. We were careful to set the frequency low as we did not want the robot to make each turn multiple times. After the binary logic was implementing, analog circuitry was in place in order to feed a signal to the motor control board, which would be used to control the time each wheel varied its speeds. We chose 3 and 13 pulses to make the turns at a frequency of about. 6 Hz. Our calculations told us that the robot would be able to clear the course in about 8 seconds, which was much better than our previous times.
The shortest distance from one point to another is a straight line, so we made the first turn early so that the robot would travel almost to the top of the course before the second turn would activate. With this idea any percent in error of the first turn would not have as much effect on the second turn because the distance from the second turn to the finish line were relatively small. The second turn would not have to be finely tuned as much as the first because it had far less distance to travel and more room for error. The first turn proved to be crucial, and in the end fatal. The combination of the distance it had to travel with the two walls as a hindrance proved to too much for the idea. The robot would make the first turn perfectly at times, but most of the time is turned too sharp and collided with the near wall.
The room for clearance of the idea was not enough: the robot would have to travel too close to the two barriers of the maze in order to get the straightest route. The second turn also proved to be a problem, although not as much as the first. Even though the room for error was large it still often missed the exit path and with no alternate way to set itself back on course failure was imminent. The idea seemed to get us on the right path but did not present itself as a final choice. Our final design took the best of all our ideas and put them together. Dig ital logic would be used for the first turn and the bumper board would be used for the second.
The robot would travel farther but could be faster and less prone to error. The second turn would act as slack for the first, increasing our margin for error and, what we hoped, would decrease our track time. As shown in figure 6 the robot would go up about as shown in figure 6 the robot would go up about four feet, make the turn and the travel with a slight angle up to the far left wall. The bumper would be depressed and the robot would turn right and go out of the course. We decided to aim the first turn as high as possible in order to again lower the margin for mistakes.
With little time left to design and implement we decided this would be the last design and aimed to improve it as much as it took in order to get a working robot. We started first with the general idea of how the robot would function at the circuit level. The tasks were broke down into groups in order to provide easy troubleshooting, organization, and the ability to change out parts if deemed necessary. As shone in figure 1 we would start with a binary counter as the heart of the operation. A 555 timer would be coupled by a digital counter, using a photometer to set the frequency of timer. We added a clear switch in order to reset the counter back to zero.
Although not a necessity, this device would make no down time before runs and also increase the accuracy of our starts. We used a standard bumper board as a triggering device. Voltage was fed to the switch and the other end was connected to the counter and a 1 k ohm resistor in parallel. This created a situation where a depression of the bumper would send a ground signal to the counter and clear the device. This created problems immediately.
The grounds of the left and right bumper were connected so a short would be created if the two were hooked up at the same time. We had to use a second bumper in order to effectively achieve a clearing mechanism. After we designed the layout for the binary counter and clearing switch, we worked on the selection logic. Through Boolean logic we wanted to achieve an output of 1 for every combination except the one we wanted to turn on. As shown in figure 4, the first and last bit are connected to an OR chip and the second and third bit are connected to a NAND chip.
The outputs of the two are then connected to another OR logic. This creates a situation where the output is only 0 when 2 and 3 are '1', or the 6th count. The output from the logic then goes to the board trigger (fig 2). At this point the flip from 1 to 0 discharges a capacitor and sends an adequate charge to the motor control board. Without this the motor control board would not be able to discern the signal. The board trigger is analog and works on reverse bias.
When a '0' is received the flow of electricity is able to go from signal on the timer board, through the diode (which previously blocked flow) and then back to ground. This flip activates the motor control board which then can make its turn based on the settings of the potentiometer. The motor control board is a given circuit but is not that complicated and could have been built by the team if necessary. It has a capacitor which discharges and based on the potentiometers controls the direction the wheels. When the photometers are adjusted the voltages are reduced or increased in relativity to the source and can by a transistor control the flow of electricity. Once the circuit was built and its operation was understood we began testing the first turn only, as the bumper had not been connected yet.
We first noticed that the robot would have to get through the course in less than 22 cycles or the turn would be activated again. In order to be free to use whatever frequency we wanted we designed another set of logic to stop the counting of the 555 timer. The stopping logic worked well on the proto board, but after connecting the wheels to the circuit the noise was too much and created uncontrollable counting. Different combinations of capacitors and wiring were used but the timer could still not be effectively stopped. The idea was discarded and obligated us to design the robot to complete the course in one cycle. The 6th count was used so that the turn was soon enough yet would not occur again during the course.
Our calculations led us to a frequency of about. 7 using a 10 uF capacitor and about 96000 ohm resistance for the potentiometer. Taking into consideration a 4 ft distance from the starting point to the first turn, it allowed the robot about 4 seconds to get that distance. The robot was tweaked to about.
9 ft / sec, only a little slower than we had been able to maximize. With the binary counter optimized we connected the bumper board to the motor control board, a fairly easy task compared to prior circuits. The left bumper was chosen because it would impact the wall first. A test run proved successful in operation although the timing was not completed. After meticulous tweaking we were able to make both turns with fare accuracy in our practice runs. Voltage drain was not a factor due to the high gap between the voltage source and the voltage in which we ran the robot.
This was the final version of the robot made ready for the competition. The competition allowed 5 minutes for teams to make as many runs as possible. The best three runs could be chosen and recorded. With only five minutes major adjustments and troubleshooting could not be performed, so only minor modifications could be made, such as resistance.
We prepared our robot so that only small adjustments to the four potentiometers on the motor control board would have to be made. The maximum amount of runs needed to be achieved as small fluctuations could make huge differences in time. If our robot turned too soon it would run into the middle barrier or hit too far down on the far left wall. If the robot turned too late it could either run into the middle barrier or not hit the far left wall at all. Simple adjustments could be made between runs with speed and effectiveness.
Our robot ran the course in about eleven seconds which is what we had predicted. Its accuracy was fare but it had less room for error than we had originally thought. Although it ran the course well, it only achieved about a 75% success rate and, in general, either passed or failed. There are many improvements that we could have made to the robot to minimize the time and maximize the success rate. First, a simple angled front could be constructed so that the robot could almost slide off the walls, as the robot would get hung up on the wood and not turn. This would not be costly, could be constructed of light weight materials and would still be in the spirit of the event.
Timing was effective but it could b made more accurate by having potentiometers with small resistances and using static resistors for the majority. For our 96000 ohms of resistance we could have used 95000 ohms from a standard resister and be able to tweak the small leftover with a potentiometer. This would less the likeliness that a potentiometer could be bumped, thus destroying the accuracy of the system. We encountered many situations where just picking the robot up and putting it down would result in a change of resistance and different times for course runs.
The optimal idea would find the perfect resistance and make it finalized in a resistor. If we implemented this idea than only the speed of the motors could affect the driving conditions. Another problem we commonly encountered was the varying speeds of the motors in comparison to each other. The robot seldom ran straight.
With a precisely straight motor the robot could be even more accurate and decrease chance of running into the middle barrier or getting snagged on the far left wall. A huge success of the robot was the timing board. We rarely saw a difference in frequency. The robot would make the first turn exactly when it was supposed to, even if the degree of the turn was not as precise. The digital timer was a great improvement over the fluctuations of our previous designs. Our greatest success was in implementation of our design.
Our first designs failed and we were able to adapt to the changes we had to make in order for the project to be a success. Our modulation of the robot operations proved to be invaluable as we had to often change out our binary logic or adjust the frequency. Without the organization and determination we would have not been successful in the course.