Group members worked towards a more efficient and reliable code. The previous code utilized a coasting method to brake the AEV. That technique proved to be unreliable, the AEV could not successfully complete the mission objective. Group members needed a better solution to brake the AEV, while still conserving energy. This document discusses specific programming challenges the team faced, including efficiently navigating to the entrance gate, connecting to the caboose, and stopping the vehicle at precise locations regardless of battery power.
In order to maintain consistent runs by the AEV, group members added a servo that used friction between the servo arm, and the wheel of the AEV. Group members speculated that the servo would use less energy than a reverse command from the motors, and prove to be a more reliable stopping unit. Group members also changed the overall design of the AEV. Most of the components remained the same, but the new placement of these components allowed for a more sturdy AEV design. This allowed the AEV to establish a better connection with the caboose. Group members also changed the absolute position values from feet, to marks. Nothing was done to reduce the overall cost of the AEV.
During the last lab period, the AEV successfully navigated the entire track. The AEV appeared to be balanced well, with a good center of gravity. The new AEV design allowed for better acceleration at the same percent power. Shown below is the code used during the successful run.
The code utilized a different method to stop the AEV. During previous runs, the AEV utilized gravity, and would coast to a stop. Ideally coasting would be the most efficient stopping mechanism, but coasting proved to be unreliable. As the battery power would lower, the AEV would travel at a slower velocity, and coast less when the power was cut. With the new code, the AEV would still coast for a small distance, but then the AEV engaged the servo brake. The servo brake should use less power than reversing the motors, and proved to stop the AEV more reliably than the coasting method. The group also changed the units in the gotoabsoluteposition command from feet, the marks. Since the unit has to be an integer, units in marks allow for a more precise measurement. Changing the units made each run more consistent when compared to the previous runs that utilized units of feet.
The modified code created a similar supplied power vs time graph. For the first half of the graph, the AEV appears to have similar trends when compared to previous runs. The only difference was the motor ran for about two seconds longer until the motors shut off, and the brake engaged. The spike in power from the celerate command, and the power supplied from the motorspeed commands have very similar values, when compared to previous runs. When the AEV attaches to the caboose, the celerate and motorspeed commands used more power than the first half of the run. This is due to a greater percent power, and the propellers are not as efficient going backwards. To combat this surge in power, students added a drop in percent Arduino power after eight seconds. At that point the AEV has enough momentum to reach the gate even with the drop in power. All of this can be seen in the graph below.
The most energy consuming commands resulted from the motorspeed and gotoabsoluteposition commands. This should be due to the amount of power being used for longer periods of time, most of these commands cover longer distances. These commands seem to average out around 120 joules. The servo used a decent bit of power as well. It seems to average out around 80 joules. This value is greater than the 0 joules previous when the braking mechanism solely utilized coasting. But the increase in used energy was needed in order to create a more reliable AEV, capable of completing the mission objective. These trends can be seen in the Table shown below.
The group was able to successfully navigate the track during performance test 3. Students attached a servo which acted as the braking mechanism for the AEV. This method was more reliable, and energy efficient when compared to reversing the motors, or solely coasting. The group also changed the units in the code. In previous runs, the code utilized feet as the main measurement for the gotoabsoluteposition command. A foot was not precise enough to consistently traverse the track. So students changed the unit from feet to marks. The mark allow for a greater precision within the code. Students also changed the design of the AEV, so it could establish better contact with the caboose.
Ultimately the efficiency of the AEV actually decreased with the newly added changes. But before the changes, the AEV could not fully complete the track, so it would fail the mission objective. With the changes the AEV became a little less efficient, but more reliable. This tradeoff should prove to be beneficial because it is necessary for the AEV to completely traverse the track. Nothing was done to reduce the overall cost of the AEV.