My goal in this project is to create a remotely controllable robot that is as close as possible to a Droideka from Star Wars. For those unaware, Droidekas are these kind of things:
This idea came after I discovered James Bruton's channel. If you don't know him, I suggest you go check out his YouTube Channel, it's fantastic! He has built a number of different robots, several versions of BB-8, etc... and his work has inspired me to make a larger project than what I was used to, and I picked a Droideka. I started the project around May 2018.
Disclaimer: This is a big and ambitious project for me, and it was also the occasion for me to learn Fusion360, so it is certainly not going to be perfect, but I will try my best to make it work. By the way, it is still a work in progress, updates are going to be made to this project as I go, assuming I achieve the milestones I set myself.
The Droideka has two "forms:" It is either rolling along in a tire shape or walking on its three legs, and it has arms with weapons on them as well as a blue force field. In order to actually make this project, I divided the problem into several sections :
- The first step would be to make the tire able to roll as well as stay stable when stopped.
- The second step would be to add 4 legs to the tire.
- The third step would be to add arms and the ability for the tire to retract, in order to give the robot the same aspect as in the movies.
It saddens me to say that, but the force field is outside the scope of this project :)
For this part, I was largely inspired by James Bruton's BB-8 version 3, but slimmer and without side panels. After a lot of designing in Fusion360, the assembly I made is similar to the one Bruton's made in his videos, with a carriage moving in the inside of the tire. The height I chose for the robot is around 50cm high. The carriage has two main functions : the first one is to balance the robot when it is stopped, and the second one is to make it go forward. The future legs and arms of the robot will be also attached to this carriage, but this will be studied later. The following pictures shows what it looks like in Fusion360, as well as in real life.
Balance: In order to do this, a motor moves a counterweight perpendicularly to the tire. A PID loop processing angles data received from an IMU controls the motor and makes the whole assembly stable. After a lot of tests and iterations, I managed to successfully balance the robot.
At that time the balancing was not really optimized. As a matter of fact, I had quite a lot of things to integrate in the main body (electronics mostly), so the PID loop would need later tuning anyway. Besides, rolling part of the robot was not working that well, so I wanted to finish that part before fine tuning the PID loop.
Rolling: A second motor is placed on the carriage so that it can move the entire carriage up or down the tire. Since the motor I chose to accomplish this task is quite heavy, my goal was to put it in the middle of the carriage in order to balance the whole thing, and to make the wheel turn with some sort of clever gear system; however I could not do this, so it is a bit offset from the center. I think that eventually I will have to compensate for this added weight, but at the moment I will try it this way.
And that is where I am to this day. Both functions work independently, and I now need to make them work together. To do that I need to tune the PID loop again to consider the weight I added at various places since the last time I balanced it, and hope that it will be sufficient to keep the Droideka stable while moving forward.
Before starting the project, I did some preliminary work on 4-legged spider robots, and tried to make a small one with a few 9g servos. Thanks to the plethora of people making these kind of projects online, I had no problem finding 3D printable files and code, and I could build one and make it move. It only had 2 servos per legs in order to keep the cost low, but it gave me a general idea on how it's done.
What I did not do with this spider robot however, was to build an inverse kinematic model of the legs, and that is what I intend to do for the Droideka, so that I will be able to precisely control its movements.
Coming a bit later. Honestly, if I ever get to this point, I will already be very satisfied. ;)
Alright, thank you for reading, and don't forget to check back for updates on this project!