8 Servo Robot Can't hold itself up

Hey everyone,
So for the past week or so I have been working in my free time when I am not in class on a new project I started up for fun. I wanted to make a small walker similar to the dwarf spider droids from star wars, yeah I love star wars. and I finally got everything assembled today and now after powering it up I find that the servos do not hold up the body.

I put some basic arduino code onto the arduino basically setting up the servos and putting them all into a home position. I have to hold the arduino up when powering it on because it can't even lift itself up off the ground. Here is my code

#include <Servo.h>

// Create Servo Objects 1-8
Servo baseServo1;
Servo baseServo2;
Servo baseServo3;
Servo baseServo4;
Servo armServo1;
Servo armServo2;
Servo armServo3;
Servo armServo4;



void setup() 
{
  // Attach Servos to Their Corresponding Pin on Arduino
 baseServo1.attach(1);
 baseServo2.attach(2);
 baseServo3.attach(3);
 baseServo4.attach(4);
 armServo1.attach(5);
 armServo2.attach(6);
 armServo3.attach(7);
 armServo4.attach(8);

 // Set all Servos to default position
 baseServo1.write(90);
 baseServo2.write(90);
 baseServo3.write(90);
 baseServo4.write(90);
 armServo1.write(90);
 armServo2.write(90);
 armServo3.write(90);
 armServo4.write(90);
}

void loop() 
{


}

Now I am not sure if the robot weighs too much, the servos aren't receiving enough power, or they are just positioned poorly. This is my first real project that I have done myself and not followed off some instructions online so my design probably isn't very efficient.

The servos I am using :

Battery Pack:
https://www.amazon.com/Tenergy-2000mAh-Connector-Airplanes-Aircrafts/dp/B001BCOWLY/ref=sr_1_4?s=toys-and-games&ie=UTF8&qid=1505015348&sr=1-4&keywords=6v+nimh+battery+pack

I would appreciate any advice on how I can proceed/what I need to fix.

EDIT: I should also mention that once it is standing up, I attempted to have one leg lift itself down and then back up and it can't lift itself back up so the robot just keeps lowering itself as it appears not to have the strength to lift itself back up.

Here is a link to imgur with pictures of the robot

First one shows the robot with no power
Second one with power and after I held it up so that its servos could reach base position and then set it back down. It can hold itself up but and motion will slowly lower it down.
Third image is when I was messing around with trying to get it to walk and I powered it down halfway through because it was freaking out, and it somehow stayed like that without problem.

What you haven't said is how much it actually does weigh.

But first things first. How is everything wired? Using a 6V battery for Arduino power is tricky and the servos must be powered direct from the battery NOT through the Arduino. A circuit diagram showing particularly the power arrangement would be helpful.

In that configuration your 4 leg servos have a lot more permanent load on them than in their normal use so you may need a more powerful battery or better servos but let's check the wiring first.

Steve

As Steve says, weigh the robot.
And show a wiring diagram. Pencil, paper and a camera are good if you show detail.
Also, measure the distance from the foot to the center of rotation of the servo that lifts the leg.

Hi, thanks for the replies guys. I am not an expert on this as it is my first real project, but I will try to answer the best I can.

  1. Weight is approximately 2lb or 0.91 kg

  2. I have the 8 servo's powered by a 6v NiMH battery and the arduino on a seperate 9v battery.

  3. Distance from center of foot to center of servo that lifts the leg ~5in or 127mm

  4. Wiring: Imgur: The magic of the Internet

Bad wiring, current for a servo has to go through 12 breadboard connections in series, dropping a small voltage at each one, 12 small drops = 1 big drop, maybe too big.

edgemoron:
Bad wiring, current for a servo has to go through 12 breadboard connections in series, dropping a small voltage at each one, 12 small drops = 1 big drop, maybe too big.

ah, I see. I will rewire it and see how it performs.

I moved the volt/ground for each servo to their own breadboard slots so their is not overlap. I then wired each of them to the ground/volt section of the breadboard. It is still having the same problem though it does seem to be a bit stronger as it can hold itself up somewhat now. I think I am going to have to replace the legs so that they face directly to the ground, should give it more support and hopefully I can start working on other aspects of the robot then. I guess another alternative would be to swap the servos out, but I am not sure now what type/strength to look for.

I will post back here after I have swapped the legs out, in the meantime if their is anything anyone would like to add/comment on I would love to hear it.

Hi,
OPs robot.


I think you need to realise that the four servos that lift and hold the robot off the floor, will be consuming current ALL the time that the robot is being held up.

All the servo power wires should be going directly to their battery, with a STAR connection configuration.
Get rid of the protoboard, your servos will pull more than 1Amp each when asked to move.

Shortening the legs will help lower the required torque to lift the robot.

Tom... :slight_smile:

Yes, those legs aer very long, so the torque needed is large. This risks overheating the
servos if they are struggling (assuming adequate power).

For higher torque loads, higher torque servos may be needed, together with more supply
current capacity to power them.

Standard cheap servos are not designed to operate at full torque continuously, note, this
is not what they are designed for. Robotics high performance servos are better engineered
for robotics applications, unsurprizingly.

I think that you will need to change some physical characteristics to make this work.

If you have full 6v going to the servos (see several comments above on how you are likely providing less) then each servo is spec'ed at 57 oz-in of torque.
With a 5" leg, it can lift 1/5 of 57 oz, or 11.4oz

You are trying to lift 32 oz.
If all 4 legs are lifting, each servo only has to lift 8 oz. The robot should be able to stand up.
(again, if you solve your power supply issues)

Now lets look at walking. This effectively doubles the weight that each servo sees. Even if you only lift one leg, The opposite leg will bear virtually no weight, and the robot will have its weight supported by 2 legs.

During walking, each load bearing leg will support 16 oz, which is beyond your 11.4oz capacity.

For an experiment, knock out 4 legs that are only 3.5".
That gives 16.25oz lifting capability, which might be doable.

*it is early and I have not had coffee yet. Treat all of my math with suspicion.

Thanks for all the advice guys! I completely overlooked the torque rating on the servo's when purchasing them. I am in the process of printing out 4 new legs that will simply be facing downwards so I can see if that works. If I am happy with the way it looks with the new legs I will keep them, otherwise I will spread them out a bit to look more like the original legs but with less length. My next project I will be sure to pay more attention to the torque ratings and requirements for my project.

I will post back here after trying out the new legs and how it turns out. Again, I appreciate all the help!

So I finished the legs the other day and hooked them up. It works fine now, it can hold itself up and walk perfectly fine. I also took out the breadboard and hooked the power for the servos directly up to the battery power. Everything works fine now.

Thanks for the assistance everyone!

Great!
Video?