3#ifndef __ASIBOT_SOLVER_HPP__
4#define __ASIBOT_SOLVER_HPP__
8#include <yarp/os/Searchable.h>
9#include <yarp/dev/DeviceDriver.h>
10#include <yarp/sig/Matrix.h>
12#include "AsibotConfiguration.hpp"
13#include "ICartesianSolver.h"
14#include "AsibotSolver_ParamsParser.h"
35 yarp::dev::ReturnValue
getNumJoints(std::size_t & numJoints)
override;
38 yarp::dev::ReturnValue
getNumTcps(std::size_t & numTcps)
override;
41 yarp::dev::ReturnValue
appendLink(
const std::vector<double> &x)
override;
47 yarp::dev::ReturnValue
changeOrigin(
const std::vector<double> &x_old_obj,
const std::vector<double> &x_new_old, std::vector<double> &x_new_obj)
override;
50 yarp::dev::ReturnValue
forwardKinematics(
const std::vector<double> &q, std::vector<double> &x)
override;
53 yarp::dev::ReturnValue
poseDiff(
const std::vector<double> &xLhs,
const std::vector<double> &xRhs, std::vector<double> &xOut)
override;
56 yarp::dev::ReturnValue
inverseKinematics(
const std::vector<double> &xd,
const std::vector<double> &qGuess, std::vector<double> &q,
Frame frame)
override;
59 yarp::dev::ReturnValue
diffInverseKinematics(
const std::vector<double> &q,
const std::vector<double> &xdot, std::vector<double> &qdot,
Frame frame)
override;
62 yarp::dev::ReturnValue
inverseDynamics(
const std::vector<double> &q, std::vector<double> &t)
override;
65 yarp::dev::ReturnValue
inverseDynamics(
const std::vector<double> &q,
const std::vector<double> &qdot,
const std::vector<double> &qdotdot,
66 const std::vector<double> &ftip, std::vector<double> &t,
Frame frame)
override;
69 bool open(yarp::os::Searchable& config)
override;
70 bool close()
override;
76 yarp::sig::Matrix frameTcp;
86 AsibotTcpFrame tcpFrameStruct;
88 mutable std::mutex mtx;
Definition AsibotSolver_ParamsParser.h:48
The AsibotSolver implements ICartesianSolver.
Definition AsibotSolver.hpp:30
yarp::dev::ReturnValue inverseKinematics(const std::vector< double > &xd, const std::vector< double > &qGuess, std::vector< double > &q, Frame frame) override
Perform inverse kinematics.
Definition ICartesianSolverImpl.cpp:316
yarp::dev::ReturnValue inverseDynamics(const std::vector< double > &q, std::vector< double > &t) override
Perform inverse dynamics.
Definition ICartesianSolverImpl.cpp:489
yarp::dev::ReturnValue appendLink(const std::vector< double > &x) override
Append an additional link.
Definition ICartesianSolverImpl.cpp:204
yarp::dev::ReturnValue restoreOriginalChain() override
Restore original kinematic chain.
Definition ICartesianSolverImpl.cpp:218
yarp::dev::ReturnValue getNumTcps(std::size_t &numTcps) override
Get number of TCPs for which the solver has been configured.
Definition ICartesianSolverImpl.cpp:196
yarp::dev::ReturnValue poseDiff(const std::vector< double > &xLhs, const std::vector< double > &xRhs, std::vector< double > &xOut) override
Obtain difference between supplied pose inputs.
Definition ICartesianSolverImpl.cpp:290
yarp::dev::ReturnValue getNumJoints(std::size_t &numJoints) override
Get number of joints for which the solver has been configured.
Definition ICartesianSolverImpl.cpp:188
yarp::dev::ReturnValue changeOrigin(const std::vector< double > &x_old_obj, const std::vector< double > &x_new_old, std::vector< double > &x_new_obj) override
Change origin in which a pose is expressed.
Definition ICartesianSolverImpl.cpp:229
yarp::dev::ReturnValue forwardKinematics(const std::vector< double > &q, std::vector< double > &x) override
Perform forward kinematics.
Definition ICartesianSolverImpl.cpp:242
yarp::dev::ReturnValue diffInverseKinematics(const std::vector< double > &q, const std::vector< double > &xdot, std::vector< double > &qdot, Frame frame) override
Perform differential inverse kinematics.
Definition ICartesianSolverImpl.cpp:423
Base factory class for AsibotConfiguration.
Definition AsibotConfiguration.hpp:158
Abstract base class for a robot configuration strategy selector.
Definition AsibotConfiguration.hpp:20
Abstract base class for a cartesian solver.
Definition ICartesianSolver.h:19
Frame
Lists supported reference frames.
Definition ICartesianSolver.h:23
Definition AsibotSolver.hpp:74