I’m new to the forum. I recently built my SES 10 DOF (5DOFs per leg) biped. It consists of legs and a torso so far. I use HS475 servos, which now I understand are a bit weak for the task.
I’m trying to use my own control board and walking algorithm. My problem is that I haven’t yet figured out how to slow down the servos. If I make a big angular step, the robot tips over. What are the techniques to slow the motors down? There are surely solutions for this, but I haven’t found them yet. I have heard of the following ones:
Change a feedback resistor in the servo
Slow down the impulse train from 50Hz
Take a lot of small angular steps for each servo
I haven’t tried the first solution, because I don’t have the schematics. If I try to slow down the impulse train, the motors seem to loose a lot of torque. I haven’t tried the third step, but if I make a lot of small angular steps, will the motion not be still jerky?
You need to break down the moves into smaller changes where you can adjust the timing between each step. You will probably also need to work all of them at the same time. That is you don’t want to make all of the angle move for the knee and then all of the move for the hip… You want to make part of each move for the hip, knee, ankle… As each step of your movement each of these servos will probably move a different amount of angle, so you want to set up how much change to make per servo.
There is examples (for the Atom Pro) up for the Brat (TV Brat) that has the function Movement which does this. Also there is similar code for an Arm that Xan wrote based on this same code as well.
you can use your own walking algorithm, but if you are willing to sacrifice a bit in the “your own control board” department, you can use the ssc-32 and it will save you much pain and sorrow. it breaks each move up into tiny steps, giving you a really smooth move. you can slow it down in two different ways: either tell it how long the move should take (in mS), or tell it how fast the move will move (in uS per second). i am using this controller and it works great.
An SSC-32 is the be all and end all for what you need.
Say your servo #1 is at pulse 2400 (Typically far clockwise). You then send to the SSC-32 "#1 P1500 T3000 "
#1 refers to the servo number, or the pin that it is connected to.
P1500 means that it is making the new pulse 1500ms.
T3000 means that it will take 3000ms (3 seconds) to reach that angle.
makes the SSC-32 perform the banked actions. Eg. You might do that command, then move servo #2, #3 then ‘’ and it will move all of them together.