For week 1 we had to come up with an idea for a final project. I'm interested in technologies to help other people understand technology, so I decided to build a spherical robotic companion bot. The idea came from BB-8 robot in Star Wars.
Initial Concept Drawing
The initial concept idea was to build a robot whose center would contain two wheels, and all of the cirtuitry and the machinery. On the side, we would have domes to give the robot the appearance of a sphere. This robot would use its two wheels in a tank configuration to move around.
Improved Concept Drawing
I developed further the initial idea, and tried to put the wheels closer together to give it the appearance of a sphere. However, I gave some thoughts to the mechanics of the machine and realized that if it tipped, it could not be able to stand up. It would also be hard to ensure that the motors and the circuitry stayed in the same place and did not rotate with the motor accidentally.
I thought of the pitfalls from the original design and looked for inspiration in a magical place: Google. In the How Does BB8 Work site, I found an interesting mechanism for making a sphere moving robot (in particular mechanism 2 in the site). Basing myself on that mechanism, I decided to add to the design an LED array that could be used for projecting emotions: (happyness through a smiley face, anger with an angry face and red leds, etc.). Together, the mechanism and the LED board should allow me to produce a likeable helper.
Basing myself on the concept drawings, I decided to model the companion bot using Antimony. I chose Antimony because it seemed simple to use, and you could create complex shapes by just doing simple operations (union, subtraction, etc.). Using Antimony turned out to be very productive. I was able to build the concept in a day and export it as an STL. However, the program has a bug that creates a rendering problem and therefore it becomes almost impossible to continue modeling.
Screenshot of Antimony model and graphical bug
Having an STL file, I was able to export the 3D model into Blender. I wanted to prettify the model, and after seeing the capabilities of the Blender software in the recitation, I decided that I wanted to use that for realistic rendering.
Blender Rendering of the outside of the companion bot
I spent a couple of hours simply listening to tutorials on how to navigate Blender. Once I had a very good idea of how the workflow went, I was able to import the STL files into the program and I moved them around until I got the body of the system (wooden structure that will contain the circuitry) inside the frosted sphere. I then added some lights to simulate the LEDs when they were turned on. I was incredibly satisfied with the renderings, and they were taxing on my desktop machine with a 980ti card.
Blender Rendering of the inside of the companion bot
Here are some of the possible features that the robot will have. These are by far not the final feature set, and may change.
I have started to search for components, and have found omni-wheels and motors. I think I may 3D Print part of the structure
or at least the LED array.
Motors Omni Wheels
I will try to start the circuit design for the LED array to convey emotions.
I bought the aforementioned components and I have designed an initial version of the LED array. I still need to figure out how to connect the microcontroller to be able to control the entire schematics. Next week I'll modify the design of the body to be able to incorporate the motor and the wheels.
LED Board schematic
I updated my desing to incorporate the ATTiny44 instead of a multiplexer and decided to use the RGB leds that are in the Electronics lab. The wheels are delayed in shipping and I am going to start the remodeling of the body for the wheels and the location/sizing of the LED board.
Updated LED Board schematic
Parts have started coming in. I have 2/4 motors and wheels. For a power supply I will reuse a battery that I had bought for a drone. I have to order in the motor shaft components that will let me connect the motor to the omni-wheels. I have not been able to put in much work, but the circuit and 3D printed chasis structure is coming up next. I want to mold in the sphere ASAP.
More parts coming in, the motors and wheels are now complete, I need the shaft to be able to join them. I need to put in some work on everything.
Motor controller done, need to incorporate cables to control it from an external source. Redesigning the LED board for 4th time. Will soon start the chasis.
I have the electronics design done, I milled all the boards, I stuffed some of them, but some of these got damaged. I need to re mill another motor controller board. I started fabricating the sphere. Vacuu-forming is the way to go. A colleague generously gave me some larger spheres that I may use if the fabricating does not work. I am currently designing the chasis and should have it by the end of the day to be able to send it to print. I just need to finish the spheres and the stuffing and test everything!
Sphere was fabricated! I used a foam hemisphere and tried to vacuu-form it. It turned out that the foam couldn't
handle the heat and melted. To solve this, I had bought another foam hemisphere and covered it with
kraft paper and aluminum foil. When I vacuu-formed this, it worked out great except for some wrinkles. I thought this would
be bad, but it gives it a nice artistic touch.
Test LED array
Test motor controller
All the milled boards and pieces
Milled and partially stuffed LED Board
Milled and partially stuffed motor controller boards
I tested a 3D print chasis for holding a wheel, and a motor, and it turned out OK. The thickness on the block was too big, and now I resized it and I am currently working on the entire chasis for it.
Test part 3D printing
The final crunch came! I was able to successfully design and print out a chasis. It took many attempts because the 3D printer was not very efficient when printing large (7" or more) things. I'll detail the building of the chassis, the assembly of the electronics and more below so as to not duplicate the data.
The final version of the sphere bot is simply a robot that spins on its own axis inside a sphere using 2 motors. The original idea was to have a full fledged BB-8 robot that I could control and move around. Slowly, problems started arising and I had to downscale the project to simply turn on its axis instead of being able to move forward.
The main components for the project were a sphere and the motor system. I did some looking around to find a sphere. Surprisingly, I checked to see if a sphere had been done beforehand, but the closest I found were using composites which, although turn out sturdy in the end, they are not transparent.
The answer for this question is simple! I designed just about everything except the wheels, the bearings for the wheels, the motors, the raspberry pi, and the battery. More structuredly yet broadly, what I designed was this:
Chasis DesignI also measured the holes in the motors to make sure that they fit when I would combine them. It turned out that I had mismeasured the motor's mounting holes and I had to expand them with a hot iron later. Once I had the design done, I went to 3D print the parts. It turned out to be a complex print, so I broke it into pieces. The 2 pieces were the legs and the pyramid like body. Here is the design broken into pieces. The prints took in total a day, and then I went and hot glued them together. I had trouble getting the pyramid to work because the Ultimaker kept messing up when laying the foundation to make it easy to unstick. I found out that it was because PLA shrinks after it cools down and contracts, therefore messing up that the printer was putting. I after I figured this out, I removed the foundation that the ultimaker layed by default and put it to print and got the print successfully. As I said before, I realized that the holes for the screws were misaligned so I had to expand them with a hot iron.
AssembledAfter I had assembled the pieces I also noted that the wheel assembly was too large, and had to break off one of the 2 wooden blocks for each leg. The chassis turned out to be sturdy, but I had to expand it with some blocks of wood to fit the battery.
Regulator BoardThe regulator design took a bit, because I was shorting the 12V regulator with the 3.3V regulator that I used. Eventually, I decided to drive the 3.3V regulator with the 12V regulator. I used a 3.3V regulator becuase the raspberry pi used a 3.3V logic and I would have destroyed it if I had suppluied the boards with 5V for their logic.
Failed regulator for the raspberry pi DesignThis was a regulator that I ended up not using because the Raspberry Pi draws more than 1A and this regulator was not able to supply more than 1 amp. The connection worked fine though, just that there was not enough to supply. I ended up using a phone battery instead.
Unused LED board DesignThis was a board I didn't have time to test out.
Motor ControllerThis was the cursed motorcontroller that I had problems with. WHen placing the pins, I accidentally soldered them to places that there were shorts for ground. Other than this, the board worked fine when not shorted. Eventually I ended up ripping out by mistake most of the input pins in 3 of the boards and had to carefully glue them back together.
Boards Mounted into Chasis and connectedRIght at the end, I found out that my motors were too weak to drive the machine, so I decided to downscale the project even more to just make it rotate within the sphere. Here is a link to all of the eagle files
The main question that was answered was: Is it possible to make a BB-8?. The answer is yes. It is possible to make a BB-8, but you need to make a stronger sphere and a more robust control system to steady the robot. It is also expensive because of the batteries, motors, and shafts. Another question that was answered was whether a hollow transparent sphere can be made. The answer is yes and it can be made in pieces. With enough material, it could possibly be done as an entire sphere by putting the glued hemispheres and later simply cutting it in 2.
The project was evaluated by whether or not the sphere rolled or not. Evidently, the system weighed too much and didn't have a control system to stabilize it. The result was that it rolled on its own axis, but it would not roll forward and could possibly tip over within the sphere. The project was half fail, half success. The robot was able to roll inside the sphere, but it was not able to move forward or stay in the same place. It is evident now that a control system was needed.
The implications are that sphere robots can be built mostly using a FabLab inventory with some additional add ons. People can now build on the project and perfect it until it is in working order.
Here are the files that I used for the renderings and models.