Robot Gripper for Paper Coffee Cup
by sergiolunacosta in Workshop > 3D Printing
485 Views, 2 Favorites, 0 Comments
Robot Gripper for Paper Coffee Cup
Hi! My name is Sergio Luna, I'm a student in Electronics and Automation engineering is Spain, currently in Erasmus in Brussels, Belgium. This is my project for the course Mechatronics I. I joined the course late and had to start the project by myself as everyone already had started working in groups. The idea behind this project is the design of a robot gripper. This Robot Gripper is designed to be implemented as the tool articulation on a 6DoF industrial robot, directly into the 6th articulation providing the user full control of the gripper. This will allow the robot to precisely move the cup, intended for demonstrations for coffee makers, in which a precise moving and hold of the cup is necessary to draw in the coffee inside the cup complex shapes with milk cream poured over. This task has some problems that are inherent to it:
- The force applied on the cup must be controlled as it can be easily crushed or deformed if not grabbed with caution.
- The shape of the claw should be optimized to the cup it’s going to be holding, for simplification I designed it for a medium sized cup able to contain 150-160 ml of liquid, which would be used for coffees like cappuccino. The dimensions of this cup are 60mm of lower diameter, 90mm of upper diameter and 110mm of height.
I have always loved those coffee maker and robot companies demonstrations where 2 robots make sure a beautiful image is left on top of the coffee after pouring the cream, however, all the grippers I've seen on those demonstrations aren't that specialized for the job, sometimes the paper cups can move while "gripped" and can result in a bad result. That's the motivation that got me to do this project.
In this post I will go into detail about all the steps I followed to design this, with all the problems and decisions I had to face.
Downloads
Supplies
- Arduino board (in my case I'm using a Nano)
- Stepper motor
- Motor driver (I recommend the TMC2208)
- 12V PSU for motor
- Buck converter 5V for Arduino board and Driver
- 3D printer for all the parts this design needs
- 4 M5 screws 70mm
- 4 M3 screws 40mm
- Assortment of cables
- Breadboard for the circuit or prototyping board
- Button
This project has some subsystems:
- Arduino+TMC2208 - They are connected through UART communication using a 1 wire configuration in which a 10k ohm resistor is placed between the Tx and Rx pins in the arduino. Later on I'll explain all the libraries used in the Arduino code and all the schematics.
- TMC2208+stepper - This driver is very commonly used in the 3d printer industry because of it's microstepping capabilities and ultrasilent mode. It's completely programmable by UART and supports a wide variety of input voltages.
- SpurGear+Rack
Overall Idea of the Gripper
When I started I really had no idea of what would be the best way for me to design this in a way that would be, not only easy to work with, but also easy to 3D print, assemble and disassemble.
This is why I started brainstorming some ideas. In the picture above you can see the first sketch I thought of. The problem with this was that, as the cup would be very far from the centre of mass of the design, when that cup would be full it would generate a lot of stress in the 3D printed parts. In addition to this, this design forced me to mount the Stepper motor in a vertical position, which would have been very hard to stabilize and would have also contributed to the stress in the different parts.
The second idea I thought is the one that will later transform in the finished project I have now. In the next picture you can see (although is not easy to understand in this perspective) the second sketch. The idea convinced me so I started designing it in 3D, which are the two other images above.
All the 3D parts and the animation in the introduction are made with Fusion360. A full step-by-step tutorial on how I designed the gear and rack can be found in this link.
Refering to the other parts of the project (electronics, mechanics...), I wanted my design to be simple, with little number of parts to make it as easily fabricated as possible. This is why I chose the stepper motor as the actuator for the gear. Before that I thought about using a servomotor, which would have allowed me to detect different forces that the claws of the gripper applied and, with that, I would be able to detect the cup without entering the dimensions in software. However this option was much more diffcult to program and, most importantly, much more expensive. It's also obvious that a normal dc motor would be too difficult to control for it to be as precise as was needed for this project, and that's why I chose the stepper motor.
Complete 3D Design
After some weeks I finally had my design finished. You can see the results in the pictures above. I will now comment each of the pictures in order:
- Complete model - you can see all the parts, from the mounting plate for the motor to the claws that will be holding the cup. The cup you can see is that model is a 1:1 model of a real paper coffee cup that I designed to help me visualize all the design and it's functionality.
- SpurGear and Racks - to achieve a translation movement from a rotation one. All the equations taken into account to calculate the rack parameters can be consulted in the video linked in the introduction.
- Frontal plate - The purpose of this piece is to be able to guide the racks and the claws in a straight trajectory and provide support. You have probably noticed that the rail in the top is a lot longer that the lower one, this is because, as the right claw was holded by the bottom instead of by the top like the left one, when the cup was filled a lot of weight was resting on that one rail, causing it to deform a little bit. This is the reason why I made the top rail longer, so I was able to print with the right claw a piece that would fit there and release the stress on the lower rail.
- Join method for the rack and the claw - I wanted this gripper to be easily dissasembled so I didn't want to be forced to used glue to stick pieces together. This is the reason why I decided to design this tight fits in the racks that will fit perfectly and a M5 screw holding everything together.
- Claws - these are, in my opinion, the most efficient design taking into account I could not measure the force applied on the cup by the claws. So, in this design, the claws will fit perfectly and the cup will, efforlessly, rest on the claws. With this method no stress is induced in the cup.
- Backplate for the motor - With holes to screw the motor (4 M3 screws in the inside) and other screws that will serve the purpose of holding everything together with the help of the standoffs in next picture. This M5 screws fit in the frontal plate and, passing through the standoffs (in next picture) and then through this back plate make sure a solid design is achieved.
At the end of this post there will be a link with all the files for you to download if you want.
Arduino and Circuits
The circuits that this design involves are pretty simple:
- 12V Power supply for powering the motor
- 5V buck converter to step the voltage down from 12V to 5V at which the Arduino and the driver can operate.
- Arduino+Driver
In the first schematics from the photos you can see the Arduino operating with 5V from a usb cable, this is not the way I did it, the real circuit can be checked in the second photo. I could not get the models in a schematic designing web as they are quite uncommon. However, for those who want to build this, in the second picture you can see all the connections the driver needs. Apart from those connections you will need 4 pins ready in the arduino, in my case:
- Pin D5 and D6 - I used this as a software serial (UART) instead of the hardware one that is implemented in the arduino. I did this (and you will see in the code how I did it) so it was easier for me to keep the arduino connected to the computer at all times and not have the Tx and Rx pins interfering with my USB connection while compiling and sending the program. These pins are connected together by a 10k ohm resistor to allow for 1 cable communication.
- Pin D9 - This will be connected to the DIR pin from the TMC2208 and through there we will send the pulses for the driver to step on to the motor.
- Pin D11 - For connecting the button and registering the activation. This could be done also with hardware interrupts in the arduino if we had any other code running but, as this is not going to be a problem I did it just with a simple "if" statement.
3rd and 4th pictures are the final result of the circuit. you could also do it in a simple breadboard but I though like this it looked cooler and this allowed me to have it all in order and make sure it wouldn't suddenly disconnect for whatever reason.
The Arduino Library used and all the specifications for the driver can be found here. Also in the attachment you can see the code uploaded in the Arduino with comments. I used VisualStudio Code with the PlatformIO extension to program the arduino instead of the Arduino program, here you can learn how to do it and the advantages it has over using the standard program.
The exact name of the components used with links are:
Driver - TMC2208
Microcontroller - Arduino NANO
Buck Converter - MP1584
Downloads
Demo Show
Review and Critics
Now I'm going to talk about the overall project and how I think I could improve it.
First of all I would have liked to design it a little different, I wanted to add some hooks in the top. Those would have helped in the case the robot arm made some sudden movement downwards, they would secure the cup a bit more and wouldn't add any stress in it. The problem with this is that I only had access to my 3D printer for a limited amount of time, so any changes I wanted to implement after printing it wouldn't make it to the final design. Moreover, even though I think this design is pretty secure when it comes to holding the cup properly and not deforming it, maybe it's a little bit too bulky. I came to this conclusion since the overall time for printing it was around 48 hours and all the prints, including the ones I printed for prototyping, were about 1kg of PLA.
Other thing that I would have liked to implement is adding compatibility (if you can call it that way) for other sizes of cups, since this one, although it's made for a standard size available worldwide, it's too specific. My idea to solve this was to add some grooves in the inside part of the claws, so the different diameter brims that normal coffee paper cups have could fit there and still be compatible. This was one idea I thought for a long time but wasn't able to implement in a smart and effective way. More efficient and simple ways can be thought with flexible claws that adapt to the size of the cup, but I had no experience with that and, having started the project late, I wanted to build something I felt comfortable working and designing.
About the sustainability of this design, in my honest opinion, it could only be made more sustainable by using a different kind of FDM printer filament. This is because PLA consists of renewable raw materials and is biodegradable in industrial composting plants. However, due to the lack of infrastructure, it is difficult to compost PLA industrially or to recycle it.
A bill of materials can be found in the repository at the end on the post. Taking into account other various costs, the overall price for this product would be around 45€-50€.
About Me
As I said in the introduction of this post, my name is Sergio Luna, I'm 22 years old and currently finishing a degree in Electronics and Automation Engineering in the UniZar (Universidad de Zaragoza), in Spain, where I'm from.
This isn't in fact the first project I do but it is the first project I upload in this page. I have loved electronics for a very long time and it all started when I built a FPV racing drone when I was 17. It wasn't very complicated as all the parts are made so that people without any background in electronics or programming can build a drone but that's when I felt that I wanted to study something related to it. I started programming arduinos, ESP32's, and even STM32's which are nowadays used a lot by companies developing IoT products. However, although that's closely related to electronics, I also wanted to learn about circuits, transistors, power electronics... And that's what my degree taught me.
Although I'm 1 year behind in my degree ( as in Spain they are 4 years long and this is my 5th) I have already worked for 2 electronics companies:
- Kepar Electronics - https://kepar.es/
- Ebro-h - https://ebroh.es/
Kepar is a electronics R&D company located in my hometown Zaragoza. I was working there as part of the R&D team. They design mostly all the electronics for Balay, Bosch and many other companies although while I was there I was working in a project called HelpFlash ( https://help-flash.com ). I was the responsible of battery testing and pulse adjustment for a maximum visibillity.
Ebro-h, however, is a electric scooter company also based in my hometown, and I was the head of the Repair Service for all Spain. I was working there for 9 months, but quitted because I wanted to focus on my degree and finish it as soon as possible.
Apart from all this, I have worked on some projects of my own like some 3d printed speakers with passive and active crossover ( If you want to learn more), which were my first try designing in 3D with Fusion360. I finished the project and 3D printed everything but was having problems with the resonance of the box. My solution was to reinforce everything with glass fiber and epoxy resin, however, I came here to Brussels so I haven't finished it yet.
There's a lot more things I could say about myself but I think with this you already have some knowledge of who I am and what I love doing.
Although I joined this project late I knew I wanted to put a lot of effort into it because in Spain we don't have courses that are this practical and useful so I really wanted to put myself to the test and see what I was capable of doing. The part I have liked most is the electronics design and Microcontroller programming. I have to say, however, that I really enjoy designing in 3D but I haven't really learned in an organized way, I'm self-taught, so it's a little frustrating when I don't know how to do something or I make a mistake and I have to go back a lot of steps, making the last hours that I've been working useless. That's a problem of being self-taught, there may be a lot of mistakes that I do that could really be solved my being organized in Fusion360 with components and different timelines but I really mess that up sometimes.
Downloading All Files
Here is the repository where you can download all the files for the project.
Enjoy!