1#include "controllers/IController.hpp"
3#include "controllers/exceptions/NotImplementedException.hpp"
12 "Computation of a joint-space command with a Jacobian is not implemented for this controller.");
18 "Computation of a joint-space command from joint positions is not implemented for this controller.");
32 const std::string& frame
34 if (this->robot_model_ ==
nullptr) {
35 throw exceptions::NoRobotModelException(
36 "A robot model is required to convert the control command from Cartesian to joint space");
39 auto jacobian = this->robot_model_->compute_jacobian(joint_positions, frame);
40 return this->compute_command(command_state, feedback_state, jacobian);
virtual S compute_command(const S &command_state, const S &feedback_state)=0
Compute the command output based on the commanded state and a feedback state To be redefined based on...
Class to represent a state in Cartesian space.
Class to define wrench in cartesian space as 3D force and torque vectors.
Class to define a robot Jacobian matrix.
Jacobian transpose() const
Return the transpose of the Jacobian matrix.
Class to define a positions of the joints.
Class to define a state in joint space.
Systems to determine a command output from measured and desired inputs.
Core state variables and objects.