Here is a video of the arm in action at the state olympiad - first place!
Step 1: P.1, Plan: Control Structures
In this scheme, one or two pilots have direct control over every actuator in the entire system. This usually means a VEX remote with joysticks that are supposed to position a bunch of servos all at the same time. One competitor we saw had some sort of Lego or K'nex kit that allowed him to type in angles using a laptop with a bluetooth transmitter.
Although it's by far the easiest way to go about building a robotic arm, it also doesn't work very well, and is slow to control. At best, the people with VEX robots were able to place 2 - 3 objects (not the batteries though, since they were too heavy), and at worst, they placed none and wrecked the game board.
One team used this robotic arm kit, along with some very minor mechanical modifications (just enough for them not to get disqualified, though), but was unable to place a single object.
- Inexpensive and easy to assemble, if VEX or Lego parts are on hand
- Can be built the night before if you procrastinated
- No code
- Difficult to control and imprecise
ii. Automated, No Feedback
Why make a human pilot the arm when you can just preprogram a bunch of angle coordinates and gripper states for the arm to travel between? Because we know the locations of all of the objects on the game board beforehand, their locations can be hard-coded, and we can hope that the judges will set up their game board exactly to the correct specifications.
- No user error
- Faster than fully manual control
- No GUI required
- Will fail if the objects are not exactly at the preprogrammed locations, except for the nails, which can be picked up by an electromagnet that just needs to be close enough, but not precisely at their locations
- Significant coding (compared to zero) involved
iii. Automated, With Feedback
OK, in reality, the judges make mistakes - big enough mistakes for the arm to miss if you just hard code some coordinates. We found this out the hard way at regionals, although we did still win with an automated controller without feedback, placing the majority of the objects we intended to pick up.
One solution to this problem is to add sensors such as infrared sensors or ultrasonic sensors to try to determine where an object is. This would require much more code than any other alternative, and two-way communication between the computer and microcontroller, unless all of the code is on the chip.
- Same as automated, without feedback
- Will not fail if the objects are positioned with some error
- Requires expensive sensors
- Even more code, again it increases by a significant amount from the previous case
iv. A Compromise...
The simplest solution to the problem posed by the automated controller with no feedback is to add some basic user input options to adjust the position of the arm once it is about to pick up or place an object, not to add sensors. The arm cycles through hard-coded positions, waits for the user to use the arrow keys to make adjustments, and then continues. Essentially, the user provides feedback, instead of any sensors on the arm itself. This is what we did.
- All of the advantages of a controller that is automated with feedback, but without the disadvantage of requiring sensors and a lot more code
- You'll want to write a GUI for this (Picture 1), which is a bit more code