3 from dynamic_graph
import plug
4 from dynamic_graph.sot.core
import SOT
5 from dynamic_graph.sot.core.meta_tasks_kine
import MetaTaskKine6d, MetaTaskKineCom
7 create_com_trajectory_generator,
9 create_parameter_server,
11 from dynamic_graph.sot_talos_balance.utils.sot_utils
import Bunch
15 import dynamic_graph.sot_talos_balance.talos.control_manager_conf
as param_server
18 conf.param_server = param_server
22 def main(robot, conf=None):
25 robot.timeStep = robot.device.getTimeStep()
27 NJ = robot.dimension - 7
31 robot.taskCom = MetaTaskKineCom(robot.dynamic)
32 robot.dynamic.com.recompute(0)
33 robot.taskCom.featureDes.errorIN.value = robot.dynamic.com.value
34 robot.taskCom.task.controlGain.value = 10
38 robot.contactLF = MetaTaskKine6d(
39 "contactLF", robot.dynamic,
"LF", robot.OperationalPointsMap[
"left-ankle"]
41 robot.contactLF.feature.frame(
"desired")
42 robot.contactLF.gain.setConstant(100)
43 robot.contactLF.keep()
44 locals()[
"contactLF"] = robot.contactLF
46 robot.contactRF = MetaTaskKine6d(
47 "contactRF", robot.dynamic,
"RF", robot.OperationalPointsMap[
"right-ankle"]
49 robot.contactRF.feature.frame(
"desired")
50 robot.contactRF.gain.setConstant(100)
51 robot.contactRF.keep()
52 locals()[
"contactRF"] = robot.contactRF
55 robot.sot = SOT(
"sot")
56 robot.sot.setSize(robot.dynamic.getDimension())
57 plug(robot.sot.control, robot.device.control)
59 robot.sot.push(robot.contactRF.task.name)
60 robot.sot.push(robot.taskCom.task.name)
61 robot.sot.push(robot.contactLF.task.name)
62 robot.device.control.recompute(0)