How to prevent skating

After trying to copy the movement of the BRAT on LM’s videos, I managed to get my BRAT moving, but only at a ridiculously slow pace. Its not the legs aren’t moving fast enough, but that half of the distance that the leg covers is lost because the BRAT “skates”. I can tell on the videos that its possible to prevent skating if the sequence is right. Is there some sort of special movement to prevent skating? Or is it because there is not enough centering of gravity on one leg when the other one moves?
Here is the way I try to make it move"

  1. Bend right ankle, left leg is still
  2. Stride with right leg, left leg still
    3.Plant the right ankle, left leg still
    4.Bend left ankle, right leg still
    5.stride with left leg, left leg still
  3. Plant the left ankle, right leg still

I know that this isn’t the way that LM did it, but this way produced the best results for me(not that the result was good anyways).

Can someone give me a synopsis of the right way to do it?

I had to figure it out on my own as well since I’m using VB instead of the Sequencer or Atom so I’m still experimenting but I’ll tell you what I did differently:

I started out the same - tilt to one side first (I tilt both ankles in the same direction to get it to shift balance though).

But then for my step 2, it strides with both legs at the same time (straightening out the ankles in the same sequence)

I then do the exact same for the opposite legs. I actually have mine starting out leaning to the left first but if you swap lines 1 and 2 with lines 3 and 4, it should start out leaning to the right. Here’s my code:

#0 P1427 #1 P1292 #2 P1292 #16 P1573 #17 P1708 #18 P1708 T500 #0 P1573 #1 P1292 #2 P1292 #16 P1427 #17 P1708 #18 P1708 T500 #0 P1573 #1 P1708 #2 P1708 #16 P1427 #17 P1292 #18 P1292 T500 #0 P1427 #1 P1708 #2 P1708 #16 P1573 #17 P1292 #18 P1292 T500

BTW, I just noticed you’re also in KY. We could always meet up and work on the BRATs together…over a few beers of course :smiley:

haha, yeah we could do that, though I’m not so sure about the beer part :laughing:
I basically did what you said
Heres my edited:

  1. Tilt both ankles one direction
  2. Lift the leg w/o the center of gravity and return the ankles to normal
  3. Tilt both ankles in another direction, no leg movement
  4. lift other leg, return ankles

this works somewhat better but it has a tendency to turn right. I’ll see if I can change more
thanks for the help!

Cool - I sponged info out of these forums for years but didn’t have much to contribute back. Probably because I kept starting new projects :smiley:

Anyway, I should have posted my pin assignments - they’re the same as the tutorial though:

Left Leg Right Leg
#16 = LA #0 = RA
#17 = LK #1 = RK
#18 = LH #2 = RH

Mine walks pretty straight but I don’t have my servos centered perfectly and I haven’t let it walk that far at once yet. I’ll keep you updated.

I noticed in your video that the servos probably need a bit of mechanical alignment before you use LynxTerm to center them. The SSC-32 can fine tune the values sent to the servos so they are perfectly aligned when they receive a 1500uS pulse. This alignment is limited to about 15°.

With the BRAT powered up and the 1500uS pulses sent, remove the center screw from the servo “horn”, pull the horn and bracket off the servo, move it to the closest centered position, press it back on and replace the screw.

Then you can center the servos using LynxTerm and the register support as instructed in the tutorial.
lynxmotion.com/images/html/build128.htm

It takes only 10 minutes, and the results will be well worth it. Stepping down from soap box. Hope I’m not too annoying. :blush:

The skating can be reduced or eliminated by installing small “felt pads” on each corner of the BRAT’s feet. We did this on the autonomous water bottle seek and destroy project. This makes the bot walk in a very straight line.

Here are some videos…

youtube.com/watch?v=fmpcNlfv1oI

youtube.com/watch?v=pt_7JQS3d9M

youtube.com/watch?v=hlKGp7ozSDg

Not annoying…just great advice all around! I will do that tonight.

thanks! It doesn’t skate anymore! But it still has a tendency to turn one direction while walking. I gave the same commands for both legs:

' {$STAMP BS2} ' {$PBASIC 2.5} SEROUT 15,6,"#0 P1500 #1 P1500 #2 P1500 #16 P1500 #17 P1500 #18 P1500 T500",13] PAUSE 500 start: 'Tilt both ankles one direction SEROUT 15,6,"#0 P1700 #1 P1500 #2 P1500 #16 P1700 #17 P1500 #18 P1500 T500",13] PAUSE 500 '2. Lift the leg w/o the center of gravity and return the ankles to normal SEROUT 15,6,"#0 P1500 #1 P1200 #2 P1200 #16 P1500 #17 P1200 #18 P1200 T500",13] PAUSE 500 ' Tilt both ankles in another direction, no leg movement SEROUT 15,6,"#0 P1400 #1 P1200 #2 P1200 #16 P1300 #17 P1200 #18 P1200 T500",13] PAUSE 500 'lift other leg, return ankles SEROUT 15,6,"#0 P1500 #1 P1800 #2 P1800 #16 P1500 #17 P1800 #18 P1800 T500",13] PAUSE 500 GOTO start
It doesn’t seem like a servo being uncentered problem since from the looks of it both leg parts turn the same degrees. It did seem however that one leg had more weights than the other, although I put everything in the center. I know I could always alter the code to prevent the turning, but it’d help if I knew what could be causing the constant turnings.

A very minor misalignment on the ankle would cause this. Center the servos and lift it up. See if they are perfectly aligned. That’s the only thing I can think of to tell you. Good luck with it.