Progress Report 3

Progress Report 3

Busick MWF 8:00 am

Group D

Members:

  • William Klotnia
  • Joel Goodwin
  • Sean Koch

April 6, 2018

 

Backward Looking Summary

 

Within the past few weeks, Group D worked on completing both performance tests for the AEV. For the first performance test, the AEV’s goal was to travel from the starting dock, stop between the gate’s sensors for 7 seconds, and then travel through the gate. The team completed this task and was ready to move on to the second performance test. The second test was an addition to the first test. While still having to travel to the gate and pass through it, the AEV also had to travel to the loading zone, attach to the caboose, wait for five seconds, and then travel out of the loading zone. Again, the team completed the test and are now ready to move on to the final performance test. The purpose for completing these performance tests was to stay on track so as not fall behind when it came down to completing the final performance test. The final performance test is a culmination of all the testing the team has done to this point. In the final test, the AEV now has to travel from the loading zone, back to the gate, and then return to the starting dock. By completing the first two tests, the final test will be easier because the team already has the code for roughly half the final test completed and tested. In order to complete these performance tests, the group had to utilize the arduino software and coding language to instruct the AEV to travel under specific parameters defined in the MCR. Measurements of the test track were taken prior to programming that consisted of finding the amount to inches to the gate, then convert the inches to marks with the conversion factors of 1 mark = 0.4875 inches. in order to determine how far the group wanted the AEV to travel so that it could reach the gate and stop between the gate’s sensors.   Documentation for this code can be found in the appendix under “Performance Test 1 Code” and “Performance Test 2 Code.” Once the programming was completed, the group uploaded the code onto the AEV, and then tested the vehicle on the test tracks. Numerous times the AEV traveled too far, and sometimes too short, so the group went back to the code and made adjustments to fix these issues. This process was repeated until finally the AEV performed up to expectations. This code was then tested numerous times in order to test consistency, and very minor adjustments were made, such as adding or subtracting a single mark for distance traveled, if there were inconsistencies. Through this process, the current code was achieved.

 

The success of the Performance Tests indicate the benefit of the design changes that were made to the AEV shortly before the start of testing. The old design was very similar to the base model from the beginning of the semester. This design was meant to be used as an exercise to become familiar with the different parts and components that would be important for the AEV project. While it was not perfect, the design held up to the different tests that were required of it. Difficulties and eventual problems sprang from the design flaws of the original design in that the connector arm needed to be removed after each lab for transporting it properly. Additionally, the original designs center of mass was off, creating a severe tilt of the AEV to one of its sides. The amount of negatives to the original design were just too many to ignore, and thus a new design was created using the aspects from the advanced research and development that had been shown to be the most beneficial for the success of the AEV. A vertical design was chosen to address the balancing issues seen on the initial AEV. With all of the components built directly in line with the connector arm, no single component hangs too far from the center of gravity, thus making it harder for a component to drastically affect the tilt of the AEV. Another aspect to the design that was added, was the configuration of the propellers. From the second advanced R&D, it was found that having at least one propeller always facing its most efficient direction, helped reduce the amount of energy used as well as reducing the amount of time needed to complete a route.

 

Following the completion of Performance Test 1, the braking consistency was the main concern of the group. The method of braking in question, consisting of using the motors to initially slow momentum, and then allowing the AEV to coast to a final stop, was overall fairly accurate with most test runs stopping within a reasonable distance of the gate. Looking closer at the differences between each run showed, however, that a range of 12 inches between the shortest test run and the longest test run is not very consistent when trying to stop the AEV in a small area. This isn’t a huge problem due to the fact that the vast majority of the runs were within a 4 inch stopping range, which allowed the AEV to pass Performance Test 1 without a mistake.

Following Performance Test 2, the difference in the coding of the AEV between when its running uphill, as in the first performance test, vs. downhill changes the way the motors have to work and react completely. Much less power needs to go into moving the AEV forward going downhill, as gravity acts as an outside force, but more power needs to be applied to stop the AEV as it has more momentum and a precise stop needs to be accomplished as any hard collision with the caboose will push the AEV far past the distance limit for stopping and result in a lower score and potentially a safety violation if the caboose makes contact with the end of the track.

Another aspect of Performance Test 2 was attempting to make the AEV more energy efficient.  In order to do this, the code was altered in order to have the motors running less often and at lower speeds, thus saving power.  After many tests, it was determined that for most of the journey, the code could not be altered in a way that consistently allowed the AEV to perform the necessary tasks, without vastly altering the entire design of the AE, as doing so could be costly at such a late time.  However, perhaps because of the added weight of the caboose, the AEV was able to consistently stop within the required zone at the end of return trip using a brake that consumed less power than the original. The new brake operated a lesser power and for a shorter time period, thus saving a small amount of power and making the AEV slightly more efficient.

Figure 1: Energy Consumption vs. Time

The result of the finalized energy efficient code was a total reduction of energy on the order of only about 6% from approximately 260 Joules down to 244. The time that it took to get the AEV to be more energy efficient will not work for future improvements as the first energy reduction took about 3 classes to complete and only two classes remain before final testing of the AEV project. If more time was available, other parts of the AEV run can be lowered in their energy usage by turning down motor speed, and coasting into more stops rather than power braking. Additionally using a servo would have reduced the energy usage the most by eliminating the need for the motors to have to run to stop the AEV’s movement.

 

Forward Looking Summary

Looking forward, the next task to be accomplished is the final performance test.  In this test, the AEV must stop at the gate where the first sensor has been activated, proceed to the end of the track where the caboose is attached via magnet, and then return to the start, stopping at the gate along the way.  Having already successfully made it to the end of the track, the only remaining part to be completed is the return trip.

 

Though one braking system has been in use, it is likely that it will have to be reconfigured for the return trip due to the added weight of the caboose. This will either be done by slightly changing the existing code and testing it each time, or by the addition of the servo.  Though the current braking system has worked thus far, the addition of the servo may be the most efficient and time-sensitive option. The first option is to attempt to alter the current braking system in order to handle the additional weight of the caboose.

 

The first and foremost upcoming goal is the final decision on the braking system, which should be completed by Friday, March 30.  This deadline will allow time for the decided upon braking system to be installed by the final performance test deadline. By the end of class on Monday, April 2, the goal is to have successfully finalized code that consistently allows the AEV and caboose to stop at the gate on the return trip.   Following that by Monday, April 9, the goal is to have the AEV running the entire trip. By completing the entire trip at this date, there is still time remaining to fix any problems that should occur.

 

Upcoming Schedule

  • April 9 – Rough complete run, fix any small bugs in code
  • April 13 – Final performance test (complete run with no problems)

 

Appendix

 

Team Meeting: 3/21/18

 

Location: Hitchcock Hall – 8:00 am

 

Attendees:

  • Sean Koch
  • Will Klotnia
  • Joel Goodwin

 

Objective:  Performance Test 1

 

Tasks:

  • AEV stops at gate
  • AEV proceeds through gate

 

Team Meeting: 3/22/18

 

Location: Hitchcock Hall – 4:15 pm

 

Attendees:

  • Sean Koch
  • Will Klotnia
  • Joel Goodwin

 

Objective: CDR Draft

 

Tasks:

  • Joel – Results, Discussion
  • Sean – Data, Discussion
  • Will – Discussion, Conclusion, Results

 

Team Meeting 3/26/18

 

Location: Hitchcock Hall – 8:00 am

 

Attendees:

  • Sean Koch
  • Will Klotnia
  • Joel Goodwin

 

Objective:  Performance Test 2

 

Tasks:

  • AEV stops at gate
  • AEV proceeds through gate to lightly attach to caboose
  • AEV begins return trip

 

Arduino Code:

 

Performance Test 1 Code:

 reverse(1); // Reverse motor 1

 motorSpeed(4,40); // Run all motors for 40% power

 goToRelativePosition(198); // Continue previous command for 198 marks                         

 reverse(4); // Reverse all motors

 motorSpeed(4,40); // Run all motors for 40% power

 goFor(1.25); // Run previous command for 1.25 seconds

 brake(4); // Cut power to all motors

 goFor(10); // Run previous command for 10 seconds

 reverse(4); // Reverse all motors

 motorSpeed(4,35); // Run all motors for 35% power

 goFor(3); // Run previous command for 3 seconds

 

Performance Test 2 Code:

 reverse(1); // Reverse motor 1

 motorSpeed(4,40); // Run all motors for 40% power

 goToRelativePosition(198); // Continue previous command for 198 marks                         

 reverse(4); // Reverse all motors

 motorSpeed(4,40); // Run all motors for 40% power

 goFor(1.25); // Run previous command for 1.25 seconds

 brake(4); // Cut power to all motors

 goFor(10); // Run previous command for 10 seconds

 reverse(4); // Reverse all motors

 motorSpeed(4,35); // Run all motors for 35% power

 goToRelativePosition(110); // Run previous command for 110 marks

 brake(4); // Cut power to all motors

 goFor(2.7); // Run previous command for 2.7 seconds

 reverse(4); // Reverse all motors

 motorSpeed(4,45); // Run all motors for 45% power

 goFor(.75); // Run previous command for 0.75 seconds

 brake(4); // Cut power to all motors

 goFor(6); // Run previous command for 6 seconds

 motorSpeed(4,45); // Run all motors for 45% power

 goFor(2); // Run previous command for 2 seconds

 

Final Performance Test Energy Efficient Code:

 reverse(1); // Reverse Motor 1

 motorSpeed(4,40); // Run all motors at 40% power

 goToRelativePosition(197); // Continue previous command for 197 marks                       

 reverse(4); // Reverse all motors

 motorSpeed(4,40); // Run all motors at 40% power

 goFor(1.25); // Run pervious command for 1.25 seconds

 brake(4); // Cut power to all motors

 goFor(10); // Run previous command for 10 seconds

 reverse(4); // Reverse all motors

 motorSpeed(4,35); // Run all motors at 35% power

 goToRelativePosition(110); // Run previous command for 110 marks

 brake(4); // Cut power to all motors

 goFor(2.7); // Run previous command for 2.7 seconds

 reverse(4); // Reverse all motors

 motorSpeed(4,45); // Run all motors at 45% power

 goFor(.75); // Run previous command for 0.75 seconds

 brake(4); // Cut power to all motors

 goFor(6); // Run previous command for 6 seconds

 motorSpeed(4,45); // Run all motors at 45% power

 goToRelativePosition(-219); // Run pervious command for -219 marks (Backwards 219 marks)

 reverse(4); // Reverse all motors

 motorSpeed(4,55); // Run all motors at 55% power

 goFor(1.25); // Run previous command for 1.25 seconds

 brake(4); // Cut powe to all motors

 goFor(8); // Run previous command for 8 seconds

 reverse(4); // Reverse all motors

 motorSpeed(4,45); // Run all motors at 45% power

 goToRelativePosition(-92); // Run previous command for -92 marks (Backwards 92 marks)

 brake(4); // Cut power to all motors

 goFor(4); // Run previous command for 4 seconds

 reverse(4); // Reverse all motors

 motorSpeed(4,50); // Run all motors at 50% power

 goFor(0.5); // Run previous command for 0.5 seconds