Expérimentations pour valider le contrôleur déporté

Les manips. sont sur le CD3.

La manip du suivi

Tâche-Robot

  • ProcMove = manip suivi articulaire en embarque (dt= 10 ms)
  • ProcDep = manip V1 deportee (dt= 10 ms)
  • ProcDep2 = manip V2 deportee (dt= 10 ms)

Se connecter à Bip

Suivre les instructions de BipUse.

Lancer le suivi en deporté

$ rlogin akila

$ cd $ROBOTIQUE/Robots/Bipede/Control/Host // les trajs sont dans datas/trajectoires/...

$ ./servtest

===========================================
 Manipulation : BIP 2000 - INRIALPES
===========================================

 Est-ce que vous allez essayer l'init automatique ? (o/n) : o

     ===>> S'ASSURER que les genoux ne soient pas en butees.


-> Entrez le nom de fichier de la trajectoire 1 : V1/genou.traj

================================================================
La version est            : V1
Le nb d'articulations est : 15
Le nb de points est       : 5
Le nb de cycles est       : 2
Le pt de rebouclage est   : 2
Le temps d'atteinte pt 0  : 3.000000
================================================================
Entrez la période d'échantillonnage de la Tache Robot : 0.01

dt = 0.010000

INITIALISATION AUTOMATIQUE
============================
opened socket as fd (4) on port (5001) for dgram i/o
Ok entree Boucle

!!! On doit alors lancer le client ProcDep2 sur kriek !!!

bipInitAuto : Open Bipede driver...ok
Joints Right  = -0.154024 0.213144 0.206977 0.041305
Joints Left   = 0.007749 -0.000509 0.206007 0.000833
Joints Pelvis = 0.005411 -0.002172 -0.000378 0.002449 0.001098
Joints Trunc  = -0.000157 -0.005316
Offset Force Right   = 11.227417 40.319824 -12.579346
Offset Force Left    = -9.783936 58.715820 -42.596436
L'init automatique vous semble t'il correct ? (o/n)o

!!! Enlever l'arret d'urgence avant de repondre !!!

bipInitAutomatique : Fin.
--- Debut Demo Bip ------------------------------------------------------------
 traj. avec 5 points
Trajectoire point 0 -> Cycle 0 Duree 3.000000
Trajectoire point 1 -> Cycle 0 Duree 3.000000
Trajectoire point 2 -> Cycle 0 Duree 3.000000
Trajectoire point 3 -> Cycle 0 Duree 3.000000
Trajectoire point 4 -> Cycle 0 Duree 3.000000
cycle 1 termine
Trajectoire point 0 -> Cycle 1 Duree 3.000000
Trajectoire point 1 -> Cycle 1 Duree 3.000000
Trajectoire point 2 -> Cycle 1 Duree 3.000000
Trajectoire point 3 -> Cycle 1 Duree 3.000000
Trajectoire point 4 -> Cycle 1 Duree 3.000000
cycle 1 termine
Fin du suivi de trajectoire...
--- Fin Demo Bip --------------------------------------------------------------

EndTraj active ::  FIN DE TRAJECTOIRE !!!!

La Sauvegarde des données

  • coté kriek: /home/ppcuser/Jarde/time.dat (temps A/R + loi de cmd deportée)
  • $ROBOTIQUE/Robots/Bipede/Control/Host/datas/Sauvegarde/*.data

  • Code Scilab d'analyse dans : datas/CalibPotars  datas/Extraction  datas/Frottements

  • Visu sous Scilab: cd  $ROBOTIQUE/Robots/Bipede/Control/Host/datas/Extraction
    • exec extract.sce : trace toutes les mesures (articulations, erreurs, forces, consignes tension,...)
    • plot(q(:,1)-qd(:,1))
    • exec comp.sce : trace q et qd pour chaque axe
    • exec cdp.sce : pour la pose au sol = reconstitution de la projection du CdM en utilisant les q et du CdP par pied en utilisant les mesures capteurs, et reconstitution du vecteur d'etat a 21 ddl.

Les trajectoires

  • $ROBOTIQUE/Robots/Bipede/Control/Host/datas/V1 // postures en l'air
    • init.traj
    • course.traj
    • genou.traj
    • mvt.traj

  • $ROBOTIQUE/Robots/Bipede/Control/Host/datas/V0/ // postures "Hanovre"
    • p0.traj // Posture Initiale
    • p1.traj // Posture pied légèrement sur le coté
    • p2.traj // Posture pied sur le coté
    • p5.traj // Posture pied en avant
    • p6.traj // Posture Flamant Rose
    • p01.traj // Petit balayage latéral horizontal du pied
    • p02.traj // Grand balayage latéral horizontal du pied
    • p65.traj // Mvt dans le plan sagittal du pied
    • p62.traj // Mvt latéral du pied

pij.traj est la trajectoire permettant d'aller de pi à pj et de revenir à pi.

  • $ROBOTIQUE/Robots/Bipede/Control/Host/datas/alibTraj/ //mvt articulation par articulation en balayant le max

Evaluation des frottements

Pour chaque manip, il faut veiller à positionner les articulations de manière à ce que la gravité intervienne le moins possible. Le logiciel bipFriction a été modifié et intègre désormais la compensation de gravité.

On utilise bipFriction sur kriek.

Evaluation des frottements secs pour tout les moteurs ? (o/n)n
sens positif ou negatif ? (p/n)n
sur quelle moteur ?4
Please select initialisation mode: 
  m: manual
  a: automatic

Prog intéractif et écrit les données dans /home/ppcuser/Jarde/Frot_secs/

Le 19/01/04 on trouve:

axes frot pos frot neg
0 0.5 -0.5
1 0.48 -0.45
2 0.35 -0.33
3 0.54 -0.51
4 1.2 -1.36
5 0.54 -0.54
6 0.33 -0.24
7 0.5 -0.48
8 0.6 -0.48
9 0.66 -0.51
10 0.75 -0.60
11 0.6 -0.51
12 0.78...0.6 -0.87...-0.6
13 1.2 -1.2
14 1.11 -1.11

Pour le soft, on prend des valeurs sous-compensées.

Réglage des asservissements

cd $ROBOTIQUE/Robots/Bipede/Control/Host/Proc

  • ConvVar.h = frottements secs
  • CmdVar.h = gains PD
  • cd ..; rm servtest; make

Avec trajectoires de CalibTraj/ (+ vitesse 2 fois plus rapide) on fait le réglage en l'air (offset/KP/MU=erreur+,erreur-)

  • jambe droite:
    • cheville sagitalle: 0.4,0.4/400,400/0.7,0.7 = 7.10-3,-7.10-3
    • cheville frontale : ... = 8.10-3,-4.10-3
    • genou : 0.35/2000/0.05 = 2.10-3,-5.10-3
    • hanche sagitalle : 0.5/1500/0.05 = 6.10-3,-8.10-3

  • jambe gauche:
    • cheville sagitalle: 1.1,-1.2,0.4,-0.4/700/0.05 = 15.10-3/-13.10-3
    • cheville frontale : ... = 9.10-3/-5.10-3
    • genou : 0.3,-0.25/2000/0.05 = 3.10-3,-3.10-3
    • hanche sagitalle : 0.5/1500/0.05 = 9.10-3,-4.10-3

  • hanches:
    • droite frontale : 0.6,-0.5/7000/0.0 = 7.10-3, -5.10-3
    • droite verticale : 0.6,-0.5/2700/0.5 = 3.10-3, -2.10-3
    • gauche frontale : 0.7,-0.55/7000/0.0 = 5.10-3, -5.10-3
    • gauche verticale : 0.6,-0.5/2700/0.5 = 2.10-3, -3.10-3

  • tronc:
    • vertical : 0.6/3000/0.05 = 4.10-3, -6.10-3
    • frontal : 1.2,1.1/3700,3700/0.05,0.05 = 3.10-3,-4.10-3
    • sagital : ... = 4.10-3,-5.10-3

Les trajectoires V0

Reprise et Vérification du zéro mécanique.

Les trajectoires d'Hanovre ne sont pas stables en frontal (le robot tombe sur le coté de la jambe en l'air). On doit rajouter 4/100 de radians sur la cheville droite d'appui en frontal. (voir fichiers de modifs conv.c)

Changement du système de pose (ok)

Calcul par Sébastien d'autres trajectoires pour débogguer:

  • sd0.traj: pose sur le pied droit avec le pied gauche horizontal (sans tenir compte du décalage)
  • sg0.traj: pose sur le pied gauche avec le pied droit horizontal (sans tenir compte du décalage)
  • sds.traj: pose de Bip en double support (sans tenir compte du décalage)

Identification plus fine des frottements

En jouant le jeu de trajectoires trajectoires/Friction/, on peut identifier (ident1.sci et ident2.sci) et generer les frottements Secs (include/ bipStaticFrictions.h) et Visqueux (include/bipViscousFrictions.h).

Manips Commentaires
04_04_29/Manip-00 b. o. genou droit sans frt visqueux
04_04_29/Manip-01 b. o. genou droit avec frt visqueux


-- RogerPissard - 29 Apr 2004

Topic attachments
I Attachment Action Size Date Who Comment
conv.cc conv.c manage 1 K 26 Mar 2004 - 12:54 RogerPissard lecture/modification/ecriture d'une trajectoire
Topic revision: r10 - 17 Jul 2007, SorayaArias
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding SedWiki? Send feedback