2 from dynamic_graph
import plug
3 from dynamic_graph.sot.core
import SOT
4 from dynamic_graph.sot.core.matrix_util
import matrixToTuple
5 from dynamic_graph.sot.core.meta_tasks_kine
import (
10 from dynamic_graph.tracer_real_time
import TracerRealTime
14 robot.timeStep = robot.device.getTimeStep()
21 Kp_dcm = [500.0, 500.0, 500.0]
22 Ki_dcm = [1.0, 1.0, 0.0]
24 Kp_dcm, [0.0] * 3, dt, robot, robot.estimator.dcm
28 Kp_adm = [20.0, 10.0, 0.0]
33 robot.contactLF = MetaTaskKine6d(
34 "contactLF", robot.dynamic,
"LF", robot.OperationalPointsMap[
"left-ankle"]
36 robot.contactLF.feature.frame(
"desired")
37 robot.contactLF.gain.setConstant(300)
38 robot.contactLF.keep()
39 locals()[
"contactLF"] = robot.contactLF
41 robot.contactRF = MetaTaskKine6d(
42 "contactRF", robot.dynamic,
"RF", robot.OperationalPointsMap[
"right-ankle"]
44 robot.contactRF.feature.frame(
"desired")
45 robot.contactRF.gain.setConstant(300)
46 robot.contactRF.keep()
47 locals()[
"contactRF"] = robot.contactRF
50 robot.taskCom = MetaTaskKineCom(robot.dynamic)
51 robot.dynamic.com.recompute(0)
52 plug(robot.com_admittance_control.comRef, robot.taskCom.featureDes.errorIN)
53 plug(robot.com_admittance_control.dcomRef, robot.taskCom.featureDes.errordotIN)
54 robot.taskCom.task.controlGain.value = 0
55 robot.taskCom.task.setWithDerivative(
True)
57 robot.sot = SOT(
"sot")
58 robot.sot.setSize(robot.dynamic.getDimension())
59 plug(robot.sot.control, robot.device.control)
61 robot.sot.push(robot.contactRF.task.name)
62 robot.sot.push(robot.contactLF.task.name)
63 robot.sot.push(robot.taskCom.task.name)
64 robot.device.control.recompute(0)
67 robot.tracer = TracerRealTime(
"zmp_tracer")
68 robot.tracer.setBufferSize(80 * (2**20))
69 robot.tracer.open(
"/tmp",
"dg_",
".dat")
70 robot.device.after.addSignal(
"{0}.triger".format(robot.tracer.name))
71 robot.device.after.addSignal(
"{0}.zmpRef".format(robot.dcm_control.name))
72 robot.device.after.addSignal(
"{0}.zmp".format(robot.dynamic.name))
73 robot.device.after.addSignal(
74 "{0}.comRef".format(robot.com_admittance_control.name)
77 addTrace(robot.tracer, robot.dynamic,
"zmp")
78 addTrace(robot.tracer, robot.dcm_control,
"zmpRef")
79 addTrace(robot.tracer, robot.estimator,
"dcm")
80 addTrace(robot.tracer, robot.dynamic,
"com")
81 addTrace(robot.tracer, robot.com_admittance_control,
"comRef")