19#ifndef _robManipulator_h
20#define _robManipulator_h
129 double g = 9.81)
const;
136 double g = 9.81)
const;
143 const vct3 & g)
const;
156 double g = 9.81 )
const;
161 double g = 9.81 )
const;
166 const vct3 & g)
const;
217 enum LinkID{
L0,
L1,
L2,
L3,
L4,
L5,
L6,
L7,
L8,
L9,
LN };
286 double tolerance=1e-12,
287 size_t Niteration=1000,
288 double LAMBDA=0.001 );
295 double tolerance=1e-12,
296 size_t Niteration=1000 );
349 double epsilon = 1e-6 )
const;
379 const double & tolerance = 1e-6);
virtual robManipulator::Errno InverseKinematics(vctDynamicVector< double > &q, const vctFrame4x4< double > &Rts, double tolerance=1e-12, size_t Niteration=1000, double LAMBDA=0.001)
Evaluate the inverse kinematics.
bool JacobianBody(const vctDynamicVector< double > &q, vctDynamicMatrix< double > &J) const
Evaluate the body Jacobian and return it in the dynamic matrix J.
bool JacobianSpatial(const vctDynamicVector< double > &q, vctDynamicMatrix< double > &J) const
Evaluate the spatial Jacobian and return it in the dynamic matrix J.
vctDynamicVector< double > CCG_MDH(const vctDynamicVector< double > &q, const vctDynamicVector< double > &qd, const vct3 &g) const
void JacobianBody(const vctDynamicVector< double > &q) const
Evaluate the body Jacobian.
std::string mLastError
Definition robManipulator.h:46
vctDynamicVector< double > CCG_MDH(const vctDynamicVector< double > &q, const vctDynamicVector< double > &qd, double g=9.81) const
std::vector< robLink > links
A vector of links.
Definition robManipulator.h:68
virtual void SetJointLimits(const vctDynamicVector< double > &lowerLimits, const vctDynamicVector< double > &upperLimits)
vctDynamicMatrix< double > JSinertia(const vctDynamicVector< double > &q) const
vctDynamicVector< double > RNE_MDH(const vctDynamicVector< double > &q, const vctDynamicVector< double > &qd, const vctDynamicVector< double > &qdd, const vctFixedSizeVector< double, 6 > &f, double g=9.81) const
virtual vctFrame4x4< double > ForwardKinematics(const vctDynamicVector< double > &q, int N=-1) const
Evaluate the forward kinematics.
void JacobianSpatial(const vctDynamicVector< double > &q) const
Evaluate the spatial Jacobian.
double ** Js
Spatial Jacobian.
Definition robManipulator.h:65
virtual void PrintKinematics(std::ostream &os) const
Print the kinematics parameters to the specified output stream.
robManipulator::Errno LoadRobot(std::vector< robKinematics * > KinParms)
virtual robManipulator::Errno LoadRobot(std::istream &ifs)
virtual void GetJointNames(std::vector< std::string > &names) const
vctDynamicVector< double > CCG(const vctDynamicVector< double > &q, const vctDynamicVector< double > &qd, double g=9.81) const
Coriolis/centrifugal and gravity.
vctDynamicVector< double > RNE(const vctDynamicVector< double > &q, const vctDynamicVector< double > &qd, const vctDynamicVector< double > &qdd, const vctFixedSizeVector< double, 6 > &f, double g=9.81) const
Recursive Newton-Euler altorithm.
Errno
Definition robManipulator.h:44
@ ESUCCESS
Definition robManipulator.h:44
@ EFAILURE
Definition robManipulator.h:44
vctDynamicVector< double > RNE_MDH(const vctDynamicVector< double > &q, const vctDynamicVector< double > &qd, const vctDynamicVector< double > &qdd, const vctFixedSizeVector< double, 6 > &f, const vct3 &g) const
std::vector< robManipulator * > ToolsType
A vector of tools.
Definition robManipulator.h:39
robManipulator(const std::vector< robKinematics * > linkParms, const vctFrame4x4< double > &Rtw0=vctFrame4x4< double >())
vctFixedSizeVector< double, 6 > BiasAcceleration(const vctDynamicVector< double > &q, const vctDynamicVector< double > &qd) const
End-effector accelerations.
double ** Jn
Body Jacobian.
Definition robManipulator.h:59
ToolsType tools
Definition robManipulator.h:40
virtual robManipulator::Errno Truncate(const size_t linksToKeep)
Remove all links expect n first ones.
virtual vctDynamicVector< double > InverseDynamics(const vctDynamicVector< double > &q, const vctDynamicVector< double > &qd, const vctDynamicVector< double > &qdd) const
Inverse dynamics in joint space.
virtual vctDynamicVector< double > InverseDynamics(const vctDynamicVector< double > &q, const vctDynamicVector< double > &qd, const vctFixedSizeVector< double, 6 > &vdwd) const
Inverse dynamics in operation space.
void OSinertia(double Ac[6][6], const vctDynamicVector< double > &q) const
Compute the 6x6 manipulator inertia matrix in operation space.
vctFrame4x4< double > Rtw0
Position and orientation of the first link.
Definition robManipulator.h:53
virtual void GetJointTypes(std::vector< cmnJointType > &types) const
virtual ~robManipulator()
Manipulator destructor.
virtual void NormalizeAngles(vctDynamicVector< double > &q)
Normalize angles to -pi to pi.
bool ClampJointValueAndUpdateError(const size_t jointIndex, double &value, const double &tolerance=1e-6)
robManipulator(const vctFrame4x4< double > &Rtw0=vctFrame4x4< double >())
LinkID
Definition robManipulator.h:217
@ L7
Definition robManipulator.h:217
@ L1
Definition robManipulator.h:217
@ L8
Definition robManipulator.h:217
@ L6
Definition robManipulator.h:217
@ L0
Definition robManipulator.h:217
@ L5
Definition robManipulator.h:217
@ L2
Definition robManipulator.h:217
@ L4
Definition robManipulator.h:217
@ L9
Definition robManipulator.h:217
@ LN
Definition robManipulator.h:217
@ L3
Definition robManipulator.h:217
void JSinertia(double **A, const vctDynamicVector< double > &q) const
Compute the NxN manipulator inertia matrix.
virtual robManipulator::Errno InverseKinematics(vctDynamicVector< double > &q, const vctFrm3 &Rts, double tolerance=1e-12, size_t Niteration=1000)
virtual void Attach(robManipulator *tool)
Attach a tool.
virtual void GetFTMaximums(vctDynamicVectorRef< double > ftMaximums) const
robManipulator(const std::string &robotfilename, const vctFrame4x4< double > &Rtw0=vctFrame4x4< double >())
Manipulator generic constructor.
virtual vctDynamicMatrix< double > JacobianKinematicsIdentification(const vctDynamicVector< double > &q, double epsilon=1e-6) const
Compute Jacobian for kinematics identification.
virtual robManipulator::Errno LoadRobot(const std::string &linkfile)
Load the kinematics and the dynamics of the robot.
void AddIdentificationColumn(vctDynamicMatrix< double > &J, vctFixedSizeMatrix< double, 4, 4 > &delRt) const
vctFixedSizeMatrix< double, 4, 4 > SE3Difference(const vctFrame4x4< double > &Rt1, const vctFrame4x4< double > &Rt2) const
const std::string & LastError(void) const
Definition robManipulator.h:370
virtual void GetJointLimits(vctDynamicVectorRef< double > lowerLimits, vctDynamicVectorRef< double > upperLimits) const
Definition vctForwardDeclarations.h:157
Definition vctForwardDeclarations.h:131
Dynamic vector referencing existing memory.
Definition vctDynamicVectorRef.h:78
Implementation of a fixed-size matrix using template metaprogramming.
Definition vctFixedSizeMatrix.h:54
Implementation of a fixed-size vector using template metaprogramming.
Definition vctFixedSizeVector.h:54
Template base class for a 4x4 frame.
Definition vctFrame4x4.h:51
#define CISST_EXPORT
Definition cmnExportMacros.h:50
vctFixedSizeVector< double, 3 > vct3
Definition vctFixedSizeVectorTypes.h:46