Peeqo - the GIF Bot
Peeqo is a personal desktop robotic assistant who expresses himself through GIFs. Think of him as the love child of Amazon Echo and a Disney character. He has a conversational UI, so he responds to voice commands but answers only through GIFs.
This was quite a complex build as it involved several different skill sets and disciplines. I've tried breaking it down and have provided the files, code and purchase links to the parts wherever needed. Also I'm open sourcing this whole thing, so if you would like to connect, ask questions, help with development or contribute in any way head over to http://peeqo.com/
Initial Paper Sketches
I began by doing several rough sketches on paper. I always like starting on paper to get the ideas flowing. The only real constraint I had at this stage was the size of the bot. Since he would be sitting on my desk he needed to be fairly compact and small.
Initial 3D Modeled designs
After arriving at a sketch I liked, I went into Autodesk Fusion 360 and modeled it out. You can see an evolution of some of the sketches but also an evolution of my skills as this was the first time I was ever using a 3D CAD program. Though I liked the form factor of some, I realized I needed to consider the movement I wanted my bot to have and this ofcourse was a major design constraint as well.
Tennis Ball Prototype to Test Desired Movement
To demo the movement I wanted, I cut a tennis ball at an angle, and using some blue foam, a wooden rod and a drill bit modeled this prototype. These were the movements I wanted as they would be able to convey all kinds of expressions (happy, sad, curious, excited etc) basically akin to the human neck. While creating 4 degrees of movement was achievable, figuring out a mechanism to create 6 degrees of movement was quite hard.
Modelling Various Mechanisms
I tried to sketch, model and visualize different mechanisms that would give me the 6 degrees of movement that I wanted. The one above is just one of several. All had some issues, either in not leaving enough space for the other components to fit inside the bot or requiring custom gears and parts to be designed.
Eventually I came across the Stewart Platform https://en.wikipedia.org/wiki/Stewart_platform and realized I could make it work for me.
The stewart platform mechanism then began to govern my final design. I decided to place the head on the top of the platform and use the base of the platform to lay out some of the components and the 6 servos. Since the stewart platform has empty space right down its central axis that would work as the spine of my robot allowing me to run wires from the base to the head. It was the perfect combo of movement with minimal real estate usage. The stewart platform eventually dictated Peeqo's cylindrical shape. Obviously I couldn't have a rigid body or an exposed exoskeleton, so I created a flexible covering that could bend with the movements.
Final Design ready for printing
This was the final design. It was just a little over 8 inches in height which I was quite pleased with. I spent most time ensuring everything was correct so that there would be no need to reprint the parts. Though I did model the rods and joints of the stewart platform in CAD, I couldn't get all 6 joints to work so I just hoped my measurements were correct and there was some bug in the program. I was correct!
This is the final design (.IGS file) - https://github.com/shekit/peeqo-robot/tree/master/3d_design
You can view the file by following this link: http://a360.co/2gFHXN9 If you have Autodesk Fusion 360 then you can also download and manipulate it
3D printing on Projet 7000
I was working with very tight tolerances so I got the parts printed using a ultra high definition Projet 7000 printer, but I think I could also manage this now on an Ultimaker 2+ with a fine setting.
3D printed parts fresh out of the printer
You can find all the STL files that you need to print these parts on my github. If...Read more »