12 sg90 Servo spider can't get up

I'm making an Arduino controlled robot spider as a college project (Screenshot by Lightshot), and I'm having difficulties making it stand up. Both the Arduino and servos are on different power supplies, the Arduino being supplied with 5V via USB, and the servo (shield) was at first connected to 3xAA batteries, and then I replaced them temporarily with a PC power supply (5V output/max 14A) just to be sure they have an adequate power supply, but still nothing. The legs try to stand up but they just can't push themselves up enough.
This is my first Arduino/Servo project, so I'm not sure if I'm doing anything wrong.

What does your entire bot weigh?
Can you post a picture?
What are the length of the leg segments as measured from the center or the servo screw to the end of the segment?

Edit for more info: Those servos are not very strong. Cheap, yes. But not strong.
If your leg segments are relatively long, the servos might not have enough torque.

Depending on the configuration of your servos, we might need the measurement from the center of the lifting servo to the foot.

Thingiverse model: Qu4druped quadpod by santelelle - Thingiverse

picture: Screenshot by Lightshot

approximate leg measurements: Screenshot by Lightshot
edit: the middle part is ~6 cm, not 7

I can't measure the weight tonight, sadly

I think there is something you can try. This shot of your bots leg shows the foot extended fairly far out.

spider - Copy.png

Forgive my crude pain skills, but the first image in this drawing shows the same. The second image shows the foot retracted in, closer to the center of rotation. This shorter distance divides the available torque by a smaller number, giving more lifting power.

And it is this distance, which I have guesstimated as 10cm, that limits what the leg can lift.

distance.png

Of course, standing up is just your first hurdle. And that is using all 4 legs. To walk, you are going to be lifting 1 or 2 feet, unloading them and placing the entire burden on the remaining legs.

Calculate the torque needed on each servo if you can - you should be able to
measure the off-axis distance and weigh the robot to determine the force.

You shouldn't assume that a servo's max torque is something it can hold for an
extended period either, they tend to overheat and cook themselves if you try,
derate them a bit for a good working torque figure, especially cheap servos
with no pretentions to robotics applications.

Also if you want to see why this matters, try doing wide-arm pressups, and compare
with hands-by-your-side pressups!!

alright, so after toying a bit I came to some conclusions:

  1. depending on the load of the servos, I have a voltage drop on the PSU, with the old standing up code - reaching as low as 4.6V, that could explain why it had troubles getting up

  2. that being said, I modified how the legs are positioned as @vince proposed, and that did help since now it is able to lift itself up, even with the power supply issues (side note, the length you approximated at 10 is 12.5cm, now 8.5cm)

I'll get to calculating the torque tomorrow when I'm able to weight it. This is my first endeavor with servos so I'm not sure what the normal behavior should be either, e.g if the robot is standing, should the servos buzz or is that due to the inadequate power supply/they need more torque. And I'm not leaving them on for more than a minute at a time just to be sure, so they don't overheat.

I'm on a budget so I'm stuck with sg90 servos for the time being. But it seems I'll have to get a better power supply.

Hi,
Welcome to the forum.

Please read the first post in any forum entitled how to use this forum.
http://forum.arduino.cc/index.php/topic,148850.0.html

Thanks.. Tom.. :slight_smile: