44         double _theta, 
double _d, 
double _a, 
double _alpha, 
bool _is_prismatic)
    93         double theta, 
double d, 
double a, 
double alpha, 
bool is_prismatic);
   120     template <
class VECTOR>
   123         const size_t N = 
m_links.size();
   125         for (
size_t i = 0; i < N; i++)
   143     template <
class VECTOR>
   147         const size_t N = 
m_links.size();
   148         for (
size_t i = 0; i < N; i++)
   170         std::vector<mrpt::poses::CPose3D>* out_all_poses = 
nullptr) 
const;
   177         std::vector<mrpt::poses::CPose3D>* out_all_poses = 
nullptr) 
const;
   187         std::vector<mrpt::poses::CPose3D>& poses,
 std::vector< TKinematicLink > m_links
The links of this robot arm. 
 
#define MRPT_DECLARE_TTYPENAME_NAMESPACE(_TYPE, __NS)
Declares a typename to be "namespace::type". 
 
mrpt::serialization::CArchive & operator>>(mrpt::serialization::CArchive &in, TKinematicLink &o)
 
TKinematicLink(double _theta, double _d, double _a, double _alpha, bool _is_prismatic)
 
mrpt::poses::CPose3D m_origin
The pose of the first link. 
 
TKinematicLink & getLinkRef(const size_t idx)
Get a ref to a given link (read-write) 
 
double d
Distance along Z_i to the common normal between Z_i and Z_{i+1}. 
 
void removeLink(const size_t idx)
Removes one link from the kinematic chain (0<=idx<N) 
 
#define ASSERT_EQUAL_(__A, __B)
Assert comparing two values, reporting their actual values upon failure. 
 
void update3DObject(std::vector< mrpt::poses::CPose3D > *out_all_poses=nullptr) const
Read getAs3DObject() for a description. 
 
void getConfiguration(VECTOR &v) const
Get all the DOFs of the arm at once, returning them in a vector with all the "q_i" values...
 
bool is_prismatic
"false": Is revolute ("q_i" is "theta"), "true": is prismatic ("q_i" is "d") 
 
void getAs3DObject(mrpt::opengl::CSetOfObjects::Ptr &inout_gl_obj, std::vector< mrpt::poses::CPose3D > *out_all_poses=nullptr) const
Constructs a 3D representation of the kinematic chain, in its current state. 
 
void setConfiguration(const VECTOR &v)
Set all the DOFs of the arm at once, from a vector with all the "q_i" values, which are interpreted a...
 
void addLink(double theta, double d, double a, double alpha, bool is_prismatic)
Appends a new link to the robotic arm, with the given Denavit-Hartenberg parameters (see TKinematicLi...
 
mrpt::serialization::CArchive & operator<<(mrpt::serialization::CArchive &out, const TKinematicLink &o)
 
const mrpt::poses::CPose3D & getOriginPose() const
Returns the current pose of the first link. 
 
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries. 
 
double alpha
Rotation along X_{i+1} to transform Z_i into Z_{i+1}. 
 
Virtual base class for "archives": classes abstracting I/O streams. 
 
A class used to store a 3D pose (a 3D translation + a rotation in 3D). 
 
mrpt::vision::TStereoCalibResults out
 
The virtual base class which provides a unified interface for all persistent objects in MRPT...
 
void setOriginPose(const mrpt::poses::CPose3D &new_pose)
Can be used to define a first degree of freedom along a +Z axis which does not coincide with the glob...
 
#define DEFINE_SERIALIZABLE(class_name, NS)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
 
double theta
Rotation from X_i to X_{i+1} (radians) 
 
double a
Distance along the common normal (in the same direction than the new X_{i+1}) 
 
const TKinematicLink & getLink(const size_t idx) const
Get a ref to a given link (read-only) 
 
A open-loop kinematic chain model, suitable to robotic manipulators. 
 
void clear()
Erases all links and leave the robot arm empty. 
 
size_t size() const
Return the number of links. 
 
std::vector< mrpt::opengl::CRenderizable::Ptr > m_last_gl_objects
Smart pointers to the last objects for each link, as returned in getAs3DObject(), for usage within up...
 
void recomputeAllPoses(std::vector< mrpt::poses::CPose3D > &poses, const mrpt::poses::CPose3D &pose0=mrpt::poses::CPose3D()) const
Go thru all the links of the chain and compute the global pose of each link. 
 
An individual kinematic chain element (one link) which builds up a CKinematicChain.