sot-talos-balance  2.0.5
Collection of dynamic-graph entities aimed at implementing balance control on talos.
appli_COMTraj.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 
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
13 
14 robot.timeStep = robot.device.getTimeStep()
15 dt = robot.timeStep
16 robot.comTrajGen = create_com_trajectory_generator(dt, robot)
17 
18 # --- COM
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
23 
24 # --- Parameter Server
25 robot.param_server = create_parameter_server(param_server_conf, dt)
26 
27 # --- Control Manager
28 robot.cm = create_ctrl_manager(cm_conf, dt, robot_name="robot")
29 robot.cm.addCtrlMode("sot_input")
30 robot.cm.setCtrlMode("all", "sot_input")
31 
32 # --- CONTACTS
33 # define contactLF and contactRF
34 robot.contactLF = MetaTaskKine6d(
35  "contactLF", robot.dynamic, "LF", robot.OperationalPointsMap["left-ankle"]
36 )
37 robot.contactLF.feature.frame("desired")
38 robot.contactLF.gain.setConstant(100)
39 robot.contactLF.keep()
40 locals()["contactLF"] = robot.contactLF
41 
42 robot.contactRF = MetaTaskKine6d(
43  "contactRF", robot.dynamic, "RF", robot.OperationalPointsMap["right-ankle"]
44 )
45 robot.contactRF.feature.frame("desired")
46 robot.contactRF.gain.setConstant(100)
47 robot.contactRF.keep()
48 locals()["contactRF"] = robot.contactRF
49 
50 robot.sot = SOT("sot")
51 robot.sot.setSize(robot.dynamic.getDimension())
52 
53 # --- Plug SOT control to device through control manager
54 plug(robot.sot.control, robot.cm.ctrl_sot_input)
55 plug(robot.cm.u_safe, robot.device.control)
56 
57 plug(robot.comTrajGen.x, robot.taskCom.featureDes.errorIN)
58 
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)
sot_talos_balance.create_entities_utils.create_ctrl_manager
def create_ctrl_manager(conf, dt, robot_name="robot")
Definition: create_entities_utils.py:341
create_entities_utils
sot_talos_balance.create_entities_utils.create_com_trajectory_generator
def create_com_trajectory_generator(dt, robot)
Definition: create_entities_utils.py:120
sot_talos_balance.create_entities_utils.create_parameter_server
def create_parameter_server(conf, dt, robot_name="robot")
Definition: create_entities_utils.py:619