From 6ebb0f9923a1b10310ddd7874068ff0cb571184e Mon Sep 17 00:00:00 2001
From: Mansard <nmansard@laas.fr>
Date: Thu, 17 Jan 2013 17:49:38 +0100
Subject: [PATCH] Moved to python/tools.

---
 python/dyn2openhrp.py    | 115 -------------------------------
 python/replay.py         | 141 ---------------------------------------
 python/replay_dot_pos.py | 121 ---------------------------------
 3 files changed, 377 deletions(-)
 delete mode 100644 python/dyn2openhrp.py
 delete mode 100644 python/replay.py
 delete mode 100644 python/replay_dot_pos.py

diff --git a/python/dyn2openhrp.py b/python/dyn2openhrp.py
deleted file mode 100644
index 4762d96..0000000
--- a/python/dyn2openhrp.py
+++ /dev/null
@@ -1,115 +0,0 @@
-# This is for HRP2-14 only. Define the variable q as the
-# current pose, and display it under the shape of a project OpenHRP.
-
-
-#import random
-#q=[random.random() for i in range(36)]
-#q=dyn.position.value
-q=[0, 0, 0.6487, 0, 0, 0, 0, 0, -0.453786, 0.872665, -0.418879, 0, 0, 0, -0.453786, 0.872665, -0.418879, 0, 0, 0, 0, 0, 0.261799, -0.174533, 0, -1.3, 0, -0.5, 0.174533, 0.261799, 0.174533, 0, -1.3, 0, -0.5, 0.174533 ]
-
-
-
-
-from dynamic_graph import plug
-from dynamic_graph.sot.core import *
-from dynamic_graph.sot.core.math_small_entities import Derivator_of_Matrix
-from dynamic_graph.sot.dynamics import *
-from dynamic_graph.sot.dyninv import *
-import dynamic_graph.script_shortcuts
-import math
-
-# --- Conversion
-
-jointNames = ("RLEG_JOINT0",
-"RLEG_JOINT1",
-"RLEG_JOINT2",
-"RLEG_JOINT3",
-"RLEG_JOINT4",
-"RLEG_JOINT5",
-"LLEG_JOINT0",
-"LLEG_JOINT1",
-"LLEG_JOINT2",
-"LLEG_JOINT3",
-"LLEG_JOINT4",
-"LLEG_JOINT5",
-"CHEST_JOINT0",
-"CHEST_JOINT1",
-"HEAD_JOINT0",
-"HEAD_JOINT1",
-"RARM_JOINT0",
-"RARM_JOINT1",
-"RARM_JOINT2",
-"RARM_JOINT3",
-"RARM_JOINT4",
-"RARM_JOINT5",
-"RARM_JOINT6",
-"LARM_JOINT0",
-"LARM_JOINT1",
-"LARM_JOINT2",
-"LARM_JOINT3",
-"LARM_JOINT4",
-"LARM_JOINT5",
-"LARM_JOINT6")
-
-
-pattern = "<property name=\"%s.angle\" value=\"%f\"/>"
-
-for i in range(len(q)-6):
-    print pattern % (jointNames[i],q[i+6])
-
-
-toUT=PoseRollPitchYawToPoseUTheta('toUT')
-#plug(dyn.position,toUT.sin)
-toUT.sin.value = tuple(q[0:6])
-toUT.sout.recompute(1)
-u=toUT.sout.value[3:6]
-theta=math.sqrt(sum(v*v for v in u))
-if theta>1e-4:
-    (ux,uy,uz)=[v/theta for v in u]
-else:
-    theta=0
-    (ux,uy,uz)=[0,0,0]
-
-print "<property name=\"WAIST.translation\" value=\"%f %f %f\"/>" % (q[0],q[1],q[2])
-print "<property name=\"WAIST.angle\" value=\"0\"/>"
-print "<property name=\"WAIST.rotation\" value=\"%f %f %f %f\"/>" % (ux, uy, uz, theta)
-
-bushJointNames = ("RLEG_BUSH_ROLL","RLEG_BUSH_PITCH","RLEG_BUSH_Z",
-"LLEG_BUSH_ROLL","LLEG_BUSH_PITCH","LLEG_BUSH_Z")
-for i in range(len(bushJointNames)):
-    print pattern % (bushJointNames[i],0)
-
-
-
-
-print " <property name=\"RHAND_JOINT4.angle\" value=\"0.0 \"/>"
-print " <property name=\"RHAND_JOINT1.angle\" value=\"0.0 \"/>"
-print " <property name=\"RHAND_JOINT3.angle\" value=\"0.0 \"/>"
-print " <property name=\"RHAND_JOINT0.angle\" value=\"0.0 \"/>"
-print " <property name=\"RHAND_JOINT2.angle\" value=\"0.0 \"/>"
-print " <property name=\"LHAND_JOINT2.angle\" value=\"0.0 \"/>"
-print " <property name=\"LHAND_JOINT1.angle\" value=\"0.0 \"/>"
-print " <property name=\"LHAND_JOINT4.angle\" value=\"0.0 \"/>"
-print " <property name=\"LHAND_JOINT0.angle\" value=\"0.0 \"/>"
-print " <property name=\"LHAND_JOINT3.angle\" value=\"0.0 \"/>"
-print   ""
-print " <property name=\"setupDirectory\" value=\"/opt/grx3.0/HRP2LAAS/bin\"/>"
-print " <property name=\"imageProcessTime\" value=\"0.033\"/>"
-print " <property name=\"imageProcessor\" value=\"\"/>"
-print " <property name=\"controller\" value=\"HRP2LAASControllerFactory\"/>"
-print " <property name=\"isRobot\" value=\"true\"/>"
-print " <property name=\"controlTime\" value=\"0.0010\"/>"
-print " <property name=\"setupCommand\" value=\"HRP2Controller$(BIN_SFX)\"/>"
-
-
-
-#import robotviewer
-#viewer = robotviewer.client('XML-RPC')
-#viewer.updateElementConfig('hrp',[float(val) for val in q]+10*[0.0])
-
-
-
-posinit=""
-for v in q[6:]:
-    posinit+=str(v*180/math.pi)+" "
-print "seq.sendMsg(\":joint-angles \"+\""   + posinit + "\"+\"   0 0 0 0 0 0 0 0 0 0  2.5\")"
diff --git a/python/replay.py b/python/replay.py
deleted file mode 100644
index 5892732..0000000
--- a/python/replay.py
+++ /dev/null
@@ -1,141 +0,0 @@
-'''
- This version does not use the free floating position for the 'base' of the robot,
- A thread is used to display, then, 'go', 'stop', 'next' are available
- it relies completely on the outputs of dyn_position
-     Use it as:
-           py replay.py dyn_position.dat
-           and then: 'go'
-Author: O. Ramos - LAAS/CNRS
-'''
-
-from numpy import *
-from dynamic_graph.script_shortcuts import optionalparentheses
-import sys
-from optparse import OptionParser
-import time
-
-
-
-usage = "usage: py replay.py [options] args"
-parser = OptionParser(usage=usage)
-parser.add_option("-p", dest="prefix", help="prefix of the file to read, under the shape /path/prefix_ or prefix only (no / no _) to implicit /tmp/prefix_ .", default="dyn")
-parser.add_option("-N", dest="frequency", help="Nominal frequency of the robot play, %default Hz by default.", default='200', type=int)
-parser.add_option("-d", dest="delayTime", help="Delay between to images sent to robot viewer, default %default. Give auto to automatic estimation.", default="0")
-parser.add_option("-s", dest="server", help="Name of server (CORBA or XML-RPC). Default is %default", default="XML-RPC")
-parser.add_option("-r", dest="size", help="Robot size if file verification is needed.", default="-1", type=int)
-parser.add_option("-n", dest="iter", help="Number of iteration to play.", default="-1", type=int)
-parser.add_option("-z", dest="decimate", help="percentage of frame to use, should be <1", default="1", type=float)
-parser.add_option("-R", dest="robotName", help="Robot on which the simulation is replayed. Default is %default", default="hrp2")
-(options, args) = parser.parse_args()
-parser.print_help()
-print '\n -------------------------------------------------------------------------'
-
-
-prefix = options.prefix
-if len(prefix.split('/'))==1 and len(prefix.split('_'))==1:
-    prefix='/tmp/'+prefix+'_'
-robotSize = options.size
-nbIter=options.iter
-decimate=options.decimate
-if( options.delayTime=="auto"): delayTime=0
-else: delayTime=float(options.delayTime)
-
-#------------------------------------------------------
-# Try to read the input file, if possible
-try:
-    fileName = prefix+'position.dat'
-    file_dyn_position = open(fileName,'r')       # Open the file
-except:
-    print "Non valid input file ",fileName
-    sys.exit(0)
-
-
-#------------------------------------------------------
-# Initialize robotviewer, if possible
-try:
-    import robotviewer
-    clt = robotviewer.client(options.server)
-except:
-    print "No robot viewer, sorry."
-    sys.exit(0)
-
-
-#-----------------------------------------------------
-nbImage=0
-lastImage=0
-robotTime = 2
-hq=[]
-
-
-def inc():
-
-    global robotTime, q, hq, robotSize, nbImage, lastImage, decimate
-    while True:
-        pos_angles = [float(val) for val in  file_dyn_position.readline().split()[1:] ]
-        if len(pos_angles)==0:
-            print " -- File reading completed --"
-            return False
-        if robotSize==-1:
-            robotSize=len(pos_angles)
-            print "Robot size estimated to ",robotSize
-        if len(pos_angles)==robotSize: break
-
-    robotTime += 1
-    if robotTime%1000==0: print "\nTime: " + str(robotTime)
-
-    # Add 10 values for the hand DOFs for HRP2
-    if options.robotName=="hrp2": pos_angles += 10*[0.0]
-
-    # Plot only if the values are not 'NaN'
-    nbImage+=decimate
-    if floor(nbImage)>lastImage:
-        lastImage=floor(nbImage)
-        if reduce(lambda x,y: x and y,[isnan(q) for q in pos_angles]):
-            print ' -- Not displaying: nan positions --'
-        else:
-            clt.updateElementConfig('hrp',pos_angles)
-            q = pos_angles
-            hq.append( q )
-
-    return True
-
-def hlp_showNumber():
-    global showNumber
-    if showNumber: showNumber=False
-    else:          showNumber=True
-showNumber=False
-
-#-----------------------------------------------------
-@optionalparentheses
-def n():
-    inc()
-def incIter(dummy,nb):
-    for i in range(nb): n()
-setattr(n.__class__,'__add__',incIter)
-
-
-
-
-t0=time.time()
-iterNum=0
-while inc():
-    if nbIter>0 and iterNum>nbIter: break
-    iterNum+=1
-    time.sleep( delayTime )
-
-t1=time.time()
-dt=t1-t0
-dtn=(iterNum+0.0)/options.frequency
-
-if options.delayTime=="auto":
-    print "Duration: ",dt," s"
-    print "Nominal time :",dtn
-    if( abs(dt-dtn)/iterNum < 1e-3 ):
-        print "Non pertinent delay"
-    else:
-        if dt>dtn:
-            print "use decimate -z ",dtn/dt
-        else:
-            print "use delay time -d ",(dtn-dt)/iterNum
-
-
diff --git a/python/replay_dot_pos.py b/python/replay_dot_pos.py
deleted file mode 100644
index 7fb3f69..0000000
--- a/python/replay_dot_pos.py
+++ /dev/null
@@ -1,121 +0,0 @@
-'''
- This version does not use the free floating position for the 'base' of the robot,
- A thread is used to display, then, 'go', 'stop', 'next' are available
- it relies completely on the outputs of dyn_position
-     Use it as:
-           py replay.py dyn_position.dat
-           and then: 'go'
-Author: O. Ramos - LAAS/CNRS
-'''
-
-#sys.path.append('/home/nmansard/src/hpp2/sot-dyninv/python')
-from numpy import *
-from dynamic_graph.script_shortcuts import optionalparentheses
-import sys
-
-
-#------------------------------------------------------
-# Try to read the input file, if possible
-try:
-    #fileName = sys.argv[1]                       # Input File ([2] if using 'py', [1] if 'python')
-    prefix='mocap/'
-    fileName = prefix+'yoganmsd.pos'
-    file_dyn_position = open(fileName,'r')       # Open the file
-#    fileffName = prefix+'ffposition.dat'
-#    file_dyn_ffposition = open(fileffName,'r')       # Open the file
-except:
-    print "Please, specify the input file"
-    sys.exit(0)
-
-
-#------------------------------------------------------
-# Initialize robotviewer, if possible
-try:
-    import robotviewer
-    clt = robotviewer.client('XML-RPC')
-except:
-    print "No robot viewer, sorry."
-    sys.exit(0)
-
-
-#-----------------------------------------------------
-# Main Loop
-robotTime = 1
-hq=[]
-def inc():
-
-    global robotTime, q, hq
-    while True:
-        pos_angles = file_dyn_position.readline()
-        if len(pos_angles)==0: break
-        print float(pos_angles.split()[0])
-        if int(round(float(pos_angles.split()[0])/0.005))==robotTime:
-            print "OK ", int(float(pos_angles.split()[0])/0.005),robotTime
-            pos_angles = pos_angles.split()[1:]
-            pos_angles = 6*[0,] + [float(val) for val in pos_angles]
-            break
-        else:
-            print "nonono ",int(round(float(pos_angles.split()[0])/0.005)),robotTime
-            sys.exit(0)
-#    while True:
-#        pos_ffangles = file_dyn_ffposition.readline()
-#        if len(pos_ffangles)==0: break
-#        if float(pos_ffangles.split()[0])==robotTime:
-#            pos_angles[0:6] = pos_ffangles.split()[1:]
-#            break
-
-    if len(pos_angles)==0:
-        stop()
-        print " -- File reading completed --"
-        return
-    else:
-        robotTime += 1
-
-        if robotTime%1000==0: print "\nTime: " + str(robotTime)
-
-        # Add 10 values for the hand DOFs
-        #pos_angles += 10*[0.0]
-
-        # Plot only if the values are not 'NaN'
-        plot=1
-        for qi in pos_angles:
-            if isnan(qi):
-                plot=0
-                print ' -- Not displaying: nan positions --'
-        if plot==1:
-            clt.updateElementConfig('hrp',pos_angles)
-            q = pos_angles
-            hq.append( q )
-
-    global showNumber
-    if showNumber:
-        print 't = ', robotTime
-    time.sleep(.005)
-
-
-def hlp_showNumber():
-    global showNumber
-    if showNumber: showNumber=False
-    else:          showNumber=True
-showNumber=False
-
-#-----------------------------------------------------
-# Thread
-
-from ThreadInterruptibleLoop import *
-@loopInThread
-def loop():
-    inc()
-runner=loop()
-
-@optionalparentheses
-def go(): runner.play()
-@optionalparentheses
-def stop(): runner.pause()
-@optionalparentheses
-def next(): runner.once()
-@optionalparentheses
-def n(): hlp_showNumber()
-
-
-go()
-- 
GitLab