Building a Big Giant Robot (BGR)

Hey guys,
This is a call out to all you great programmers out there that want a challenge! Here is the gist of my project:

For an upcoming family reunion I wanted to build a quadruped robot. similar to the Kame robot on thingiverse…With one minor difference. I wanted to make it big enough for me to ride it, and controlled with a simple 4 direction joystick.

Attached is a picture of what I have built so far. Yes, it is made mostly from PVC pipe.

My background is mechanical engineering and materials science, so building this was in my area. However, our reunion is coming up at the end of June. I’m an amateur programmer at best.

The problem is, I don’t think I can finish programming this in the next 6 weeks. I am keeping it simple, I just want it to take one step at a time, called a creep gait. All the motors will be going at the same speed. The sequence will be controlled by the limit switches. I have relays for the high current.

If there is time, I want to add a switch that switches from a creep gait to a two foot walking gait.

I also want it to be able to walk in all 4 directions. Forward, Backward, Left, and Right. No diagnol directions.

Anyway, who’s up for a challenge?

Here is a parts list of what I’m using.
Motors: Cordless drills x 8, 2 per leg. One raises the foot. One moves the hip forward and back.

Mechanical Limit switches - 2 per motor. They reverse direction of the motor when bumped.

Encoder wheels - 1 per hip. Not using yet. May need them to control moving all legs at once.

Relay Blocks - 2 relay strips with 8 relays each. I’m using them to give me forward and reverse.

Power source - each drill comes with a battery. So, 8 nicad batteries.

Board - Arduino Mega! Lots of pins

Controls - Joystick, here is the link

I haven’t written any code yet. I have been too busy building it and still need to assemble 3 other legs.

When it’s done, I will post thanks to all who helped and all files online on thingiverse so everyone can build it!

What do you guys think? Can you help make this awesome family reunion project happen?

Any help at all is greatly appreciated! You guys are awesome, thanks!

Are you cut and pasting from somewhere without reading what you've written?

This is my code so far. It's basic, because I don't have the time to learn about or correctly setup an array. However, Id love to do something using an array if it can be done by then.
I haven't written any code yet.

Ambitious project. Extremely ambitious timescale.


No, I just read it too fast. Thanks for pointing it out though. I will correct it.

Keep us updated while your work progresses. We'll happily answer questions.

Yes, the timescale is ambitious. I started it months ago. However, I did not correctly take into account having 2 kiddos. That threw off my estimate hehe. I should have added another year.

Thanks Johan, I will. The biggest challenge now is the walking gait sequence. I'm having trouble figuring that one out.

I see a seat, a frame and a motor.
Can you use pencil and paper to draw out how you see the rest of the machine working?

I do not want to be a Debby Downer, so I will instead talk about some of the challenges you will have.

I am not sure that drill motors are going to give you enough power to keep you off the ground.
How much do you weigh?
How much will all of the construction, motors, batteries weigh?
Without a detailed layout of your legs, you cannot begin to guess what power requirements your motors will need to fulfill.

I am not sure that your construction material will be strong enough. Again, without a detailed leg arrangement, you are not ready to guess.

Relays and limit switches to control the motors? I cannot see how that will allow you gait control.
How are you converting the drill motor’s rotation to usable leg movement?

I am sorry, I failed. I am being a Debby Downer.

But let me try to provide a more practical approach. Do not make a human carrying quadruped. Instead, make a small quadruped. Make one that uses servos for joint movement. Learn a bit about mechanical construction. Learn a lot about programming, inverse kinematics and quad gaits.

AFTER you have been successful there, make a bigger one that can carry some amount of payload. 10 pounds or so. Learn about using more powerful motors and the limits placed on movement by the length of the legs you are trying to lift with.

Then, again after success there, scale up.

Thanks for the feedback Vinceherman. Does anyone else have any suggestions that might help in programming? Thanks.

Thanks for the feedback Vinceherman. Does anyone else have any suggestions that might help in programming? Thanks.

Yes. Get the mechanical and electrical together for one leg connected to a solid frame for the body. Then the programming to make that leg function can be designed.


Agreed, get one leg to work first (they all have to move in the same way anyway).

Relays would not be my choice for control but as all is quite slow they probably will do. You're going to need your encoders to know how much your legs really move, the limit switches to find a "home" position from where you can use your encoders to get the leg into position (starting with straight, which will be roughly halfway the rotation).

The more I think of the relays the worse they seem. You need four relays per leg (H-bridge configuration) as you need to move the motors both ways. You can only switch a motor on and off, there is no speed control, and with the weight of your big legs you will have a problem of overshoot.

Another problem, come to think of it, is that your motors will NOT hold position at all. Servos and steppers do hold position. So the moment you switch off the motor as motion is complete, your robot will drop down to the floor again. So... replace your drill motors with servos. That also allows you to get rid of the relays, and simplify overall control big time, including the programming. You can control the speed of servos, you know always at what position they are, and they will hold position for you.

Now the batteries. Get more of them. The problem of servos under load is that they use quite some power to hold their position, so you need to provide a lot of power constantly.


  • get servos (do calculate how much torque the joints will need, you probably need servos that are rated at least twice that to have a comfortable margin and help prevent them from overheating).
  • get more batteries (so you can supply the stall current of all servos together for at least twice as long as you intend to use the thing for - you'll be shocked at how much battery capacity you need).

Starting small scale is also a very good idea. Those powerful servos and batteries are VERY expensive.

Any recommendations for a high current h bridge then?

Thanks for the feedback Vinceherman. Does anyone else have any suggestions that might help in programming? Thanks.

How abount googling for quadropod robot code or projects? After reading through what you find, you might get an idea of how to do your own project. Either you copy something (and magnify it to what you want) or you really invent a new wheel.

You're not asking for team members, are you? If you are, you're in the wrong forum.

The relays cost less than half bridges and heavy duty servos. I'm using a worm drive. It will stay in place. Structurally it is fine and will support my weight. The motors are from cordless drills. They will provide the necessary torque. With the worm drive, they have a 20:1 ratio.

No, not asking for team members. I have Googled a lot of articles and code examples. I like to do that before I go to forums.

Yes, heavy duty servos are expensive.

You'll have to do the hard work yourself, such as finding out at what position your legs are upon starting up - how do you plan on doing this? You will have to move the legs one by one to find the limit switch!

For H-bridges, look for motor controllers. High current ones are readily available and they allow for speed control through PWM (assuming your motors are brushed DC).

I haven't written any code yet. I have been too busy building it and still need to assemble 3 other legs.

That's a major ouch.

Suppose each leg had a set of cams to open/close switches in a leg and make it walk? Then you could send a signal to start/stop the cams and reduce the amount of code. With enough of that, you could run it off driver hand controls.

Otherwise you need a programmer who wants to spend major time just getting to to know the hardware before trying to remotely code and debug the thing. Both of your communications skills and patience will be tested along the way.

I would add springs to the legs to help them stay up. It should stand about half crouch with you in the seat just on the springs, less trouble lifting a foot than raising up on it but closer balanced than with no springs.

Yes, they see brushed. I wanted to use the drill trigger for speed control somehow but couldn't figure it out.

Yes. They are brushed. I want to try and use the drill trigger for speed control but I can't figure out how to hook it up to the arduino.

Help us out with the mechanical setup.

It looks like you have a hinged point at the base of the leg. I labeled that point Point A in the attached photo for clarification. Does this point allow the leg to pivot on plane with the rest of the frame, but not pivot up and down providing any lift? Please confirm or correct. I cannot see a motor for this. How will it be connected to the motor?

It looks like you are using one motor to extend/retract a telescoping foot. I labeled that point Point B in the attached photo for clarification. Does this only extend and retract to provide lift?

How strong is the connection at Point A? It will need to be quite strong.
What is the distance from the center of the seat to point B?
What is the distance from Point A to Point B?
How much do you weigh?


Yes, point A is hinged with a worm screw attached. I assembled that last night. I will upload the image tonight. Point B is driven by a lead screw. since only one leg moves up and down at a time, without any real weight on it, it should be fine. I have tested point B and it supports my weight. Point A also supports my weight.