Go to the documentation of this file.
24 #include <VirtualRobot/Robot.h>
25 #include <VirtualRobot/IK/DifferentialIK.h>
105 unsigned int numOfJoints;
106 std::atomic_bool enablePreactivateInit{
false};
113 VirtualRobot::DifferentialIKPtr ik;
115 const float lambda = 2.0f;
123 VirtualRobot::RobotNodePtr
tcp;
127 void initialize(
const VirtualRobot::RobotNodeSetPtr& rns);
internal status of the controller, containing intermediate variables, mutable targets
Eigen::Vector6f virtualVel
Eigen::Vector6f kdImpedance
Eigen::VectorXf nullspaceTorque
Eigen::Vector6f desiredTwist
Eigen::Vector6f kpAdmittance
Eigen::Matrix4f desiredPose
std::optional< Eigen::VectorXf > desiredNullspaceJointAngles
Eigen::Vector6f currentTwist
Eigen::Vector6f kmAdmittance
TripleBuffer< RtStatus > bufferRtToOnPublish
common::ft::FTSensor ftsensor
Eigen::MatrixXf jacobi
others
Eigen::Vector6f forceImpedance
task space variables
void preactivateInit(const VirtualRobot::RobotNodeSetPtr &rns)
Eigen::Matrix4f virtualPose
variables that need to be kept locally by the rt thread
Eigen::Vector6f desiredTwist
namespace armarx::control::common::ft
TripleBuffer< NonRtStatus > bufferNonRtToRt
Eigen::Vector6f kmAdmittance
you can set the following values from outside of the rt controller via Ice interfaces
Eigen::Vector6f kpImpedance
std::atomic< bool > isInitialized
VirtualRobot::RobotNodePtr tcp
Eigen::Vector6f currentForceTorque
TripleBuffer< NonRtStatus > bufferNonRtToOnPublish
MatrixXX< 4, 4, float > Matrix4f
common::ft::FTSensor::FTConfig ftConfig
force torque sensor config
Eigen::VectorXf kdNullspace
Eigen::Vector6f virtualAcc
void run(const Config &cfg, ControlTarget &targets, double deltaT)
Eigen::Vector6f kdAdmittance
Eigen::Matrix4f currentPose
task space variables
Eigen::VectorXf desiredJointTorques
targets
bool updateControlStatus(const Config &cfg, const RobotStatus &robotStatus)
Eigen::VectorXf qpos
joint space variable
Eigen::Matrix4f desiredPose
void initialize(const VirtualRobot::RobotNodeSetPtr &rns)
Eigen::VectorXf kpNullspace
A simple triple buffer for lockfree comunication between a single writer and a single reader.
void updateFT(const common::ft::FTSensor::FTConfig &c, double deltaT)