kinematics-dynamics
|
The AsibotSolver implements ICartesianSolver.
#include <AsibotSolver.hpp>
Classes | |
struct | AsibotTcpFrame |
Public Member Functions | |
int | getNumJoints () override |
Get number of joints for which the solver has been configured. More... | |
int | getNumTcps () override |
Get number of TCPs for which the solver has been configured. More... | |
bool | appendLink (const std::vector< double > &x) override |
Append an additional link. More... | |
bool | restoreOriginalChain () override |
Restore original kinematic chain. More... | |
bool | 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. More... | |
bool | fwdKin (const std::vector< double > &q, std::vector< double > &x) override |
Perform forward kinematics. More... | |
bool | poseDiff (const std::vector< double > &xLhs, const std::vector< double > &xRhs, std::vector< double > &xOut) override |
Obtain difference between supplied pose inputs. More... | |
bool | invKin (const std::vector< double > &xd, const std::vector< double > &qGuess, std::vector< double > &q, reference_frame frame) override |
Perform inverse kinematics. More... | |
bool | diffInvKin (const std::vector< double > &q, const std::vector< double > &xdot, std::vector< double > &qdot, reference_frame frame) override |
Perform differential inverse kinematics. More... | |
bool | invDyn (const std::vector< double > &q, std::vector< double > &t) override |
Perform inverse dynamics. More... | |
bool | invDyn (const std::vector< double > &q, const std::vector< double > &qdot, const std::vector< double > &qdotdot, const std::vector< double > &ftip, std::vector< double > &t, reference_frame frame) override |
Perform inverse dynamics. More... | |
bool | open (yarp::os::Searchable &config) override |
bool | close () override |
Public Member Functions inherited from roboticslab::ICartesianSolver | |
virtual | ~ICartesianSolver ()=default |
Destructor. | |
virtual bool | invDyn (const std::vector< double > &q, const std::vector< double > &qdot, const std::vector< double > &qdotdot, const std::vector< std::vector< double >> &fexts, std::vector< double > &t) |
Perform inverse dynamics. More... | |
Private Member Functions | |
AsibotConfiguration * | getConfiguration () const |
AsibotTcpFrame | getTcpFrame () const |
void | setTcpFrame (const AsibotTcpFrame &tcpFrameStruct) |
Private Attributes | |
double | A0 |
double | A1 |
double | A2 |
double | A3 |
std::vector< double > | qMin |
std::vector< double > | qMax |
AsibotConfigurationFactory * | confFactory {nullptr} |
AsibotTcpFrame | tcpFrameStruct |
std::mutex | mtx |
Additional Inherited Members | |
Public Types inherited from roboticslab::ICartesianSolver | |
enum | reference_frame { BASE_FRAME = yarp::os::createVocab32('c','p','f','b') , TCP_FRAME = yarp::os::createVocab32('c','p','f','t') } |
Lists supported reference frames. More... | |
|
overridevirtual |
x | 6-element vector describing end-effector frame in cartesian space; first three elements denote translation (meters), last three denote rotation in scaled axis-angle representation (radians). |
Implements roboticslab::ICartesianSolver.
|
overridevirtual |
x_old_obj_in | 6-element vector describing a pose in cartesian space, expressed in the old frame; first three elements denote translation (meters), last three denote rotation in scaled axis-angle representation (radians). |
x_new_old | 6-element vector describing a transformation from the new to the old frame; first three elements denote translation (meters), last three denote rotation in scaled axis-angle representation (radians). |
x_new_obj | 6-element vector describing a pose in cartesian space, expressed in the new frame; first three elements denote translation (meters), last three denote rotation in scaled axis-angle representation (radians). |
Implements roboticslab::ICartesianSolver.
|
overridevirtual |
q | Vector describing current position in joint space (meters or degrees). |
xdot | 6-element vector describing desired velocity in cartesian space; first three elements denote translational velocity (meters/second), last three denote angular velocity (radians/second). |
qdot | Vector describing target velocity in joint space (meters/second or degrees/second). |
frame | Points at the reference_frame the desired position is expressed in. |
Implements roboticslab::ICartesianSolver.
|
overridevirtual |
q | Vector describing a position in joint space (meters or degrees). |
x | 6-element vector describing same position in cartesian space; first three elements denote translation (meters), last three denote rotation in scaled axis-angle representation (radians). |
Implements roboticslab::ICartesianSolver.
|
overridevirtual |
Implements roboticslab::ICartesianSolver.
|
overridevirtual |
Implements roboticslab::ICartesianSolver.
|
overridevirtual |
q | Vector describing current position in joint space (meters or degrees). |
qdot | Vector describing current velocity in joint space (meters/second or degrees/second). |
qdotdot | Vector describing current acceleration in joint space (meters/second² or degrees/second²). |
ftip | Vector describing an external force applied to the robot tip, expressed in cartesian space; first three elements denote translational acceleration (meters/second²), last three denote angular acceleration (radians/second²). |
t | 6-element vector describing desired forces in cartesian space; first three elements denote translational acceleration (meters/second²), last three denote angular acceleration (radians/second²). |
frame | Points at the reference_frame ftip is expressed in. |
Implements roboticslab::ICartesianSolver.
|
overridevirtual |
Assumes null joint velocities and accelerations, and no external forces.
q | Vector describing current position in joint space (meters or degrees). |
t | 6-element vector describing desired forces in cartesian space; first three elements denote translational acceleration (meters/second²), last three denote angular acceleration (radians/second²). |
Implements roboticslab::ICartesianSolver.
|
overridevirtual |
xd | 6-element vector describing desired position in cartesian space; first three elements denote translation (meters), last three denote rotation in scaled axis-angle representation (radians). |
qGuess | Vector describing current position in joint space (meters or degrees). |
q | Vector describing target position in joint space (meters or degrees). |
frame | Points at the reference_frame the desired position is expressed in. |
Implements roboticslab::ICartesianSolver.
|
overridevirtual |
The result is an infinitesimal displacement twist, i.e. a vector, for which the operation of addition makes physical sense.
xLhs | 6-element vector describing a pose in cartesian space (left hand side); first three elements denote translation (meters), last three denote rotation in scaled axis-angle representation (radians). |
xRhs | 6-element vector describing a pose in cartesian space (right hand side); first three elements denote translation (meters), last three denote rotation in scaled axis-angle representation (radians). |
xOut | 6-element vector describing a pose in cartesian space (result); first three elements denote translation (meters), last three denote rotation in scaled axis-angle representation (radians). |
Implements roboticslab::ICartesianSolver.
|
overridevirtual |
Implements roboticslab::ICartesianSolver.