2 from dynamic_graph
import plug
3 from dynamic_graph.sot.core
import SOT
4 from dynamic_graph.sot.core.meta_tasks_kine
import (
11 from dynamic_graph.sot_talos_balance.meta_task_joint
import MetaTaskKineJoint
14 N_CONFIG = N_JOINTS + 6
16 robot.timeStep = robot.device.getTimeStep()
25 robot.taskJoint = MetaTaskKineJoint(robot.dynamic, QJOINT)
26 robot.taskJoint.featureDes.errorIN.value = [0.0]
27 robot.taskJoint.task.controlGain.value = 100
35 plug(robot.admittance_control.qRef, robot.taskJoint.featureDes.errorIN)
39 robot.contactLF = MetaTaskKine6d(
40 "contactLF", robot.dynamic,
"LF", robot.OperationalPointsMap[
"left-ankle"]
42 robot.contactLF.feature.frame(
"desired")
43 robot.contactLF.gain.setConstant(100)
44 robot.contactLF.keep()
45 locals()[
"contactLF"] = robot.contactLF
47 robot.contactRF = MetaTaskKine6d(
48 "contactRF", robot.dynamic,
"RF", robot.OperationalPointsMap[
"right-ankle"]
50 robot.contactRF.feature.frame(
"desired")
51 robot.contactRF.gain.setConstant(100)
52 robot.contactRF.keep()
53 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.contactLF.task.name)
61 robot.device.control.recompute(0)
67 robot.device_filters.torque_filter,
72 create_topic(robot.publisher, robot.device,
"ptorque", robot=robot, data_type=
"vector")