25 #include <VirtualRobot/IK/DifferentialIK.h>
26 #include <VirtualRobot/Robot.h>
32 #include <RobotAPI/interface/units/RobotUnit/TaskSpaceActiveImpedanceControl.h>
34 #include "../ControllerParts/CartesianImpedanceController.h"
51 public NJointTaskSpaceImpedanceControlInterface
54 using ConfigPtrT = NJointTaskSpaceImpedanceControlConfigPtr;
57 const NJointControllerConfigPtr& config,
63 return "TaskSpaceImpedanceController";
75 void setPosition(
const Eigen::Vector3f&,
const Ice::Current&)
override;
79 const Ice::Current&)
override;
84 const Ice::Current&)
override;
86 const Eigen::VectorXf& knull,
87 const Eigen::VectorXf& dnull,
88 const Ice::Current&)
override;
89 void setConfig(
const NJointTaskSpaceImpedanceControlRuntimeConfig& cfg,
90 const Ice::Current&)
override;
93 std::vector<const SensorValue1DoFActuatorTorque*> torqueSensors;
94 std::vector<const SensorValue1DoFActuatorVelocity*> velocitySensors;
95 std::vector<const SensorValue1DoFActuatorPosition*> positionSensors;
97 std::vector<ControlTarget1DoFActuatorTorque*> targets;
99 struct NJointTaskSpaceImpedanceControllerDebugInfo
101 StringFloatDictionary desired_torques;
102 float desiredForce_x;
103 float desiredForce_y;
104 float desiredForce_z;
105 float tcpDesiredTorque_x;
106 float tcpDesiredTorque_y;
107 float tcpDesiredTorque_z;
109 float tcpDesiredAngularError_x;
110 float tcpDesiredAngularError_y;
111 float tcpDesiredAngularError_z;
113 float currentTCPAngularVelocity_x;
114 float currentTCPAngularVelocity_y;
115 float currentTCPAngularVelocity_z;
117 float currentTCPLinearVelocity_x;
118 float currentTCPLinearVelocity_y;
119 float currentTCPLinearVelocity_z;
125 TripleBuffer<NJointTaskSpaceImpedanceControllerDebugInfo> debugDataInfo;
127 std::vector<std::string> jointNames;