Aller au contenu


Photo

rantanplan


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

#1 Jean Brunet

Jean Brunet

    Membre occasionnel

  • Membres
  • Pip
  • 94 messages

Posté 20 avril 2020 - 10:09

Bonjour

 

Rantanplan est le robotic dog proposé sur cults 3D, https://cults3d.com/fr/modèle-3d/gadget/robotic-dog

 

C'est plus une plateforme de développement qu'un robot fini.

Je vous joins quelques photos du robot et du logiciel de commande des servos que j'ai écrit.
Il permet de coupler les servos et de regrouper plusieurs pattes dans une commande unique.
Une fenêtre mémorise les mouvements qui peuvent être enregistrés et envoyés au robot.
 

 

Et j'ai trouvé cette vidéo, j'aimerai y arriver un jour !

 

https://www.youtube....eature=emb_logo

 

D'autres précisions viendront bientôt,

 

Jean

Image(s) jointe(s)

  • robot1.jpg
  • robot2.jpg
  • logiciel.jpg


#2 Oracid

Oracid

    Pilier du forum

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

Posté 21 avril 2020 - 07:11

Beau projet !
Il me semble que le quadrupède de la vidéo est basé sur un principe mécanique différent de celui que tu réalises.
 

j'aimerai y arriver un jour !

 
Tu vas y arriver, mais malheureusement Martin Triendl ne semble pas décidé à partager son travail.
Par contre, ici tu as quelque chose d'assez similaire en Open Source et qui semble très prometteur, 'https://youtu.be/3wH0poJt0Mc'

Il y en a d'autres.



#3 Jean Brunet

Jean Brunet

    Membre occasionnel

  • Membres
  • Pip
  • 94 messages

Posté 21 avril 2020 - 07:33

Oui le quadrupède utilise une mécanique plus proche de little dog.
Mais c'est surtout la fluidité du mouvement que j'admire.

 

Un grand merci pour le lien vers le robot en open source de Gled Devyatkin. 
Je charge freecad pour voir sa réalisation en détail.

A ce que je vois il utilise la cinématique dans son code, cela va beaucoup m'avancer.

 

Jean



#4 Oracid

Oracid

    Pilier du forum

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

Posté 21 avril 2020 - 10:43

Un grand merci pour le lien vers le robot en open source de Gled Devyatkin. 

YouTube est ma source principale de recherche. Quotidiennement je fais une recherche sur "quadruped robot", puis je filtre sur "semaine".

Ainsi, je suis au courant des dernières réalisations. Ce qui n'exclut pas de regarder ce qui c'est déjà fait, les mois ou les années précédentes.



#5 Jean Brunet

Jean Brunet

    Membre occasionnel

  • Membres
  • Pip
  • 94 messages

Posté 21 avril 2020 - 11:28

Merci, à propos celui-ci semble aussi intéressant.

 

Jean



#6 Oracid

Oracid

    Pilier du forum

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

Posté 21 avril 2020 - 01:11

Merci, à propos celui-ci semble aussi intéressant.

Oui, il vient de sortir et il est basé sur un Arduino.
 
Les pattes des quadrupèdes sont, la plupart du temps, basées sur deux principes mécaniques, le mécanisme série et le mécanisme parallèle.
Ceux qui semblent t'intéresser sont basés sur le mécanisme parallèle avec extension. On les nomme également 5 barres et 4 barres.

Voici le quadrupède Doggo du Stanford University avec un mécanisme, purement 4 barres:
Je t'invite également à regarder ma chaine vidéo sur ce sujet, https://www.youtube..../oracid1/videos



Pour être complet, le mécanisme série consiste à mettre un actionneur dans l'axe de chaque articulation.
Comme ici, https://fr.aliexpres...earchweb201603_
C'est l'exemple que tu donnes également dans ton premier post.
Ce type de mécanisme est simple, mais nécessite des servos avec un couple important et donc, lourd.
Pour en avoir une idée, un servo qui pèse 50g va peser 500g s'il est situé à 10cm de l'articulation qui l'actionne.



#7 Jean Brunet

Jean Brunet

    Membre occasionnel

  • Membres
  • Pip
  • 94 messages

Posté 21 avril 2020 - 03:26

Merci, je vais consulter ta chaine vidéo attentivement.

Toutefois je vais rester sur ma réalisation dans un premier temps qui donne une liberté de mouvements plus grande, au niveau du coude me semble-t-il. 

 

Voici quelques précisions sur ma réalisation.

Il est imprimé en petg avec une buse de 0.6 mm et des couches de 0.3 mm pour aller vite. Les pattes sont un petit peu souples ce qui m'embête un peu. J'ai coupé en deux le chassis qui ne rentrait pas sur le plateau de mon imprimante 3D.

 

Les moteurs sont des MG996R, la platine est une Weimos LOLIN 32 avec un  ESP32. L'alimentation est un alim de PC sous 5v pour les essais.

Comme je ne connais pas la cinématique j'ai imaginé une commande par trame.

On a les 12 servos suivi de la tempo entre chaque itérations et du nombre d'itérations pour chaque trame.

$90,90,90,90,90,90,90,90,90,90,90,90,20,10

 

Pour faire simple, l'esp32 divise l'écart entre la position précédente et la nouvelle position par le nombre d'itérations et met cette valeur dans un tableau de N itérations. Cette mise en tableau pour chaque servo se fait avant de lancer la boucle d'écriture de tous les servos, la tempo se trouvant au bout de la boucle.

De cette façon tous les mouvements sont synchronisés et la vitesse de chaque mouvement est contrôlé. Comme il est possible de découper un mouvement en plusieurs trames cela donne pas mal de possibilités.

Bien sûr cette façon de procéder limite l'utilisation à une suite de mouvements enregistrés qu'il faut raccorder selon les enchaînements souhaités.

 

Jean



#8 Oracid

Oracid

    Pilier du forum

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

Posté 22 avril 2020 - 07:11

Voici une vidéo très récente du modèle que tu veux réaliser. Dommage, ce n'est pas en anglais, mais en turque.

 



#9 Jean Brunet

Jean Brunet

    Membre occasionnel

  • Membres
  • Pip
  • 94 messages

Posté 22 avril 2020 - 07:41

Oui c'est bien celui-là. 

 

https://denizaksaya....4-legged-robot/

Son approche pour le commander est basée sur RTrobot.
D'après ce que j'ai compris il code les valeurs des servos dans sa télécommande.

 

Jean



#10 Jean Brunet

Jean Brunet

    Membre occasionnel

  • Membres
  • Pip
  • 94 messages

Posté 12 mai 2020 - 06:24

J'ai fait quelques modifications, en particulier imprimé un dessous et dessus en petg. Voilà ce que cela donne.

Je voulais envoyer une petite vidéo mais apparemment ce n'est pas possible. J'ai ajouté un enregistrement des trames dans le robot, il peut donc les relire et être ainsi autonome.

 

Il a un problème d'équilibre, il est impossible de lever une patte arrière sans qu'il bascule. Vers l'avant cela va bien.

Image(s) jointe(s)

  • rantanplan.jpg


#11 Oracid

Oracid

    Pilier du forum

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

Posté 12 mai 2020 - 08:27

C'est quoi le problème avec ta vidéo ?



#12 Jean Brunet

Jean Brunet

    Membre occasionnel

  • Membres
  • Pip
  • 94 messages

Posté 12 mai 2020 - 10:29

C'est une vidéo ftv de moins de 10 Mo



#13 Jean Brunet

Jean Brunet

    Membre occasionnel

  • Membres
  • Pip
  • 94 messages

Posté 12 mai 2020 - 10:36

En mpeg c'est accepté. Voici la vidéo.

 

Fichier(s) joint(s)

  • Fichier joint  robot2.mpg   9,84 Mo   132 téléchargement(s)


#14 Oracid

Oracid

    Pilier du forum

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

Posté 13 mai 2020 - 06:13

Sur Windows10, cela ne fonctionne pas.

Pour n'ouvres-tu pas un compte sur YouTube ?



#15 pmdd

pmdd

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 932 messages
  • Gender:Male

Posté 13 mai 2020 - 07:29

En mpeg c'est accepté. Voici la vidéo.

 

la video fonctionne mais 9 Mo pour 13s de video à télécharger, mieux vaut poster sur youtube. C'est vraiment sympa comme réalisation.



#16 Jean Brunet

Jean Brunet

    Membre occasionnel

  • Membres
  • Pip
  • 94 messages

Posté 13 mai 2020 - 11:34

Voilà, je suis sur youtube.

Et pour commencer une vidéo qui montre la bonne synchronisation des moteurs.



#17 Oracid

Oracid

    Pilier du forum

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

Posté 13 mai 2020 - 01:19

Très bien ! Je pense que tu devrais plutot mettre le lien de l'origine du robot dans la description, plutot que dans About qui est plus une page de présentation personnelle.

A mon avis, quand ton robot marchera, tu auras plus de succès avec ton logiciel qu'avec le robot à proprement parlé.



#18 Jean Brunet

Jean Brunet

    Membre occasionnel

  • Membres
  • Pip
  • 94 messages

Posté 13 mai 2020 - 02:09

Le logiciel est encore perfectible, si j'envoi trop de données à la suite il sature et le robot peut faire n'importe quoi. Sur l'ESP32 j'utilise ce code mais il y a peut-être plus rapide. Le PC envoi une trame $90,90,90,90,90,90,90,90,90,90,90,90,40,20 en mode immédiat ou #90,90,90,90,90,90,90,90,90,90,90,90,40,20 pour enregistrement en mémoire de l'ESP32

  if (Serial.available()) {
     c = Serial.read();  // lecture d'un bit
    int c1 = c;
     switch (c1)
     {
      case 35 : // # données enregistrées dans un tableau pour mode autonome
             {
              if(ptm==MaxmemoTrame){
                Serial.println("buffer plein");
              }
              else{
                while (Serial.available()>0) {
                c = Serial.read();
                  memotrame[ptm] += String(c); 
              }
              ptm ++;
              }
             }
              break;
      case 36 : // $ mode temps réel, conversion en int et envoi à la routine de positionnement des moteurs
                {
                 char ch2[60];
                 int k = 0;
                 while (Serial.available()>0) {
                  c = Serial.read();
                 ch2[k++]= c; 
                 }
                 int n = sscanf(ch2, "%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d", &gb,&ge,&gc,&db,&de,&dc,&Agb,&Age,&Agc,&Adb,&Ade,&Adc,&tms,&Nbi);
                 if(n == 14){
                    calculPos(gb,ge,gc,db,de,dc,Agb,Age,Agc,Adb,Ade,Adc,tms,Nbi);
                 }
                 else{
                  Serial.print("Erreur de trame");
                 }
               }
                break;
               // etc....
      }
}

 



#19 Sandro

Sandro

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 259 messages
  • Gender:Male

Posté 13 mai 2020 - 02:21

Si tu es limité par la transmission des données, je vois deux solutions simples :

- augmenter la vitesse de transmission (baudrate). Si tu utilise l'IDE arduino pour programmer l'ESP, alors c'est Serail.begin(X) où il faut augmenter X (nb : si tu montes vraiment trop, tu peux commencer à avoir des erreurs de transmission).

- si la première solution ne suffit pas, tu peux transmettre tes données en binaire plutôt que sous forme de chaîne de caractères : ça te fait 3 fois moins de données à transmettre


Aidez-nous à vous aider : partagez toutes les informations pertinentes : description précise du problème, contexte, schéma de câblage, liens vers la documentation des composants, votre code (ou encore mieux un code minimal reproduisant le bug), ...

Vous recevrez ainsi plus de réponses, et elles seront plus pertinentes.


#20 Jean Brunet

Jean Brunet

    Membre occasionnel

  • Membres
  • Pip
  • 94 messages

Posté 13 mai 2020 - 02:34

Je suis déjà à 614400 bauds, je dois pouvoir aller jusqu'à 800000 mais il faut que je le teste.

Plutôt l'hexa, cela permet d'avoir un format fixe, 2 octets par servos, d'éviter les virgules, et de pouvoir vérifier la longueur de la chaîne qui est constante.

Côté IDE arduino je vais piocher la question, à moins que tu es quelque chose la dessus. (découpage d'une chaine en 14 parties de 2 octets)

 

Sinon en C#.NET je passe par les évènements des barres de défilement windows ce qui n'est pas optimal non plus, je pense réécrire cela. 






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

0 members, 0 guests, 0 anonymous users