Machine control design
Problem/constraintes
For our machine control design unit we were to choose one of the four problems given and build and program that mechanism. The following was our choice.
Problem 1: Automated Guided Vehicle (Hardware Level 2 Software Level 4)
An assembly plant would like for your team to design an Automated Guided Vehicle,
AGV, to drive in a straight line back and forth to deliver batches of parts. The vehicle
must travel back and forth based on closed loop control. The AGV will not start until
a button on the robot is pressed. When the same button is held at the end of a cycle,
the robot will stop after completing a trip back and forth.
This was a relatively straight forward task.
Problem 1: Automated Guided Vehicle (Hardware Level 2 Software Level 4)
An assembly plant would like for your team to design an Automated Guided Vehicle,
AGV, to drive in a straight line back and forth to deliver batches of parts. The vehicle
must travel back and forth based on closed loop control. The AGV will not start until
a button on the robot is pressed. When the same button is held at the end of a cycle,
the robot will stop after completing a trip back and forth.
This was a relatively straight forward task.
brainstorming.
There were several options available to us. The only thing really set in stone was the use of a bump switch to start and stop the mechanism. The simplest option was to just time the length that the motors were on our motors. However this was a little too simple. This applied to an imaginary set of obstacles that changed distance as our motors changed speed, and if the course was not long enough it would smash into something. We wanted to design a mechanism that would work in any environment that it was placed in. This essentially left us with two feasible options: two sonars or two limit switches. If we used the limit switch option, the robot would have to hit the object before stopping. That left us with the sonar choice.
Below are one of my early sketches and a sketch of our final product. Also, there is some examples from our early coding plans.
final design
As I stated in the brainstorming section, we decided to use a sonar setup. We also initially decided to use tracks and create a tank, we felt that this would add challenge to a simple build and allow this mechanism to work in much more challenging terrain. However one of our motors had a bad wire, because the two tracks were linked together in order to help it go straight the whole system jammed. In an attempt to fix it, we got rid of the tracks and went to a wheel drive system. After making the switch, we discovered the bad motor and switched it out. At this point in the project, it was too late to return to the track system. We did have to overcome some design challenges with this. For example, without the resistance tracks provided, we had to increases the distance for the obstacles that the motors cut out, and decrease the speed of the motors. Our overall design was a very clean one, with only the sonars and the bump switch visible.
reflection
Overall, I think we had a good physical design, but our programming was slightly flawed. It got the job done, but we were unable to come up with an efficient way of stopping the vehicle and the while loop/if then did not always work correctly. Given more time i would have liked to develop a method of braking. This would improve the robots overall efficiency and reduce the likelihood of damaging the "batches of parts."
videos
The following videos document different stages of development.
This video is of a test with the tracks. Notice the turning movement caused by the bad motor that we assumed was just a track binding.
This was our first test with wheel drive. Note the higher speed and impact with obstacles.
This is our second test with wheels. Notice a slightly slower speed and earlier motor cut-outs. However these adjustment did not overcome impact.
This was our first successful test with wheels. However our rear sonar was malfunctioning, because of that it was stopping too soon.
On our next adjustment we overcompensated slightly. Once again, the machine continually hit walls.
Finally successful! We were able to make the correct adjustments and the machine stopped right before the obstacles.