Go to the documentation of this file.
24 #include <VirtualRobot/Robot.h>
25 #include <VirtualRobot/IK/DifferentialIK.h>
90 std::atomic_bool enablePreactivateInit{
false};
94 VirtualRobot::DifferentialIKPtr ik;
96 const float lambda = 2.0f;
105 VirtualRobot::RobotNodePtr
tcp;
107 void initialize(
const VirtualRobot::RobotNodeSetPtr& rns);
Eigen::Matrix4f desiredPose
std::atomic< bool > isInitialized
Eigen::Vector6f forceImpedance
task space variables
Eigen::Matrix4f desiredPose
Eigen::VectorXf desiredJointTorques
targets
std::optional< Eigen::VectorXf > desiredNullspaceJointAngles
Eigen::Vector6f currentTwist
void preactivateInit(const VirtualRobot::RobotNodeSetPtr &rns)
TripleBuffer< NonRtStatus > bufferNonRtToUser
Eigen::Matrix4f currentPose
task space variables
bool updateControlStatus(const Config &cfg, const RobotStatus &robotStatus)
Eigen::VectorXf qpos
joint space variable
namespace armarx::control::common::ft
TripleBuffer< RtStatus > bufferRtToOnPublish
Eigen::Vector6f kpImpedance
TripleBuffer< NonRtStatus > bufferNonRtToRt
Eigen::VectorXf kpNullspace
MatrixXX< 4, 4, float > Matrix4f
Eigen::Matrix4f desiredPose
void run(const Config &cfg, ControlTarget &targets)
Eigen::MatrixXf jacobi
others
Eigen::Vector6f kdImpedance
VirtualRobot::RobotNodePtr tcp
Eigen::Vector6f desiredTwist
Eigen::Vector6f desiredTwist
TripleBuffer< NonRtStatus > bufferNonRtToOnPublish
Eigen::VectorXf kdNullspace
internal status of the controller, containing intermediate variables, mutable targets
you can set the following values from outside of the rt controller via Ice interfaces
void initialize(const VirtualRobot::RobotNodeSetPtr &rns)
A simple triple buffer for lockfree comunication between a single writer and a single reader.