Aller au contenu


Photo

5Bar Quadruped - Mojo4


  • Veuillez vous connecter pour répondre
27 réponses à ce sujet

#21 TNERA

TNERA

    Nouveau membre

  • Membres
  • 21 messages

Posté 23 novembre 2021 - 11:07

Fantastic!  That is awesome, by the power of math and code, we are aligned!  :D

 

That is nice and clean approach.

I like the asin(d/h), choice.  The Hypotenuse should never be zero, and they are both always positive.  This removed an If statement and absolute value conversion.

 

and yes, we naturally have a couple of crossed wires, my Servo naming is switched with yours.  And of course, I am using he top pin as Origin.  But these are small.

 

Thanks for testing and validating my code!

 

-- Now I am starting to think of the arrays of coordinates.  I will do this while printing out some more leg parts! ;)



#22 TNERA

TNERA

    Nouveau membre

  • Membres
  • 21 messages

Posté 28 novembre 2021 - 11:22

Hi All,

 

Here is a short video of my progress.  I have 1/2 of the robot put together.  I have been printing the parts for the Right side.  Here you can see the two Left side servos working in sequence. I used the "Walk" sequence from Oracids code base.

 

video:  (is there a better way to embed videos?)

 

Unfortunately!  When moving the robot around on my messy desk/workspace. I disconnected the GND to my PCA9685 servo driver board.  After reconnecting, the board is not working. I either have another bad connection - OR - I may have damaged the board.  so, minor set back, I hope. 

 

Thinking forward, as I get ready to work with the 'mirror' side of the servo controls. I am starting to think about how the code will best handle the 'flip' in the servo angle orientation.  Or if this will be a problem at all.



#23 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 5 773 messages
  • Gender:Male

Posté 28 novembre 2021 - 12:08

Hi Doug

 

Just paste the link from YouTube Shared bouton. I did it, don't worry.

 

- I am sorry to read about issue. I hope it is not big.

- What are your servos ?

- for the mirror leg, no problem. We shall see at this time. Can you show us the code between 2 spoiler tags 

- You must think about to put the quadruped on a stand. It is better for testing.

 

Anyway, very good first test !

 



#24 pat92fr

pat92fr

    Habitué

  • Membres
  • PipPip
  • 280 messages

Posté 29 novembre 2021 - 07:34

I have wired my test leg up and starting to play with it.

I have started with some basic "Servo Sweeps" using the two (L & R) servos.  I am interested by the amount of 'working space' available to the leg. This is the maximum extent that the leg can get to with the combination of the two servos.  Naturally, any future 'gait' will have to fit inside this area.

 

I attached a pencil to the foot and manually move the servos through the usable range (avoiding the 'singularities').  this is the resulting theoretical usable space:

attachicon.gif5bar-working-areat-trace.jpeg

I am seeing about 9cm in the x direction. for y, 4 easy to use, enough to lift the leg.  There are more space available, which might be good for 'striking a pose' :)

 

I programmed in a basic "Nested" sweep between 10° and 140° (servo angles only - i do not have Inverse Kinematics set up yet).  This is the resulting "Actual" pattern that should be available.  I was pleased that it is somewhat close to the theoretical space.

attachicon.gif5bar-actual-area.jpeg

 

This was all very interesting to me. 

1- one of the first observations that I had is that a delay is needed in the gait or sweep to allow the servo time to arrive at the programmed point. This Time delay - you have it listed as speed , will have a dramatic effect on the size of this work area.  The faster the change, the more likily that the servo will not arrive in time to leave for the next programmed location.

2- next, give that the leg has a known working area. and that working area is defined by the 'speed' of the settings. Then it is entirely possible to calculate the maximum speed of the leg (and robot).  [10m in 10 seconds? eh??  :) ]

 

What experience do others have in getting similar results for the  Working Area of a 5 bar leg?

 

Hello TNERA,

 

Just after mechanical design, I usually implement the FW and IK functions in python, and I plot the "foot usable space". Here is the result with my current project, a 5-bar leg (femur=8cm, tibia=16cm). In red, the optimal bounding box with max stride length/height and swing  height. The red circle is the foot trajectory, when testing the system bandwidth (number of revolutions that the leg mechanics and the actuators are able to do). This is very close to what you did with a pen and a leg!

 

space_C000.png

 

note: With a coxa actuator (12-DOF robot), there is a "usable volume". I should change my Python script in order to draw this volume, and check that the 3D bounding box (leg trajectory) is inside this volume.

 

Patrick.



#25 TNERA

TNERA

    Nouveau membre

  • Membres
  • 21 messages

Posté hier, 21:49

Hi Patrick,

 

That is a very sharp looking bounding box!  I like it.  I went to python to write/test out my IK function, but i didn't think to plot it out.  I guess, actually, I didn't even know how to plot it out! ;)   so, how did you do that? matplotlib?

 

note: With a coxa actuator (12-DOF robot), there is a "usable volume". I should change my Python script in order to draw this volume, and check that the 3D bounding box (leg trajectory) is inside this volume.

 

yes! this will be very good, especially to help out with Dynamic walking.  (I am still trying to get to first steps with my 5bar).  Also if Oracid is going to be climbing stairs, he would be thinking of this too.



#26 TNERA

TNERA

    Nouveau membre

  • Membres
  • 21 messages

Posté hier, 22:01

Hi Oracid,

 

Well, after much searching the internet, and reading forum posts. It seems that I am not alone in this issue.  It seems that there have been a few issues with voltage drops on the PCA9685. and the internet has provided plenty of suggestions.  Basically, it seems like the current draw from multiple servos is too much for either a) the small wires I have connected to my power source, B) the cheap P-type polarity circuit on the board, or c) I have no idea. :D  At any rate, I am still working through it. it has eaten many hours so far.

 

Great suggestions:  here are some thoughts

- I am sorry to read about issue. I hope it is not big.

  yes, this is depressing. the board isn't burnt, but I know now that it is a power issue by the bigger servos.  I really need a better portable power solution

 

- What are your servos ?

  These are the big heavy MG995 type servos.   and I REALY REALY hope I don't have the issue you are going through with the torque! (looking forward to you test results!)

 

- for the mirror leg, no problem. We shall see at this time.

  yeah - I don't think I am free of this issue.  but I have to solve #1 first.  anyway, I am hoping the mirror is just reversing the angels by 180.  

 

Can you show us the code between 2 spoiler tags 

  ha ha ha, NO, I am way to embarrassed by my messy code!  :D   ok, let me solve issue #1 and then I will clean it up and post (with spoilers)

 

- You must think about to put the quadruped on a stand. It is better for testing.

done and done - thanks for the tip.  actually, mojo4 has been cut up into pieces and is splayed out over my desk while I work this voltage issue.  but when the gaits come - it will be back on my makeshift stand. (I knew those wine boxes would be useful some day!  :)   



#27 pat92fr

pat92fr

    Habitué

  • Membres
  • PipPip
  • 280 messages

Posté hier, 22:16

Hi Patrick,

 

That is a very sharp looking bounding box!  I like it.  I went to python to write/test out my IK function, but i didn't think to plot it out.  I guess, actually, I didn't even know how to plot it out! ;)   so, how did you do that? matplotlib?

 

yes! this will be very good, especially to help out with Dynamic walking.  (I am still trying to get to first steps with my 5bar).  Also if Oracid is going to be climbing stairs, he would be thinking of this too.

 

Yes, I have used mathplotlib. You have to implement the FK function first. Then, you fill arrays X, Y and Z, by using FK, and a double nested loop to iterate through a range of HIP./COXA angles. Then plot (X;Z).

 

Pseudo-code Python :

import matplotlib.pyplot as plt

X = []
Y = []
Z = []

for A in range(-45,90,1): # Front HIP angle
   for B in range(90,225,1): # Rear HIP angle
      C = 0 # COXA angle
      x,y,z = FK(A,B,C)
      X.append(x)
      Y.append(y)
      Z.append(z)

plt.plot(X,Z,'bo', linewidth=2.0 )
plt.axes().set_aspect('equal')
plt.xlabel('x foot space (mm)')
plt.ylabel('z foot space (mm)')
plt.show()



#28 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 5 773 messages
  • Gender:Male

Posté aujourd'hui, 08:45

I really need a better portable power solution

Not really necessary for this scale.

 

I have a secret. I use MG92B servo.

This servo is 15g and is torque is 3.5kg.cm with 6V and more with 7.4V (2S). I use a very small 2S battery for 12 servos.






0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users