sot-talos-balance  2.0.5
Collection of dynamic-graph entities aimed at implementing balance control on talos.
meta_task_joint.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.operator import Selec_of_vector
5 from numpy import identity
6 
7 
8 class MetaTaskJoint(object):
9  def __init__(self, dyn, joint, name=None):
10  if name is None:
11  name = "joint" + str(joint)
12  self.dyn = dyn
13  self.name = name
14  self.joint = joint
15 
16  self.feature = FeatureGeneric("feature" + name)
17  self.featureDes = FeatureGeneric("featureDes" + name)
18  self.gain = GainAdaptive("gain" + name)
19 
20  self.selec = Selec_of_vector("selec" + name)
21  self.selec.selec(joint, joint + 1)
22  plug(dyn.position, self.selec.sin)
23  plug(self.selec.sout, self.feature.errorIN)
24 
25  robotDim = len(dyn.position.value)
26  Id = identity(robotDim)
27  J = Id[joint : joint + 1]
28  self.feature.jacobianIN.value = matrixToTuple(J)
29  self.feature.setReference(self.featureDes.name)
30 
31  def plugTask(self):
32  self.task.add(self.feature.name)
33  plug(self.task.error, self.gain.error)
34  plug(self.gain.gain, self.task.controlGain)
35 
36  @property
37  def ref(self):
38  return self.featureDes.errorIN.value
39 
40  @ref.setter
41  def ref(self, v):
42  self.featureDes.errorIN.value = v
43 
44 
46  def __init__(self, dyn, joint, name=None):
47  MetaTaskJoint.__init__(self, dyn, joint, name)
48  self.task = Task("task" + self.name)
49  self.plugTask()
sot_talos_balance.meta_task_joint.MetaTaskKineJoint
Definition: meta_task_joint.py:45
sot_talos_balance.meta_task_joint.MetaTaskJoint.name
name
Definition: meta_task_joint.py:13
sot_talos_balance.meta_task_joint.MetaTaskJoint.selec
selec
Definition: meta_task_joint.py:20
sot_talos_balance.meta_task_joint.MetaTaskJoint.ref
def ref(self)
Definition: meta_task_joint.py:37
sot_talos_balance.meta_task_joint.MetaTaskJoint.gain
gain
Definition: meta_task_joint.py:18
sot_talos_balance.meta_task_joint.MetaTaskJoint
Definition: meta_task_joint.py:8
sot_talos_balance.meta_task_joint.MetaTaskJoint.plugTask
def plugTask(self)
Definition: meta_task_joint.py:31
sot_talos_balance.meta_task_joint.MetaTaskKineJoint.__init__
def __init__(self, dyn, joint, name=None)
Definition: meta_task_joint.py:46
sot_talos_balance.meta_task_joint.MetaTaskJoint.joint
joint
Definition: meta_task_joint.py:14
sot_talos_balance.meta_task_joint.MetaTaskKineJoint.task
task
Definition: meta_task_joint.py:48
sot_talos_balance.meta_task_joint.MetaTaskJoint.__init__
def __init__(self, dyn, joint, name=None)
Definition: meta_task_joint.py:9
sot_talos_balance.meta_task_joint.MetaTaskJoint.featureDes
featureDes
Definition: meta_task_joint.py:17
sot_talos_balance.meta_task_joint.MetaTaskJoint.dyn
dyn
Definition: meta_task_joint.py:12
sot_talos_balance.meta_task_joint.MetaTaskJoint.feature
feature
Definition: meta_task_joint.py:16