2 from dynamic_graph
import plug
3 from dynamic_graph.ros
import RosSubscribe
4 from dynamic_graph.sot.core
import SOT
5 from dynamic_graph.sot.core.meta_tasks_kine
import (
10 from dynamic_graph.tracer_real_time
import TracerRealTime
14 create_com_trajectory_generator,
18 robot.timeStep = robot.device.getTimeStep()
22 robot.subscriber = RosSubscribe(
"base_subscriber")
23 robot.subscriber.add(
"vector",
"position",
"/sot/base_link/position")
24 robot.subscriber.add(
"vector",
"velocity",
"/sot/base_link/velocity")
27 robot.taskCom = MetaTaskKineCom(robot.dynamic)
28 robot.dynamic.com.recompute(0)
29 robot.taskCom.featureDes.errorIN.value = robot.dynamic.com.value
30 robot.taskCom.task.controlGain.value = 10
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())
52 plug(robot.sot.control, robot.device.control)
53 plug(robot.comTrajGen.x, robot.taskCom.featureDes.errorIN)
55 robot.sot.push(robot.contactRF.task.name)
56 robot.sot.push(robot.contactLF.task.name)
57 robot.sot.push(robot.taskCom.task.name)
58 robot.device.control.recompute(0)
61 robot.tracer = TracerRealTime(
"zmp_tracer")
62 robot.tracer.setBufferSize(80 * (2**20))
63 robot.tracer.open(
"/tmp",
"dg_",
".dat")
64 robot.device.after.addSignal(
"{0}.triger".format(robot.tracer.name))
65 robot.device.after.addSignal(
66 "{0}.position".format(robot.subscriber.name)
68 robot.device.after.addSignal(
69 "{0}.velocity".format(robot.subscriber.name)
72 addTrace(robot.tracer, robot.dynamic,
"com")
73 addTrace(robot.tracer, robot.subscriber,
"position")
74 addTrace(robot.tracer, robot.subscriber,
"velocity")