sot-talos-balance  2.0.5
Collection of dynamic-graph entities aimed at implementing balance control on talos.
meta_task_config.py
Go to the documentation of this file.
1 from dynamic_graph import plug
2 from dynamic_graph.sot.core import FeatureGeneric, GainAdaptive, Task
3 from dynamic_graph.sot.core.matrix_util import matrixToTuple
4 from dynamic_graph.sot.core.meta_task_6d import toFlags
5 from numpy import identity
6 
7 
8 class MetaTaskConfig(object):
9  def __init__(self, dyn, config=None, name="config"):
10  self.dyndyn = dyn
11  self.namename = name
12  self.configconfig = config
13 
14  self.featurefeature = FeatureGeneric("feature" + name)
15  self.featureDesfeatureDes = FeatureGeneric("featureDes" + name)
16  self.gaingain = GainAdaptive("gain" + name)
17 
18  plug(dyn.position, self.featurefeature.errorIN)
19  robotDim = dyn.getDimension()
20  self.featurefeature.jacobianIN.value = matrixToTuple(identity(robotDim))
21  self.featurefeature.setReference(self.featureDesfeatureDes.name)
22  if config is not None:
23  self.featurefeature.selec.value = toFlags(self.configconfig)
24 
25  def plugTask(self):
26  self.task.add(self.featurefeature.name)
27  plug(self.task.error, self.gaingain.error)
28  plug(self.gaingain.gain, self.task.controlGain)
29 
30  @property
31  def ref(self):
32  return self.featureDesfeatureDes.errorIN.value
33 
34  @ref.setter
35  def ref(self, v):
36  self.featureDesfeatureDes.errorIN.value = v
37 
38 
40  def __init__(self, dyn, config=None, name="config"):
41  MetaTaskConfig.__init__(self, dyn, config, name)
42  self.tasktask = Task("task" + name)
43  self.plugTaskplugTask()
def __init__(self, dyn, config=None, name="config")
def __init__(self, dyn, config=None, name="config")