Robotic arms can help eliminate dangerous or repetitive tasks from the life of humans. They are already being used in automotive manufacturing, packaging, and human assisting. We wanted to build a scaled-down version of a robotic arm with a slightly silly application that shows the potential of robotic arms. Absolutely everything possible ended up going wrong in our project, and we ended up somewhere we did not expect going into this.

What it does

The name Baristarm comes from 'Barista' and 'Arm'. It was supposed to be able to detect a mug placed anywhere in its reach, pick it up, and fill it with a beverage of the user's choice. That wasn't going to happen though, since many of the required parts failed to print properly, turning into PLA spaghetti, and Amazon cancelled delivery of our pumps for the drinks. We ended up putting a laser pointer on the end of the arm and programming it to do a funky disco dance. We have all the CAD assemblies and ordered electronics to match, as well as the majority of the code (as much as we could do with the measurements from the parts we had)

You can check out our CAD doc and see the arm for yourself: [link] Check out the tab "Assembly 2" and you can actually play with the arm! You can pull the claws apart too. This CAD is what we hoped we could have built, if not for the challenges we faced.

How we built it

It consists of a rotating base, a 'shoulder' on top, an 'elbow' on the other end of the first limb. We put another limb on the other side of the elbow, on which our final joint was placed. This joint would have contained the claw for the mug, but we ended up just mounting the laser pointer onto it.

The laser pointer it self was one we got from a pet store. It had a very short life and we absolutely gutted it, rigging wires so that we could digitally control it.

We had to use a LOT of trig and math to be able to calculate the angles necessary to aim the arm in certain places and pick up a mug (before it was impossible). We created a CAD model of the arm and set all the values, then changed the way it moved and mapped the changes on a graph. We got the equation for said graph (thankfully a linear one), and added that to our code.

We also added a proportional controller to smooth out the changes in the position of the arm. It used the standard formula P(k+1) = P(k) + h • v(k), with some fun modifications to fit the limits of coding a piece of hardware (hard to create arrays and vectors).

Challenges we ran into

This entry would be a lot shorter if the question was "what didn't go wrong". We started printing 2 days before the event, but the parts failed, leaving us with 70g of spaghetti. After failing a few more times over the next couple days, the printer left us with only a couple parts and 16 hours. We optimized our design for weight and printed some parts quickly, but we also made some out of cardboard as it was the only way to finish on time.

Without the Amazon parts, we had to change the entire way the drink system worked, and we could only do one drink instead of the three originally planned. Unfortunately, due to issues with the prints, even the one drink was not feasible, and we eventually resorted to the laser pointer idea.

One of our servos was also struggling to carry the load, but we would have been able to help it if we had more time.

Accomplishments that we're proud of

Our robot's design, the proportional controller, and the arm-aiming algorithm are what we are most proud of. They actually work, and have clever solutions to constraints of time, resources, and parts.

What we learned

While we are nowhere near where we wanted to be, we still have a pretty cool arm. It still works, and both of us really advanced our skills with hardware and software. We managed to interface random electronic devices and modify them to be able to control them, which is something that we will definitely use in the future.

What's next for Baristarm

Once this is over, we will still be working on our project to try and get it to the point where it should be. All we need is time and a working printer.

Built With

Share this project: