sot-talos-balance  2.0.5
Collection of dynamic-graph entities aimed at implementing balance control on talos.
appli_admittance_single_joint_velocity_based.py
Go to the documentation of this file.
1 # flake8: noqa
2 from dynamic_graph import plug
3 from dynamic_graph.sot.core import SOT
4 from dynamic_graph.sot.core.meta_tasks_kine import (
5  MetaTaskKine6d,
6  MetaTaskKineCom,
7  gotoNd,
8 )
9 
11  create_joint_admittance_controller,
12 )
13 from dynamic_graph.sot_talos_balance.meta_task_joint import MetaTaskKineJoint
14 
15 N_JOINTS = 32
16 N_CONFIG = N_JOINTS + 6
17 
18 robot.timeStep = robot.device.getTimeStep()
19 dt = robot.timeStep
20 
21 JOINT = 25
22 QJOINT = JOINT + 6
23 
24 target = -10.0
25 
26 # --- Joint
27 robot.taskJoint = MetaTaskKineJoint(robot.dynamic, QJOINT)
28 robot.taskJoint.featureDes.errorIN.value = [0.0]
29 robot.taskJoint.task.controlGain.value = 0
30 robot.taskJoint.task.setWithDerivative(True)
31 
32 # --- Admittance controller
33 Kp = [0.1]
34 robot.admittance_control = create_joint_admittance_controller(JOINT, Kp, dt, robot)
35 plug(robot.admittance_control.qRef, robot.taskJoint.featureDes.errorIN)
36 plug(robot.admittance_control.dqRef, robot.taskJoint.featureDes.errordotIN)
37 
38 # --- CONTACTS
39 # define contactLF and contactRF
40 robot.contactLF = MetaTaskKine6d(
41  "contactLF", robot.dynamic, "LF", robot.OperationalPointsMap["left-ankle"]
42 )
43 robot.contactLF.feature.frame("desired")
44 robot.contactLF.gain.setConstant(100)
45 robot.contactLF.keep()
46 locals()["contactLF"] = robot.contactLF
47 
48 robot.contactRF = MetaTaskKine6d(
49  "contactRF", robot.dynamic, "RF", robot.OperationalPointsMap["right-ankle"]
50 )
51 robot.contactRF.feature.frame("desired")
52 robot.contactRF.gain.setConstant(100)
53 robot.contactRF.keep()
54 locals()["contactRF"] = robot.contactRF
55 
56 robot.sot = SOT("sot")
57 robot.sot.setSize(robot.dynamic.getDimension())
58 plug(robot.sot.control, robot.device.control)
59 
60 robot.sot.push(robot.contactRF.task.name)
61 robot.sot.push(robot.contactLF.task.name)
62 robot.device.control.recompute(0)
create_entities_utils
sot_talos_balance.create_entities_utils.create_joint_admittance_controller
def create_joint_admittance_controller(joint, Kp, dt, robot, filter=False)
Definition: create_entities_utils.py:217