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