The robot needs to be able to drive, following a line, to 3 different weights. It must lift the weight and drive it back to the starting position. There, it must lift it over a high shelf and place it down on the table. A person is allowed to hook and unhook the weight, but everything else must be done by the robot only. The different masses make this a challenge because the robot has to be consistent with different loads or no load on it.
We will use three motors, two light sensors, and an NXT to build this robot. We will work out a system using two sensors on how to make the robot follow the line well. We will also need gears and we will develop another winch system to hook on the weight and lift it over the barrier. The robot needs to be fast, so we will use two motors for movement and one motor for the winch. The mass must be distributed well to keep the robot balanced when it lifts various weights. We need a stable, tall construction to lift the mass over the wall. We will be able to use counterweights, but our biggest counterweight will be the NXT brick.
Day 0 10/25/16:
Today, I attached two wheels together with a front wheel to keep balance. I took of the rubber on the front wheel to reduce friction. I found a strange, but a surprisingly stable position for the NXT brick. I still have no idea how our winch will work, but I will work on it. Next step, get the robot to move and attach the sensors.
Day 1 10/27/16:
Today, we attached the sensors and decreased the size of our wheels to make the robot more stable. We made a different pivot wheel, but it did not work well so we replaced it with a component with little friction. We coded our robot to follow black lines and succeeded in completing the figure 8. Next class, we need to figure out a better pivot wheel and decide how we will make our winch and where we will attach it. Our robot goes forward with the sensor in the front, but there is only space for the crane in the back. We might need to figure out how to reverse its direction.
Day 2 10/31/16:
Today, we rebuild our robot completely because we really wanted to utilize a normal pivot wheel. I now goes through the line following much smoother and can do a 180 pretty consistently. We attached another motor for the winch build our robot upwards. We tested it with different weight and it carried 50g and 100g with no problem. With 200g, the robot kept falling over so we built a cage for the counterweights. Now, the robot is more stable, but the motors are spreading out from the weight of 200 grams. We will need to figure something out to hold our motors together. Overall, our robot is done and all that is left is the coding.
Day 3 11/2/16
Our robot completed the course multiple times successfully. During the official trial, it missed its first turn and we only got 2 points. We made only one structural change. We changed the counterweight holder. We continued coding and are now trying to make the turns based on sensor readings. We hope that it will fix the inconsistency with the turning and will make our next trial successful.
Day 4 11/4/16:
Today we ran our trials 2 and 3 and managed to get 100% on this assignment. Our time was 2:30, second best in the class. We worked only on code and made the 180 degree turn more consistent and hard coded the 90 degree turns. Sensor based turns were not consistent enough for this assignment.
Day 5 11/8/16:
Today we worked on increasing the speed of our robot. Now that it has run a successful official trial, we plan on beating the time record. To do so, we increased the power in our code to increase the speed. This did speed the robot up, however, it also caused some problems. For example, when the robot moves too fast, sometimes it misses the line on turns, causing it to go off course. It works, but inconsistently. We changed different aspects of the code to hopefully make the robot work consistently at the higher speed. Once we manage to get consistent runs with the desired speed, we will complete our final trial. We also commented our code.
Day 6 11/10/16:
Today we continued testing our robot at the higher speed. During one test run, our robot completed the challenge in one minute and twenty seconds. Unfortunately, it was still inconsistent at best. Occasionally, it would just miss a turn or stop. We tried to fix the code the best we could, but it still did not work every time. During our fourth and final challenge, the robot missed a turn and veered off of course leaving us with an incomplete trial.
When set at a lower speed, our robot worked consistently. However, at a higher power and speed, our robot became unpredictable. Sometimes the light sensors missed lines or turned too far or not far enough. It still worked, but at times it did not complete the course. When our robot did complete the challenge, it did so without needing any interference from us.
Learning and Improvement
The two things that we want to improve are the speed and consistency of our robot. If we had more time, we might try to make the robot go faster while still remaining as accurate as it was when it was slow. To do so, we would probably have to redesign the robot as it is extremely heavy—slowing it down. One thing that might help would be better wheels (the shorter but wider ones). They may be able to hold the weight of the robot better, allowing it to move with less difficulty. There may also be things we could edit in the code to improve the robot as much as possible.
Below is the commented code for our robot.
Final Design Picture