From 563be530ca30626a6f47788c4fc9bf0ffef747c5 Mon Sep 17 00:00:00 2001
From: Mansard <nmansard@laas.fr>
Date: Mon, 7 Nov 2011 17:01:42 +0100
Subject: [PATCH] Working version used for the novela.

---
 python/walktrans.py | 75 +++++++++++++++++++++++----------------------
 1 file changed, 38 insertions(+), 37 deletions(-)

diff --git a/python/walktrans.py b/python/walktrans.py
index 9f1700c..31137b8 100644
--- a/python/walktrans.py
+++ b/python/walktrans.py
@@ -1,3 +1,8 @@
+'''
+Walking transition: give an initial posture and final posture, the robot will
+make one step to go from one to the other.
+'''
+
 from dynamic_graph import plug
 from dynamic_graph.sot.core import *
 from dynamic_graph.sot.core.math_small_entities import Derivator_of_Matrix
@@ -214,16 +219,7 @@ plug(dyn.position,pg.position)
 plug(dyn.com,pg.com)
 pg.motorcontrol.value = robotDim*(0,)
 pg.zmppreviouscontroller.value = (0,0,0)
-
-# DEBUG
-plug(dyn.lf,pg.leftfootcurrentpos)
-plug(dyn.rf,pg.rightfootcurrentpos)
-
-print "Pose before init state: " ,dyn.position.value
-pg.initState()
-pg.initrightfootref.recompute(0)
-pg.initleftfootref.recompute(0)
-pg.initcomref.recompute(0)
+#pg.initState()
 
 # --- PG INIT FRAMES ---
 geom = Dynamic("geom")
@@ -262,7 +258,6 @@ plug(pg.zmpref,wa_zmp.sin2)
 pg.parseCmd(':SetZMPFrame world')
 plug(wa_zmp.sout,robot.zmp)
 
-
 # ---- TASKS -------------------------------------------------------------------
 
 # ---- WAIST TASK ---
@@ -278,9 +273,6 @@ waistReference=PoseRollPitchYawToMatrixHomo('waistReference')
 plug(waistReferenceVector.sout,waistReference.sin)
 plug(waistReference.sout,taskWaist.featureDes.position)
 
-taskWaist.feature.selec.value = '011100'
-taskWaist.task.controlGain.value = 5
-
 # --- TASK COM ---
 featureCom = FeatureGeneric('featureCom')
 plug(dyn.com,featureCom.errorIN)
@@ -311,10 +303,9 @@ plug(gainPosture.gain,taskPosture.controlGain)
 
 # --- TASK RIGHT FOOT
 # Task right hand
-
-plug(pg.rightfootref,taskRF.featureDes.position)
+#plug(pg.rightfootref,taskRF.featureDes.position)
 taskRF.task.controlGain.value = 5
-plug(pg.leftfootref,taskLF.featureDes.position)
+#plug(pg.leftfootref,taskLF.featureDes.position)
 taskLF.task.controlGain.value = 5
 
 # ---- SOT ---------------------------------------------------------------------
@@ -322,11 +313,6 @@ taskLF.task.controlGain.value = 5
 from dynamic_graph.sot.dyninv import SolverKine
 sot = SolverKine('sot')
 sot.setSize(robotDim)
-#sot.push(taskWaist.task.name)
-sot.push(taskRF.task.name)
-sot.push(taskLF.task.name)
-sot.push(taskCom.name)
-
 plug(sot.control,robot.control)
 
 # --- TRACER -----------------------------------------------------------------
@@ -345,34 +331,49 @@ tr.add('dyn.lf','l')
 
 tr.add('featureComDes.errorIN','comref')
 tr.add('dyn.com','com')
+tr.add(taskWaist.gain.name+'.gain','gainwaist')
 
 history = History(dyn,1)
 
 # --- RUN -----------------------------------------------------------------
 
-pg.parseCmd(":stepseq " + seqpart)
 featurePosture.selec.value = toFlags( range(6,36) )
 
-attime(300,lambda: sot.push(taskPosture.name),'Add Posture')
-attime(500,lambda: sot.rm(taskCom.name),'rm com')
-attime(1000,lambda: dump(),'dump!')
-attime(1000,lambda: sys.exit(),'Bye bye')
-
-#go()
-next()
-'''
-
 sot.clear()
-
 for task in [taskWaist, taskRF, taskLF]:
-    M = eye(4)
     task.feature.position.recompute(0)
-    M[0:2,3]  = array(task.feature.position.value)[0:2,3]
-    M[2,3]  = 0.105
-    task.ref = matrixToTuple(M)
+    task.feature.keep()
     task.feature.selec.value = '111111'
     sot.push(task.task.name)
 
+taskWaist.ref = matrixToTuple(eye(4))
+taskWaist.feature.selec.value = '111011'
+taskWaist.gain.setByPoint(18,0.1,0.005,0.8)
+
+attime(200
+       ,(lambda : sot.rm(taskWaist.task.name),'Rm waist')
+       ,(lambda : pg.initState(),'Init PG')
+       ,(lambda : pg.parseCmd(":stepseq " + seqpart),'Push step list')
+       ,(lambda : sot.push(taskCom.name),'Push COM')
+       ,(lambda : plug(pg.rightfootref,taskRF.featureDes.position),'Plug RF')
+       ,(lambda : plug(pg.leftfootref,taskLF.featureDes.position),'plug LF' )
+)
+
+
+#attime(700,lambda: sot.push(taskPosture.name),'Add Posture')
+#attime(900,lambda: sot.rm(taskCom.name),'rm com')
+#attime(1200,lambda: dump(),'dump!')
+#attime(1200,lambda: sys.exit(),'Bye bye')
+attime(1200,dump,stop)
+
+go()
+
+
+'''
+
+sot.clear()
+
+
 if 0:
     Mwref = eye(4)
     Mwref[0:2,3] = dyn.com.value[0:2]
-- 
GitLab