Apart from computers, sensors, and other electronics that made the heart of Needybot, we used 108 connectors, 263 aluminum tubes, 10 aluminum rods, 3 MDF shelves, and a headphone-like handle to form his body.
Digital Fabrication of the External Shell
The original Turtlebot 2 doesn’t look like a robot or any human character, it looks like a bunch of electronic gadgets thrown on a Roomba vacuum. We wanted to create some sort of clothing for the computers and sensors on top of the robot base. The clothing needed to be strong enough to protect the electronics, but also lightweight as we don’t want to add on too much burden to the robot base.
A kite frame that consists of only 3D-printed connectors and wooden rods caught our eyes. Its artist wrote a software toolkit called Polygon Construction Kit to convert 3D polygon models into physical objects. We liked the idea immediately and wanted to try it out for Needybot—the only problem was that the artist didn’t publish the source code. But hey, we are a group of engineers and designers, so we thought, “why can’t we just write our own software, and better yet, open source it?”
Turns out, we could.
First, we used OpenMesh to find all neighbors of all vertices of the polygon model, as well as the length of each edge. Second, we wrote an OpenSCAD script to generate generic connectors based on coordinates of the vertex and its neighbors, then used SolidPython to run that OpenSCAD script to generate 3D connector STL models for each vertex. Third, we used a Ultimaker 2 3D printer and Cura software to print the connector models in white PLA. Lastly, we cut aluminum tubes to length as edges.
The connector piece at each vertex consists of a center-located sphere and multiple hollow cylinder tubes that connect to the sphere. We wanted the length of each cylinder tube to be identical, so we first calculated the vectors from the vertex to all its neighboring vertices, and the drew hollow cylinders at the sphere center. After experimenting with our Ultimaker 2, we settled on an inner-diameter of 5mm for the connectors, using 3/16” (4.7625mm) aluminum tubes. We used hollow aluminum tubes instead of aluminum rods to reduce the weight significantly.
Design of the Internal Structure
We also needed to build Needybot’s internal structure to support all the electronics, and this structure needed to fulfill these requirements:
- Lightweight (so that people can carry Needybot)
- Strong and rigid to distribute the entire weight through the headphone handle
- Supports the iPad and the external shell
- Accommodates the laptop vertically (which was too wide to fit horizontally on the base)
- Easy to fabricate and easy to adjust after fabrication.
Originally we considered a central pillar, but with the addition of a wider laptop, a three-tier shelf system proved to fulfill all above requirements. The shelf system provided a way to center the laptop through slots in the shelves, and allowed even weight distribution above the base driving wheels. The three shelves made convenient places to put additional components such as the USB hub and Kinect camera.
We connected the bottom shelf with Needybot’s base through 10 threaded holes. The bottom shelf then provided a base with potential for unlimited threaded holes to support everything above it.
There are 108 connectors and 263 aluminum tubes in total, and they all look almost the same. Putting them together is a difficult task without a manual. Luckily, in 3D modeling software such as Autodesk Maya, if we select an individual vertex or edge, the component editor will show the index of the vertex or edge, this way we can easily see which edges are connected to which vertex. With this method, Maya became our assembly instruction manual and we put the connectors and aluminum tubes together accordingly.
Finally, we assembled the structure in two parts and split the assembly with the bottom and top halves. After each half was assembled, we attached the two halves together along the center.