4 from dynamic_graph
import plug
5 from dynamic_graph.sot.core
import SOT
6 from dynamic_graph.sot.core.meta_tasks_kine
import MetaTaskKine6d
9 create_config_trajectory_generator,
11 from dynamic_graph.sot_talos_balance.meta_task_config
import MetaTaskKineConfig
14 N_CONFIG = N_JOINTS + 6
18 robot.timeStep = robot.device.getTimeStep()
26 robot.taskJoint = MetaTaskKineConfig(robot.dynamic, [QJOINT])
28 robot.taskJoint.featureDes.errorIN.value = N_CONFIG * [0.0]
29 robot.taskJoint.task.controlGain.value = 100
33 robot.contactLF = MetaTaskKine6d(
34 "contactLF", robot.dynamic,
"LF", robot.OperationalPointsMap[
"left-ankle"]
36 robot.contactLF.feature.frame(
"desired")
37 robot.contactLF.gain.setConstant(100)
38 robot.contactLF.keep()
39 locals()[
"contactLF"] = robot.contactLF
41 robot.contactRF = MetaTaskKine6d(
42 "contactRF", robot.dynamic,
"RF", robot.OperationalPointsMap[
"right-ankle"]
44 robot.contactRF.feature.frame(
"desired")
45 robot.contactRF.gain.setConstant(100)
46 robot.contactRF.keep()
47 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.contactLF.task.name)
55 robot.sot.push(robot.taskJoint.task.name)
56 robot.device.control.recompute(0)
58 plug(robot.traj_gen.x, robot.taskJoint.featureDes.errorIN)
60 os.system(
"rosservice call /start_dynamic_graph")
62 robot.traj_gen.move(QJOINT, -1.0, 1.0)
64 robot.traj_gen.startSinusoid(QJOINT, 1.0, 8.0)
66 robot.traj_gen.stop(QJOINT)