Aller au contenu


Photo

5Bar Quadruped - Mojo4


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

#21 TNERA

TNERA

    Membre occasionnel

  • Membres
  • Pip
  • 90 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! ;)


  • Oracid aime ceci

#22 TNERA

TNERA

    Membre occasionnel

  • Membres
  • Pip
  • 90 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.


  • pat92fr aime ceci

#23 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 732 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 !

 


  • TNERA aime ceci

#24 pat92fr

pat92fr

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 672 messages
  • Gender:Male

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.


  • Oracid , Mike118 et TNERA aiment ceci

#25 TNERA

TNERA

    Membre occasionnel

  • Membres
  • Pip
  • 90 messages

Posté 30 novembre 2021 - 09: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

    Membre occasionnel

  • Membres
  • Pip
  • 90 messages

Posté 30 novembre 2021 - 10: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

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 672 messages
  • Gender:Male

Posté 30 novembre 2021 - 10: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()


  • TNERA aime ceci

#28 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 732 messages
  • Gender:Male

Posté 01 décembre 2021 - 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.



#29 TNERA

TNERA

    Membre occasionnel

  • Membres
  • Pip
  • 90 messages

Posté 01 décembre 2021 - 11:01

ah ha .. nice.

 

I see that you are also controlling it with the standard servo library (no I2C).  and what is the servo board you are using?

 

OK in my reading so far.  it is suggesting that I need a battery with 6V and as many amps (like 2C?).  The PCA board should take max 6V and 10A.  The batteries I have are either a 5V power bank. or two series 18650 -> 7.4V.  I would need to tune it down.  however, I have read that is not recommended to use a DC-DC converter for motors or Servos, because they typically reduce the current.  That the 'best' practice is to size the battery up for the need. 

 

Right now my dilemma is the PCA9685 is my limiting issue. If i power the servos directly, then I can use the full 7.4V battery.  otherwise I have to reduce current -- which I believe is the root cause of my issue.

 

 

(@Patrick, thanks for sharing your code!)



#30 TNERA

TNERA

    Membre occasionnel

  • Membres
  • Pip
  • 90 messages

Posté 01 décembre 2021 - 11:58

ahh....  update!

 

just after posting, i caught an entry on the Adafruit forum.  one of the Adafruit admins said putting 7V on the PCA9685 external power source was fine.  That was good enough for me!  I got out my soldering iron, made my 7.4 source and tried it out!

 

It is working - all 8 servos!!  yeah!

 

So, I am back in business!! - I will be able to see if my robot dog can stand its own weight shortly!  (next chance this weekend)  Good luck to you all!



#31 pat92fr

pat92fr

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 672 messages
  • Gender:Male

Posté 02 décembre 2021 - 08:03

Hey TNERA,

 

You should try to measure the stall torque of your servo with your setup (power supply, wiring, controller, mechanics..).

 

Then, you shoud estimate the servo torque required for the gait, and check it does not exceed this stall torque.

 

http://forums.trossenrobotics.com/showthread.php?7061-How-does-one-set-the-torque-of-the-servos-for-a-moving-robot

 

Stable motions are possible with robots designed for loads (Kg) with 1 /5th or less of the stall torque (Kg.cm)

 

I think that the same ratio is true for all other kind of joint actuator / servos.

 

Joint torque/ robot weight of most quadruped is more than 5.

 

Ex. : Oracid robots with MG92b (3.5kg.cm / ~500gr > 5). And there are two servo for each HIP with the parallele design!

 

From the data I have, a large quadruped has a ratio of more than 10 to 30. Ex. : a MIT actuator has a stall torque > 15N.m and the MIT Cheetah quadruped weight is about 10kg. The ratio is > 15.

 

Patrick.


  • TNERA aime ceci

#32 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 732 messages
  • Gender:Male

Posté 02 décembre 2021 - 08:26

I see that you are also controlling it with the standard servo library (no I2C).  and what is the servo board you are using?

It is this Shield, https://www.robot-ma...d-nano-307.htmlthat I have modify like you can see at 5'45" in my video : https://www.robot-ma...berte/?p=114366

I connect my 7.4V (2S) battery directly to this Shield.

 

Glad to see that you have going through your issue.



#33 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 934 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 02 décembre 2021 - 02:14

 

 

OK in my reading so far.  it is suggesting that I need a battery with 6V and as many amps (like 2C?).  The PCA board should take max 6V and 10A.  The batteries I have are either a 5V power bank. or two series 18650 -> 7.4V.  I would need to tune it down.  however, I have read that is not recommended to use a DC-DC converter for motors or Servos, because they typically reduce the current.  That the 'best' practice is to size the battery up for the need. 

 

 

Yes you are right, when you can the best practice is to choose your battery according with what consume the more on your robot, in order to not use DC DC converter for this part, but only if you can find a battery that match with the need in term of voltage. 

You should check if 7.4V is not too much for your servomotors. Some supports well the 2S configuration directly used to power them, but some not, especially when your battery is fully charged and voltage is now 8.4V ...


  • TNERA aime ceci

Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#34 TNERA

TNERA

    Membre occasionnel

  • Membres
  • Pip
  • 90 messages

Posté 06 décembre 2021 - 10:39

Hi All,

 

Thanks so much for your help!  I think I am experiencing all of the above!! 

 

:#  @mike I am right over my voltage, I am sure, but I have some more resistance in my wires. I can smell it!  :/

 

I have it functioning now. working on some tuning and getting the basics of standing and a simple (lateral sequence) Walk.

 

The total weight is around 1.25 kg.  I will try standing and moving to see how well the servos handle the load.

 

Here is a blurry picture from the initial videos.  The robot is 'rearing' back on the hind legs, which are struggling over the weight. It is *not* stable right now.

 

mojo4-ready-to-walk.png

 

More to come...   

 

(and cautiously watching Oracid's progress)


  • Oracid et pat92fr aiment ceci

#35 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 732 messages
  • Gender:Male

Posté 07 décembre 2021 - 07:54

The robot is 'rearing' back on the hind legs, 

Because the leg is not symmetrical like in Diamond, the rectangle path gait have to be shifted to the back, not symetrical from the Y paw axis.

On my 12DOF code, you can see that the rectangle is +50mm to the front and -70mm to the back. Is that clear ?


  • TNERA aime ceci

#36 TNERA

TNERA

    Membre occasionnel

  • Membres
  • Pip
  • 90 messages

Posté 07 décembre 2021 - 11:09

yes, that is exactly what I wanted to know.  I had run into similar problems with my Mojo3.  But, i wanted to confirm with you that you had the same issue on the 5bar.  Thanks for the comment (and reading my mind!) :)

 

i will make adjustments to the gait and try it again!!



#37 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 732 messages
  • Gender:Male

Posté 07 décembre 2021 - 02:15

With a real Diamond, the forces are balanced symmetrically, but with a leg, the bending is more important on the ghost side.

Keep in mind, my quadruped is half weight than yours.



#38 TNERA

TNERA

    Membre occasionnel

  • Membres
  • Pip
  • 90 messages

Posté 12 décembre 2021 - 03:32

Hi All, here is a progress update.

Mojo4 is now walking, or at least 'shuffling' in a forward direction.  ;)

 

 

..wow.. a lot of issues to overcome:

 

  • Increased the Width (spacing between the sides).  this has helped the stability dramatically.
  • upgraded the battery wires, with thicker versions.  I am still having issue with the 'springs' used to hold the 18650 batteries in place. The Spring is heating up!  this needs resolved
  • Glued the components to the frame, this keeps them in tack.  But, I am still have some broken circuits with loose connectors.
  • The Feet need to have more contact and friction on the floor.  I will look at some small springs to help here.

 

In general it is standing and walking, next steps will be over all improvement to feet. 

Next also, reviewing the Gait.


  • pat92fr aime ceci

#39 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 732 messages
  • Gender:Male

Posté 12 décembre 2021 - 07:29

Hi Doug.

 

- to hold the battery, you can use Velcro sticker.

- double-sided tape is essential.

- may we have some pictures and details ?

 

"E pur si muove !"



#40 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 732 messages
  • Gender:Male

Posté 14 décembre 2021 - 07:15

Hi Doug

 

I forgot to tell you that the ratios between the length and the width of my quadrupeds are :

- 12DOF-Q-1, length and width, 34/22=1.55 

- 12DOF-Q-2, length and width, 41/26=1.58

 

I guess that dogs and cats are even more, may be 2.0, may be more.

Anyway, for beginner, around 1.5, it works.






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

0 members, 0 guests, 0 anonymous users