Aller au contenu


Photo

DeltaQuad et FiveBarQuad


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

#41 Oracid

Oracid

    Pilier du forum

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

Posté 19 septembre 2019 - 06:58

On peut faire un bipède avec du fil de fer. Imagines on rajoute un moteur :)

Je connais bien ce genre de bipède. Le moteur, ici, c'est la pente.
Voici une des vidéos du laboratoire qui a fait ce type de recherche.
C'est intéressant ! Pas de doute là dessus.
J'ai déjà essayé, mais je n'ai jamais réussi.



#42 Oracid

Oracid

    Pilier du forum

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

Posté 19 septembre 2019 - 05:59

Cliquez moi.
DSC_2408-L.jpg

Et bien, j'ai craqué ! J'ai fait une version encore plus grosse.
Cette nouvelle version fonctionne très bien et je l'emmènerai sans doute également à Toulouse.
Là, j'ai atteint une dimension que je n'aurais jamais espérée.
Il est peut-être moins agile, à voir, je n'ai pas fini les tests.
Jusqu'où, ces petits servos peuvent ils tenir !? Je n'en reviens pas.

A droite, FBQv1 que l'on peut voir dans cette vidéo, https://www.robot-ma...rquad/?p=104639
Au centre, FBQv2. La version pour Toulouse que l'on peut voir ici, https://www.robot-ma...rquad/?p=105188
A gauche, FBQv3. La dernière version que j'aimerais bien également emmener à Toulouse.

Caractéristiques :

- structure en poutres Lego
- microcontrôleur Arduino Uno avec Shield Uno R3 V5.0
- 8 servos SG90
- batterie LiPo 2S 2200mAh
- alimentation UBEC 5V 7A
- 3 capteurs à ultrasons HC-SR04. Avant, gauche, droite.
- Boom stopper 2A.
- bouton Start
- arrêt avec bouton de Reset
- chaussons amortisseur
- dimensions:
hauteur hors tout 25cm
longueur hors tout 45cm, chassis 36cm
largeur 22cm
hauteur au garrot 195mm (axe des servos)
poids 830g

#43 Oracid

Oracid

    Pilier du forum

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

Posté 21 septembre 2019 - 05:18

Voici donc la vidéo sur mon dernier quadrupède, FiveBarQuad 3 (FBQ3).
Là, on a vraiment les dimensions d'un chat.
Notez que les servos sont toujours des SG90.

C'est la dernière vidéo de cette série. Maintenant, je vais essayer de modifier la taille des palonniers.
Cela permettra de pouvoir lever la patte beaucoup plus haut.
Puis, je pense faire des variantes avec des tailles de palonniers différents pour les 2 servos de chaque patte.
Cela devrait permettre ensuite de prolonger un palonnier pour que la patte ressemble plus à la réalité.
Comme, vous pouvez le constater, j'y vais pas à pas.



#44 Little french kev

Little french kev

    Membre occasionnel

  • Membres
  • Pip
  • 87 messages

Posté 27 septembre 2019 - 10:21

Je ne sais pas si tu as vu mais tu as eu droit a un jolie article sur le blog arduino :

https://blog.arduino...rduino-control/



#45 Oracid

Oracid

    Pilier du forum

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

Posté 28 septembre 2019 - 07:27

Je ne sais pas si tu as vu mais tu as eu droit a un jolie article sur le blog arduino :
https://blog.arduino...rduino-control/

Un grand merci pour cette information.
Non, je ne savais pas. C'est super ! Je suis vraiment très content.

Bon, il y a une erreur dans l'article.
Il dit que j'utilise 16 servos. En réalité, c'est 8 servos.
J'aimerais bien corriger, à moins que tu veuilles bien le faire pour moi.

#46 Little french kev

Little french kev

    Membre occasionnel

  • Membres
  • Pip
  • 87 messages

Posté 28 septembre 2019 - 08:37

J'ai envoyé un email . J'espere que l'article sera corrigé .



#47 Oracid

Oracid

    Pilier du forum

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

Posté 13 octobre 2019 - 06:57

Je ne sais pas si tu as vu mais tu as eu droit a un jolie article sur le blog arduino :
https://blog.arduino...rduino-control/

Pile à la date de la publication de cette article, les vues sur cette vidéo ont fortement augmenté.

#48 Oracid

Oracid

    Pilier du forum

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

Posté 29 octobre 2019 - 11:21

Cliquez moi.

DSC_2445-L.jpg

FBQ4 est la dernière version de mon quadrupède.
Sa particularité est que le mouvement à 5 barres est muni d'une extension. L'objectif était de se rapprocher du réel biologique.
Cela fait environ un mois que j'y travaille et le résultat ne me satisfait pas.
Si l'on juge de son allure séparément, elle semble correcte, mais si on la compare simultanément à l'allure du FBQ3, la version précédente, alors elle apparait nettement moins naturelle.
Est ce que cette configuration possède un avantage ? Je l'ignore. En tout cas, je ne suis pas parvenu à le mettre en évidence.
De plus, cette configuration présente une asymétrie gauche, droite. Cela est dû aux moteurs des servos dont la rotation ne peut être inversée.
Il est donc nécessaire d'avoir 2 versions de calcul, différentes. Une pour les pattes droites, et une autre pour les pattes gauches.
De plus, les calculs sont plus compliqués que pour un 5 barres classique.

Je ne poursuivrai pas dans voie et vais donc tenter d'améliorer le mécanisme des 5 barres ou m'orienter vers un autre mécanisme.

#49 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 8 663 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é 29 octobre 2019 - 01:52

De plus, cette configuration présente une asymétrie gauche, droite. Cela est dû aux moteurs des servos dont la rotation ne peut être inversée.
 

 

Je ne comprends pas cette remarque, ne s'agit il pas d'un problème de calibration de servomoteur ? 

 


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 ! 

 

Les réalisations de Mike118  

 

 

 


#50 Oracid

Oracid

    Pilier du forum

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

Posté 29 octobre 2019 - 02:51

Je ne comprends pas cette remarque, ne s'agit il pas d'un problème de calibration de servomoteur ?

Non.

Si tu regardes une voiture qui avance de droite à gauche, coté conducteur. La roue avant tourne dans le sens inverse des aiguilles d'une montre.
Si tu regardes la même voiture coté passager, la roue tourne dans le sens des aiguilles d'une montre.
Lorsque, par exemple, tu construis un char, tu associes un moteur à la chenille gauche, et un moteur à la chenille droite, mais en inversant la polarité de ce dernier.
Sinon, le char va tourner sur place.

Ici, c'est le même problème.
Avec un mécanisme à 5 barres symétrique, cela ne se voit pas. A condition que le mouvement soit symétrique par rapport à un axe vertical passant entre les 2 servos.
Dans cette nouvelle configuration, l'extension détruit la symétrie des pattes.

Si tu regardes le quadrupède coté conducteur, les 2 servos vont de 0° à 180°, de gauche à droite.
Si tu regardes le quadrupède coté passager, les 2 servos vont également de 0° à 180°, de gauche à droite. Ce qui n'est pas bon. Ils devraient aller de 0° à 180°, mais de droite à gauche.

C'est vrai que c'est une prise de tête, cette affaire.

J'ai pas mal bossé sur tout ça. Voici un fichier pdf avec mes tests.
Le fichier d'origine est un PowerPoint où on peut tracer des segments d'une longueur donnée avec un angle donné.
J'ai donc vérifié que les valeurs résultant de mon programme correspondaient bien aux valeurs données par PowerPoint.
Notez que les calculs sont différents en fonction du coté.

Patte AvantDroite 35 5.jpg Patte AvantGauche 35 5.jpg

Fichier(s) joint(s)



#51 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 8 663 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é 29 octobre 2019 - 03:07

D'accord je viens de comprendre ... Il s'agit donc bien d'un problème de "calibration".
En fait je pense que tu t'es pris la tête pour rien, c'est la même cinématique en envoyant juste des consignes " opposée" . 
Pour cela tu dois faire en sorte de mettre dans ta calibration une inversion de sens de rotation. 

 

 

La calibration d'un servomoteur c'est définir les valeurs min et max en PWM correspondant aux angles -90 ° et 90 ° d'un servomoteur avec le 0 parfaitement aligné.


Imaginons que ton moteur servomoteur 1 parfait est nickel avec les valeurs : 1000µs à -90 ° en min et 2000µs à +90° en max avec 1500µs parfaitement aligné en 0°. 

Si jamais ce moteur était de l'autre côté il faudrait le calibrer avec : 2000 en min pour -90°  et 1000 en max à +90° ce qui le retournerais et donc résoudrait complètement ton problème d'orientation du servo. 

De même si le zero n'est pas parfaitement centré, il faut ajuster un peu les valeus min et max en les décalant de sorte à avoir les 180° de course et le 0 de centré ... Quitte à changer l'angle du palonnier sur le servomoteur...

 

 

Perso je préfère travailler de -90 à 90 pour les calculs mais mas remarque vaut aussi si tu remplace -90° par 0° et 90° par 180°...


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 ! 

 

Les réalisations de Mike118  

 

 

 


#52 Oracid

Oracid

    Pilier du forum

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

Posté 29 octobre 2019 - 06:01

D'accord je viens de comprendre ... Il s'agit donc bien d'un problème de "calibration".
En fait je pense que tu t'es pris la tête pour rien, c'est la même cinématique en envoyant juste des consignes " opposée" .

Zut ! C'est vrai qu'on en avait parlé, mais je n'ai pas fait le rapprochement.

Concrètement, si j'utilise la commande myservo.attach(3,2000,1000); c'est bon ?

 

Néanmoins, mon code fonctionne et ça reste vrai que l'allure n'est pas aussi bonne qu'avec un 5 barres classique.



#53 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 8 663 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é 30 octobre 2019 - 11:21

hum je ne suis pas sur que ça marche avec servo.write, car il me semble que la lib servo souhaite avoir un min et un max  tel que min < max.

 

Par contre tu peux utiliser la fonction servo.writeMicroseconds(),  et faire toi même le map.

Sinon si tu veux vraiment utiliser la fonction write avec l'init comme indiqué tu peux faire une fonction d'inversion. 

=> 

bool servoReverse[NBSERVO] = { 0, 1, 0, .....}; 

int reverse(angle, i) {

 if( servoReverse[i])

  return 180 - angle;

 else 

  return angle;

}

 

 

que tu pourras utiliser à l'intérieur de tous tes appels de servo.write ... 

 


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 ! 

 

Les réalisations de Mike118  

 

 

 


#54 Oracid

Oracid

    Pilier du forum

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

Posté 31 octobre 2019 - 08:08

hum je ne suis pas sur que ça marche avec servo.write, car il me semble que la lib servo souhaite avoir un min et un max  tel que min < max.

Merci Myke. Effectivement, cela ne fonctionne pas.

J'ai repris ta logique dans un petit programme très simple qui fonctionne parfaitement.
Les 2 palonniers décrivent un mouvement parfaitement symétrique.

#include <Servo.h>
Servo Srv1, Srv2;
int x;

void setup() {
Serial.begin(9600);
pinMode(0,INPUT_PULLUP); //start button

Srv1.attach(2); Srv1.write(90);
Srv2.attach(3); Srv2.write(90);

while( digitalRead(0) ); // waiting for start button pressed
}

void loop(){
for(x=0;x<=90;x++){
Srv1.write(x);
Srv2.write(map(x,0,180,180,0));
delay(20);
}
for(x=90;x>=0;x--){
Srv1.write(x);
Srv2.write(map(x,0,180,180,0));
delay(20);
}
}



#55 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 8 663 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é 01 novembre 2019 - 05:54

Par contre pour avoir un beau 180° bien aligné tu peux initialiser avec myservo.attach(3,1000,2000);   en changeant les valeurs 1000 et 2000  en ayant toujours min < max et pour que tu ais parfaitement 180° de débattement avec le 90° parfaitement aligné à 90° ... 

 

Sinon je trouve qu'utiliser la fonction "map"  dans ton cas  c'est  " overkill " ... ça fait des multiplication et des divisions là où une simple soustraction fait l'affaire : 

 

void loop() {
 for(x=0;x<=90;x++){
  Srv1.write(x);
  Srv2.write(180 - x);
  delay(20);
 }
 for(x=90;x>=0;x--){
  Srv1.write(x);
  Srv2.write(180 - x);
  delay(20);
 }
}

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 ! 

 

Les réalisations de Mike118  

 

 

 


#56 Oracid

Oracid

    Pilier du forum

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

Posté 01 novembre 2019 - 11:57

Merci Myke.
Super, le coup de la soustraction !

Avec ce nouveau code, j'ai essayé de calibrer 2 servos positionnés en parallèle.
Le résultat n'est pas vraiment satisfaisant.
Pour le servo 2, les positions 0° et 180° sont ok, pas le 90°.
Pour le servo 1, la position 0° est ok, mais pas le 90° et le 180° est très mauvais.
C'est vrai que ce sont des SG90, donc du bas de gamme.

J'ai fait des tests avec des pins PWM(5-6), non PWM(2-4) et Analogique(A0-A1), le résultat est strictement identique.
Je crois me souvenir avoir lu ici que les servos devaient être connectés à des pins PWM.
Ceci n'est pas exact ! Mes quadrupèdes ont leurs 8 servos connectés à n'importe quels pins de 2 à 13 sans problème.

Pour vous en convaincre, "The Servo library supports up to 12 motors on most Arduino boards and 48 on the Arduino Mega.", https://www.arduino....reference/servo

Tout ceci est très intéressant, mais heureusement que j'étais dans l'ignorance lors de la conception de mes quadrupèdes.
Sinon, j'aurais imputé les problèmes de cinématiques aux problèmes de calibrations des servos.
Ce qui n'a jamais été le cas à ma connaissance.


// Calibration de 2 servos positionnés en parallèle. 01/11/2019
// Le résultat n'est pas très satisfaisant.
// Pas de différence sur pins PWM, non PWM et Analogic.
#include <Servo.h>
Servo S1, S2;

int S1Min=670,  S1Max=2410, S1Mid=(S1Max-S1Min)/2+S1Min;
int S2Min=560,  S2Max=2360, S2Mid=(S2Max-S2Min)/2+S2Min;

void setup() {
  Serial.begin(9600);
  pinMode(0,INPUT_PULLUP); //start button
  pinMode(A0, OUTPUT);
  pinMode(A1, OUTPUT);

  S1.attach(A0,S1Min,S1Max); S1.writeMicroseconds(S1Mid);
  S2.attach(A1,S2Min,S2Max); S2.writeMicroseconds(S2Mid);

  while( digitalRead(0) ); // waiting for start button pressed
}
void loop(){
  for(int x=0;x<=90;x++)  { S1.write(x);  S2.write(180-x);  delay(5); } delay(500);
  for(int x=90;x<=180;x++){ S1.write(x);  S2.write(180-x);  delay(5); } delay(500);
  for(int x=180;x>=90;x--){ S1.write(x);  S2.write(180-x);  delay(5); } delay(500);
  for(int x=90;x>=0;x--)  { S1.write(x);  S2.write(180-x);  delay(5); } delay(500);
}

 



#57 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 8 663 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é 01 novembre 2019 - 02:56

Merci Myke.
Super, le coup de la soustraction !

 

 

En fait je t'avais déjà fournit l'astuce 

 

 

bool servoReverse[NBSERVO] = { 0, 1, 0, .....}; 

int reverse(angle, i) {

 if( servoReverse[i])

  return 180 - angle;

 else 

  return angle;

}

 

 

que tu pourras utiliser à l'intérieur de tous tes appels de servo.write ... 

 

 

 

Le but de ce genre de fonction c'est qu'en fait tu l'appelle pour tous les moteurs tout le temps et en fonction de ta config ça inverse ou pas le moteur sans que tu ais à réfléchir à chaque fois ... 

 

 

Par contre oui pas de différence sur pin PWM ou pas ... car la lib utilise le timer pour ensuite écrire sur n'importe quel pin. 

 

Sinon question : Quelle logique tu as suivie pour modifier les valeurs min et max ? 

 

en général ce que je fait ce que je trouve une valeurs centrale qui va bien avec mon palonnier pour qu'il soit dans l'axe  avec une valeurs proche de 1500. 
Si nécessaire dévisser le palonnier le décaler et revisser ...

Et ensuite je décale de ce centre jusqu'à avoir 180° 

Exemple : si je prends 1509 en valeurs centrale jevais tester min max en -1000 +1000   => 509   2509 et en fonction de l'angle total ajuster genre 609 2409...


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 ! 

 

Les réalisations de Mike118  

 

 

 


#58 Oracid

Oracid

    Pilier du forum

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

Posté 01 novembre 2019 - 03:39

Le but de ce genre de fonction c'est qu'en fait tu l'appelle pour tous les moteurs tout le temps et en fonction de ta config ça inverse ou pas le moteur sans que tu ais à réfléchir à chaque fois ...

Oui, bien sûr ! Dans le cas de mon quadrupède il est intéressant d'associer un paramètre à chaque servo.

Alors, oui ! J'ai suivi la démarche inverse. J'ai d'abord aligné le 0° et le 180°, puis par calcul, déterminé le point milieu.
Je vais faire comme tu dis pour voir ce que ça donne.

#59 Oracid

Oracid

    Pilier du forum

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

Posté 01 novembre 2019 - 04:17

Un grand merci, Myke ! Cela fonctionne parfaitement.

Seul petit inconvénient, il faut Mapper les microsecondes en degrés.
Car après avoir trouver le point milieu avec writeMicoseconds, l'utilisation de write(90) n'est pas bon, mais ce n'est pas vraiment un problème.
Une légère vibration du servo à 180°, mais bon, comme déjà dit, c'est un SG90.

Voici mon code.
 
// Calibration d'un servo - 01/11/2019
// Déterminer d'abord le point milieu, ici 1560.
// Puis, à partir du point milieu, déterminer le min et le max
// Pas de différence sur pins PWM, non PWM et Analogic.
// Fonctionne très bien !

#include <Servo.h>
Servo S1;
int S1Mid=1560, S1Min=700,  S1Max=2600;

void setup() {
  Serial.begin(9600);
  pinMode(0,INPUT_PULLUP); //start button
  pinMode(A1, OUTPUT);
  
  S1.attach(A1,S1Min,S1Max); S1.writeMicroseconds(S1Mid);

  while( digitalRead(0) ); // waiting for start button pressed
}

void loop(){
  for(int x=0;x<=S1Mid;x=x+15)    { S1.writeMicroseconds(x);  delay(5); } delay(500);
  for(int x=S1Mid;x<=S1Max;x=x+15){ S1.writeMicroseconds(x);  delay(5); } delay(500);
  for(int x=S1Max;x>=S1Mid;x=x-15){ S1.writeMicroseconds(x);  delay(5); } delay(500);
  for(int x=S1Mid;x>=0;x=x-15)    { S1.writeMicroseconds(x);  delay(5); } delay(500);
}


#60 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 8 663 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é 01 novembre 2019 - 07:52

Hum normalement tu devrais pouvoir utiliser le servo.write(90) à condition que la valeur mid soit bien au milieu du min et max ... 

Dans ton cas il s'agit c'est la valeur 1550 qui est bien au milieu de 700 et 2600 ...  tu as un décalage entre 1550 et 1560 ... 

 

Donc c'est pour ça que c'est pas au milieu...

 

De plus je me dis que si tu as un peu de vibration du côté du 180 c'est qu'il faut peut être choisir un cran de servomoteur en moins ... 
Décale le palonnier du servo d'un cran de sorte à ce que le 180° soit avec une valeur moins élevée ...


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 ! 

 

Les réalisations de Mike118  

 

 

 





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

0 members, 0 guests, 0 anonymous users