2 from dynamic_graph
import plug
3 from dynamic_graph.sot.core
import SOT
4 from dynamic_graph.sot.core.meta_tasks_kine
import (
10 import dynamic_graph.sot_talos_balance.talos.control_manager_conf
as cm_conf
11 import dynamic_graph.sot_talos_balance.talos.parameter_server_conf
as param_server_conf
14 robot.timeStep = robot.device.getTimeStep()
19 robot.taskCom = MetaTaskKineCom(robot.dynamic)
20 robot.dynamic.com.recompute(0)
21 robot.taskCom.featureDes.errorIN.value = robot.dynamic.com.value
22 robot.taskCom.task.controlGain.value = 10
29 robot.cm.addCtrlMode(
"sot_input")
30 robot.cm.setCtrlMode(
"all",
"sot_input")
34 robot.contactLF = MetaTaskKine6d(
35 "contactLF", robot.dynamic,
"LF", robot.OperationalPointsMap[
"left-ankle"]
37 robot.contactLF.feature.frame(
"desired")
38 robot.contactLF.gain.setConstant(100)
39 robot.contactLF.keep()
40 locals()[
"contactLF"] = robot.contactLF
42 robot.contactRF = MetaTaskKine6d(
43 "contactRF", robot.dynamic,
"RF", robot.OperationalPointsMap[
"right-ankle"]
45 robot.contactRF.feature.frame(
"desired")
46 robot.contactRF.gain.setConstant(100)
47 robot.contactRF.keep()
48 locals()[
"contactRF"] = robot.contactRF
50 robot.sot = SOT(
"sot")
51 robot.sot.setSize(robot.dynamic.getDimension())
54 plug(robot.sot.control, robot.cm.ctrl_sot_input)
55 plug(robot.cm.u_safe, robot.device.control)
57 plug(robot.comTrajGen.x, robot.taskCom.featureDes.errorIN)
59 robot.sot.push(robot.contactRF.task.name)
60 robot.sot.push(robot.contactLF.task.name)
61 robot.sot.push(robot.taskCom.task.name)
62 robot.device.control.recompute(0)