Captain S.L.O.W.
S.L.O.W. - Six Legged Obedient Walker
1. Introduction
Hi! This will be my entry for the Month of Robots competition. In the blog I'll be covering everything about a small robot I made that was inspired by a robot I saw many years ago. I vaguely remember seeing on TV a robot with 6 half circle legs many years ago, and how it was a concept for a new mode of transport over every kind of terrain. The idea of that kind of propulsion for a vehicle hasn't worked out, but when this competition came up, while I was doing some research I found the origin for this type of the robot. The name of the original robot is Rhex. Rhex is a robot developed by Boston Dynamics around 10 years ago or so. Here is the link to the original https://www.bostondynamics.com/rhex . While the robot itself is incredible at tackling all kinds of terrain the thing that drawn me to it was the way it moves, I'll list some more options I considered while doing my research.
Interesting Robot Propulsions
Most of the robots nowadays are either stationary like all of robot arms working in all kinds of factories or use wheels for propulsion since this is the easiest and most robust way, or we have flying robots shaped like all kinds of drones and so on. Here is a list of a couple of robot concept I found interesting while looking online for inspiration.
1. Velox
The first on my list is the Velox amphibious robot ( https://www.pliantenergy.com/home-1 ). For propulsion, Velox uses to giant fins (if I can call them that) on the side of the body. The fins are controlled in a way that the robot can move over any terrain imaginable from all kinds of rough surfaces to swimming and diving. I love how this concept looks and moves, but it would have required too much time and work to have absolutely anything complete for this Project14.
[https://www.youtube.com/watch?v=CkZszsl2aIU ]
2. Mochibot, the 32-Legged Spherical Robot
This didn't seem as capable as let's say the Velox, but an extremely interesting concept nevertheless, here is a link to video of the robot moving around( https://www.youtube.com/watch?v=WW1p_JwvAIc ). The way it moves is by extending certain legs and pushing it self as it goes.
3. Spy in the wild robots
There are 4 different but equally awesome robots here. These robots were used in BBC-s Spy in the wild program to spy on and get close to polar bears. There 4 different robots are, the Blizzard Cam, a robot on skis with 2 BLDC motors and propellers on the back that it uses for propulsion, the Drift Cam, while not really a robot I thought it would also deserve a mention, a camera that was disguised and could sit in standby waiting for heat to trigger it at -30 for a week. Then we have the Iceberg Cam, this one was disguised as a chunk of ice, and fast enough to follow the bears through the water and the last one being the Snowball Cam, the Blizzard Cam would usually carry the Snowball Cam around, and the Snowball Cam would be used to get as close as personal to the bears, because of its shape and structure the Snowball Cam was extremely tough. Here is a link with a little more detail on these robots ( Polar Bear – Spy on the Ice | John Downer Productions Ltd. ) as well as a link to video of the robots in action ( https://www.youtube.com/watch?v=JhfASxjFbSo ). To work on robots like these really looks like a dream!
[Polar Bear – Spy on the Ice | John Downer Productions Ltd. ]
4. Rhex
This one I wanted to find, and finally managed to, Rhex ( https://www.bostondynamics.com/rhex ). Rhex has 6 legs, each shaped like half a ring. It moves its legs in sets of 3, meaning it always has 3 legs in contact with the ground keeping it stable. The Rhex can do some really amazing things like jump, climb stairs and so on because of the incredibly powerful motors it uses. Since it only has 6 legs compared to the number of actuators the Velox used, I thought I would give it a go at making my own robot that has this kind of propulsion. So let's go to the way I plan on making this robot.
[https://www.bostondynamics.com/rhex ]
2. Plan
Now it's time to outline my plan. The first 2 questions that come to mind are what can be used a brain for this project, and what kind of motors can be used to drive this robot. For the brain of the project I decided to go with the Arduino Mega 2560, the reason for this is the sheer number of IO pins it has as well as 6 external interrupts, which I plan to utilize if everything works out hopefully. As for the motors, I had pretty much 2 choices in order to make this project doable in a short amount of time, and those were continuous servos and stepper motors. I wanted to keep the robot as small as possible to make it easier to build, so for the stepper motor I went with the standard stepper motor that can be found in most Arduino starter kits, I haven't used stepper motors before so I thought I would give it a go. Unfortunately, the motor was painfully slow for what I needed it to do, so I had to scrap that idea. I looked around and managed to find pretty cheap mini continuous servos, so I went with those.
All that's needed now are the legs and a chassis to hold everything together. For the chassis I decided to go for the standard plywood used in shop class, since it's really light, strong enough for what I need it and really easy to work with. The easiest thing to do would be to glue the motors down to plywood but I didn't like the idea. Instead I found some old aluminium L profiles which I plan on making into the brackets for the motors, which should also give a little bit more of structural rigidity to the robot. All that's left now or the legs. There are a few things to consider here, first of all they don't really need to be half circles like with Rhex, I decided to go with full circle legs, since that would give me the option to move both forwards and backwards in the same way and the legs themselves are stronger that way. Another thing to consider here is, since I will be using servo motors with plastic gears, it would be a good idea to have some flexibility in the legs to soften any blows before they get to the plastic teeth. In the end I with using rings cut off of a plastic pipe, with how I imagined the dimensions of this robot, a pipe with a diameter of 80mm was exactly what I was looking for.
3. First prototype
Time to start with the build process. My goal for the first prototype is real simple, get it to move, it doesn't have to be polished smooth walking, or anything like that, I just want to get it to walk. But to get to the point of trying to make it walk I have to make it first, so here comes the build process of the whole robot, I will cover all of the things I've used as well as why I've certain thing a certain way.
Build
I'll split the build into 3 segments, the legs, motor brackets and the chassis. One thing I want to point out before I start this part is that I tried not using glue at all and connect everything using machine screws, I like using screws more since it gives more structural integrity as well as makes possible to take apart the robot itself.
Legs
Let's begin with the legs of the robot. My design will be based on the Rhex robot itself, but with a few modifications to make life a little bit easier for myself. Let's begin with the materials I'll be using. For the main structure I went with a thin wall plastic pipe with a diameter of 80mm, which I then cut into rings which are 10mm in width. The first design change from Rhex comes into play here. Instead of cutting the rings roughly in half to get the shape like on the Rhex, I left them as a whole ring. The only benefit I would get from cutting the pipe that way is that the robot could lay flat, while mine can't, but I get much more structural rigidity out of full rings. I had a test piece which was cut in half, and bending it a few times with not a lot of force, I started to notice plastic deformations on it, so in the end I decided to go with the full rings. As I've mentioned previously, I wanted everything to be attached with screws, and without using any glue, so all that was needed for the legs was something to connect the motor mount and the plastic ring. By sheer luck, a handle of an old broom that was laying around, had the exact diameter as the motor mount, so I once again cut out a few pieces about 15mm in width. And with that, we have all of the materials we need for the legs except the screws and the mount which we should already get with the motor itself. Here is how the build process went.
{gallery} Leg Build |
---|
Materials: All of the materials that will be needed for all 6 legs |
Broom Handle: Because I wanted to attach the plastic rings on the wooden cylinder with a nut and washer, I needed to cut one side flat, so everything can sit nicely |
Motor Mounts: The only modification the motor mounts needed were 2 holes for the screws |
Wooden Block: I had to drill out a few holes here, one larger one through the center so I can get attach the mount to the motor itself, 2 holes right next to that one for attaching the motor mount to the wooden block, and one more big hole through the flat spot that I cut off, for attaching the plastic ring |
Assembly 1: The motor mount first attaches to the wooden block |
Leg: This step is in the wrong order, but I wanted to see how the leg would like off the motor |
Assembly 2: The next step is attaching the wooden block with the mount to the motor, by screwing it on through the hole in the center of the wooden block |
Assembly 3: And the last step is attaching the plastic ring |
Assembly 4: Finished Leg |
While the process does look a bit tedious it wasn't actually that bad. Everything was cut by hand, so the cutting of the plastic pipe took a little bit of time to get good as well as drilling all of the holes and making sure that they all line up as they should. I had few alignment problems, but nothing major and in the end I had six legs which all looked pretty great for me. Now we need something to which we can attach the motors.
Motor Brackets
For mounting the motors, the easiest solution would be to just use hot glue on them and if I'm honest, it would probably work just fine, but I didn't like the idea itself. I wanted to make some kind of brackets which would house the motors while being light and give a bit of structural rigidity to the whole robot. I wanted to go with some kind of aluminium profiles, because they ticked all of the boxes. I went around the yard and garage, looking for any scrap aluminium pieces left from whatever, since I knew I could modify them to fit my needs. In the end I stumbled upon these:
These are aluminium profiled which original use was for creating strong edges for the polystyrene insulation of the house. I found a couple of pieces just laying around and they had just about the dimensions I needed for the motors. Now before I started cutting and filing, I had to make a decision on the design. There were 2 ways I considered for mounting the motors. The first one was all 3 motors on side to be in line with each other, meaning that from front to back, the robot would have to be at lest 4 diameters of pipe, to make sure that the legs could never bump into each other. The other solution was to copy how it was done on Rhex and other similar robots, by taking the second and fifth leg (middle one on each side) and pushing them more to the side. This way from front to back, the robot would only need to be 2 diameters and the length of a servo roughly, which is much better than the 4 diameters of the first option. The first option was a little bit easier to do, but I went with the second one, to keep the design a bit better, here is how the build went:
{gallery} Brackets Assembly |
---|
Small Mount 1: I choose a width which can house the servo motor, besides that I drilled 4 holes for attaching to the main plate. |
Small Mount 2: I cut from the middle just enough for the motor to squeeze in and drilled the holes for attaching the motor to the bracket. While the sides where the motor attaches look super thin, the aluminium wall is really thick and strong there, so there is no flex at all. |
Small Mount 3: Motor attached to the bracket. |
Small Mount 4: The holes are wide apart enough so that the motor doesn't interfere with the screw holes that I've drilled earlier. |
Small Mount 5: And here are both of the small brackets finished, they turned out great! |
Dual Mount 1: The process was exactly the same for the bigger mounts. I decided to leave in the center section for structural rigidity, and the length of these mount is 200mm. From the end motor mounts to furthest point on the leg we have less than 60mm and the small mount is a little bit less than 40mm, so I went with 200mm to have good clearence and have enough wall at the ends for attaching the motors. |
Dual Mount 2: The motors here also fit perfectly, I positioned them this way so that the axles are at the far away corners. |
Completed Mounts 1: And here all of the completed mounts with the motors mounted. |
Completed Mounts 2: Here you can see the layout I imagined for this robot with the mounts. The small mounts will be right against the big mount to keep everything parallel. |
And with that all of the motor brackets are complete. They turned out exactly as I planned out, which is always an awesome feeling. Of course, it's not perfect perfect, and some motors might be rotated a bit, or one is a millimeter or 2 higher than the the other mounted motors, but I can adjust for all of that by adding washers to the legs, but honestly, I think there won't be any need for that. All that's left is to connect all of this together.
Chassis
To connect all of this together I went with standard 3mm thick plywood. I can get this stuff at any school supply store, it's inexpensive, extremely easy to work with and gets the job done perfectly. Considering that this won't be that big of a robot, a piece of plywood itself would probably be rigid enough without any additions, but it will be further reinforced with the aluminium brackets.
I left it wide around 70mm with the middle motors extruding more by the length of their bracket. With these dimensions it kinda seemed proportional to me, so I went with them. I cut out the piece, positioned the brackets and drilled out all of the holes needed for attaching all of the brackets. After that was done all that's left is to assemble everything, and a big chunk of hardware will be complete for this project.
Assembly
To complete the assembly we need to attach all 6 legs, and attach the Arduino on the top. There will be more electronics further down the line, but I will mount that as we go, this set up will let us start with some testing of this robot. Arduino Mega came with its own holder which I also attached with screws to the main plate and in the end, I ended up with something I am really happy with!
Electronics
There are 2 main things to sort out here, connecting everything together and the power supply. I wanted to make a shield for the Arduino Mega, but when I tried putting a perfboard over all of the pins, I found out that the pins on the sides of the board don't line up with one another, so I went with a proto-shield I had for UNO, which will actually be covering a lot of the pins I plan on using anyway and if I need any other pins, I will wire cables from it to the pins.
Shield
{gallery} Shield |
---|
Shield 1: This is the base shield before I started working on it |
Shield 2: I cut off the trace that went to the 5V rail on the board, because I want to use separate power supplies, the grounds from the power supply and the Arduino should be the same |
Shield 3: Servo Connection Pins |
Shield 4: I added screw terminals for the power supply as well as a switch, which turned out to be broken, so I had to wire another one later on |
Shield 5: The completed shield on the Arduino Mega |
The shield itself already has some prebuilt rails like the 5V and GND rail, which is a great thing, as it meant I didn't have to do a lot of soldering at all. This will for sure make it much cleaner and down the line if I want to upgrade with an Arduino Mega compatible shield with sensor inputs and so on, it will be a matter of replacing this shield. Now we get to the last part, which is the power supply.
Power Supply
I tested to see how much current 6 of this motor could draw, by hooking it up to a lab bench power supply and the figure was somewhere around 1A, which isn't a lot. I decided to go with cells from a laptop battery, I tried getting a hold off a couple of cell holders, but they were out of stock, and the deadline was close, so I decided to make my own dual battery holder. As the main body of the holder I will be using a standard Raspberry Pi case, as the cells with nicely inside with space left for additional electronics.
{gallery} Battery Pack |
---|
Battery Pack 1: This is the case I went with for the battery pack |
Battery Pack 2: This is the additional electronics I needed, a battery charger from a power bank, a boost converter to step up the voltage to 5.5V and a couple of spring connectors which I got from an old battery holder |
Battery Pack 3: This is where I had to go with glue to hold everything together |
Batter Pack 4: The springs hold the battery really nicely which are connected in parallel |
Battery Pack 5: Finished Battery Pack |
Battery Pack 6: Since the cells are relatively heavy compared to the other stuff I used for this robot, I made sure to place the pack at the center of the robot, I tied it down with zip ties on the underside of the chassis, right underneath the Arduino |
Finishing Touches
With the battery pack completed, the hardware for the robot is almost complete, all that's left now is to tidy up the wiring a bit. For that I used a couple of zip ties, to make sure the wires don't go into the motors and cause problems there, as I've mentioned before, the switch which I mounted on the shield was broken (really high resistance when on for some reason, and dropped the voltage a lot because of that), so I had to mount another small switch at the front, here it how it looks now.
I tried testing him out now, and all of the motors span as they should, but I noticed a problem with legs slipping a lot across the wooden table since they are in out of plastic in the end. To fix this issue I found an old bicycle tire and some double sided sticky tape and cut out a few strips. I stuck them on the legs and it made a huge difference!
4. First Test
Testing the power of the motors, as you can see they pack some serious power even though they are so small.
These are the tests I managed to film for now, as you can notice by the difference from first to last video, the batteries look like they are flat, while in fact there is a different much more serious problem at hand. Even though the DC-DC converter I used says it's rated for 2A, it obviously didn't handle the load very well at all, here is the temperature of the converter without any of the motors or anything else running off of it.
The converter is definitely fried and I can't do anything about before the end of the deadline. So for now I will unfortunately have to leave it here, but will follow up with another blog, going over the different walking modes and algortihms used for controlling a robot like this.
5. Further Plans
Further plans include using a stronger power supply for sure, as well as adding sensor for each of the legs. My idea was to attach magnets to every leg, and position a few hall effect sensors on the body of the robot to track and synchronize the legs a bit better. Another thing that can be done is track the amount of current each of the motor draws, since that is great indicator when the leg is pushing against something/encountered an obstacle. These in combination with a bit of coding should work great with this robot.
6. Summary
This was a really fun project, unfortunately didn't have enough time to test it out, but I like the way it turned out in the end. The converter was an unexpected last day fault, but things like that happen. As I've already mentioned, I will be adding sensors to more accurately control the position of the legs. I won't be taking apart Captain SLOW, I will use him as a test bench for further testing. Hope you enjoyed the blog, thanks for reading!
Milos
Top Comments