5 from dynamic_graph
import plug
6 from dynamic_graph.sot.core
import SOT
7 from dynamic_graph.sot.core.matrix_util
import matrixToTuple
8 from dynamic_graph.sot.core.meta_tasks_kine
import (
14 import dynamic_graph.sot_talos_balance.talos.parameter_server_conf
as param_server_conf
20 robot.timeStep = robot.device.getTimeStep()
25 robot.taskCom = MetaTaskKineCom(robot.dynamic)
26 robot.dynamic.com.recompute(0)
27 robot.taskCom.featureDes.errorIN.value = robot.dynamic.com.value
28 robot.taskCom.task.controlGain.value = 10
32 robot.contactLF = MetaTaskKine6d(
33 "contactLF", robot.dynamic,
"LF", robot.OperationalPointsMap[
"left-ankle"]
35 robot.contactLF.feature.frame(
"desired")
36 robot.contactLF.gain.setConstant(100)
37 robot.contactLF.keep()
38 locals()[
"contactLF"] = robot.contactLF
40 robot.contactRF = MetaTaskKine6d(
41 "contactRF", robot.dynamic,
"RF", robot.OperationalPointsMap[
"right-ankle"]
43 robot.contactRF.feature.frame(
"desired")
44 robot.contactRF.gain.setConstant(100)
45 robot.contactRF.keep()
46 locals()[
"contactRF"] = robot.contactRF
49 robot.sot = SOT(
"sot")
50 robot.sot.setSize(robot.dynamic.getDimension())
51 plug(robot.sot.control, robot.device.control)
53 robot.sot.push(robot.contactRF.task.name)
54 robot.sot.push(robot.taskCom.task.name)
55 robot.sot.push(robot.contactLF.task.name)
56 robot.device.control.recompute(0)
67 outputs = [
"robotState"]
68 robot.device_tracer =
create_tracer(robot, robot.device,
"device_tracer", outputs)
71 robot, robot.base_estimator,
"estimator_tracer", outputs
73 robot.device.after.addSignal(
"base_estimator.q")
76 plug(robot.comTrajGen.x, robot.taskCom.featureDes.errorIN)
78 os.system(
"rosservice call \start_dynamic_graph")
80 robot.comTrajGen.move(1, -0.025, 4.0)
82 robot.comTrajGen.startSinusoid(1, 0.05, 8.0)
85 robot.device_tracer.start()
86 robot.estimator_tracer.start()
93 device_data =
read_tracer_file(
"/tmp/dg_" + robot.device.name +
"-robotState.dat")
94 estimator_data =
read_tracer_file(
"/tmp/dg_" + robot.base_estimator.name +
"-q.dat")