3#ifndef __I_CARTESIAN_SOLVER__
4#define __I_CARTESIAN_SOLVER__
8#include <yarp/os/Vocab.h>
10#include <yarp/dev/ReturnValue.h>
24 BASE = yarp::os::createVocab32(
'c',
'p',
'f',
'b'),
25 TCP = yarp::os::createVocab32(
'c',
'p',
'f',
't')
36 virtual yarp::dev::ReturnValue
getNumJoints(std::size_t & numJoints) = 0;
43 virtual yarp::dev::ReturnValue
getNumTcps(std::size_t & numTcps) = 0;
54 virtual yarp::dev::ReturnValue
appendLink(
const std::vector<double> & x) = 0;
78 virtual yarp::dev::ReturnValue
changeOrigin(
const std::vector<double> & x_old_obj,
79 const std::vector<double> & x_new_old,
80 std::vector<double> & x_new_obj) = 0;
92 virtual yarp::dev::ReturnValue
forwardKinematics(
const std::vector<double> & q, std::vector<double> & x) = 0;
112 virtual yarp::dev::ReturnValue
poseDiff(
const std::vector<double> & xLhs,
const std::vector<double> & xRhs, std::vector<double> & xOut) = 0;
126 virtual yarp::dev::ReturnValue
inverseKinematics(
const std::vector<double> & xd,
const std::vector<double> & qGuess, std::vector<double> & q,
141 virtual yarp::dev::ReturnValue
diffInverseKinematics(
const std::vector<double> & q,
const std::vector<double> & xdot, std::vector<double> & qdot,
156 virtual yarp::dev::ReturnValue
inverseDynamics(
const std::vector<double> & q, std::vector<double> & t) = 0;
174 virtual yarp::dev::ReturnValue
inverseDynamics(
const std::vector<double> & q,
const std::vector<double> & qdot,
const std::vector<double> & qdotdot,
175 const std::vector<double> & ftip, std::vector<double> & t,
Frame frame =
Frame::BASE) = 0;
178#ifndef SWIG_PREPROCESSOR_SHOULD_SKIP_THIS
181 BASE_FRAME [[deprecated(
"use `ICartesianSolver::Frame::Base` instead")]] =
static_cast<int>(
Frame::BASE),
182 TCP_FRAME [[deprecated(
"use `ICartesianSolver::Frame::TCP` instead")]] =
static_cast<int>(
Frame::TCP)
185 [[deprecated(
"use `ICartesianSolver::Frame` signature instead")]]
186 virtual bool invKin(
const std::vector<double> & xd,
const std::vector<double> & qGuess, std::vector<double> & q, reference_frame frame =
static_cast<reference_frame
>(
Frame::BASE))
189 [[deprecated(
"use `ICartesianSolver::Frame` signature instead")]]
190 virtual bool diffInvKin(
const std::vector<double> & q,
const std::vector<double> & xdot, std::vector<double> & qdot, reference_frame frame =
static_cast<reference_frame
>(
Frame::BASE))
193 [[deprecated(
"use `ICartesianSolver::Frame` signature instead")]]
194 virtual bool invDyn(
const std::vector<double> & q,
const std::vector<double> & qdot,
const std::vector<double> & qdotdot,
195 const std::vector<double> & ftip, std::vector<double> & t, reference_frame frame =
static_cast<reference_frame
>(
Frame::BASE))
Abstract base class for a cartesian solver.
Definition ICartesianSolver.h:19
virtual yarp::dev::ReturnValue getNumJoints(std::size_t &numJoints)=0
Get number of joints for which the solver has been configured.
virtual yarp::dev::ReturnValue getNumTcps(std::size_t &numTcps)=0
Get number of TCPs for which the solver has been configured.
virtual yarp::dev::ReturnValue diffInverseKinematics(const std::vector< double > &q, const std::vector< double > &xdot, std::vector< double > &qdot, Frame frame=Frame::BASE)=0
Perform differential inverse kinematics.
virtual ~ICartesianSolver()=default
Destructor.
virtual yarp::dev::ReturnValue appendLink(const std::vector< double > &x)=0
Append an additional link.
virtual yarp::dev::ReturnValue restoreOriginalChain()=0
Restore original kinematic chain.
virtual yarp::dev::ReturnValue inverseKinematics(const std::vector< double > &xd, const std::vector< double > &qGuess, std::vector< double > &q, Frame frame=Frame::BASE)=0
Perform inverse kinematics.
virtual yarp::dev::ReturnValue changeOrigin(const std::vector< double > &x_old_obj, const std::vector< double > &x_new_old, std::vector< double > &x_new_obj)=0
Change origin in which a pose is expressed.
virtual yarp::dev::ReturnValue inverseDynamics(const std::vector< double > &q, const std::vector< double > &qdot, const std::vector< double > &qdotdot, const std::vector< double > &ftip, std::vector< double > &t, Frame frame=Frame::BASE)=0
Perform inverse dynamics.
virtual yarp::dev::ReturnValue forwardKinematics(const std::vector< double > &q, std::vector< double > &x)=0
Perform forward kinematics.
virtual yarp::dev::ReturnValue poseDiff(const std::vector< double > &xLhs, const std::vector< double > &xRhs, std::vector< double > &xOut)=0
Obtain difference between supplied pose inputs.
Frame
Lists supported reference frames.
Definition ICartesianSolver.h:23
@ TCP
End-effector frame (TCP)
virtual yarp::dev::ReturnValue inverseDynamics(const std::vector< double > &q, std::vector< double > &t)=0
Perform inverse dynamics.
The main, catch-all namespace for Robotics Lab UC3M.
Definition groups.dox:6