Drake
RigidBodyLoop< T > Class Template Reference

Defines a "loop joint" that models a kinematic loop formed by a chain of rigid bodies and their regular joints. More...

#include <drake/multibody/rigid_body_loop.h>

Collaboration diagram for RigidBodyLoop< T >:
[legend]

Public Member Functions

 RigidBodyLoop (std::shared_ptr< RigidBodyFrame< T >> frameA, std::shared_ptr< RigidBodyFrame< T >> frameB, const Eigen::Vector3d &axis)
 Constructs a kinematic loop by fully constraining the origins and partially constraining the orientations of two frames. More...
 

Public Attributes

const std::shared_ptr< RigidBodyFrame< T > > frameA_
 
const std::shared_ptr< RigidBodyFrame< T > > frameB_
 
const Eigen::Vector3d axis_
 

Friends

std::ostream & operator<< (std::ostream &os, const RigidBodyLoop< double > &obj)
 

Detailed Description

template<typename T>
class RigidBodyLoop< T >

Defines a "loop joint" that models a kinematic loop formed by a chain of rigid bodies and their regular joints.

The loop joint is specified by two RigidBodyFrame objects that must be attached to two different RigidBody objects. The coordinate frames defined by the two RigidBodyFrame objects are constrained to have the same origin. The orientations of the two frames are partially constrained based on the axis of rotation (i.e., the two frames are only allowed to rotate relative to each other along the axis of rotation).

Template Parameters
TThe type being integrated. Must be a valid Eigen scalar.

Instantiated templates for the following kinds of T's are provided:

  • double
  • AutoDiffXd
  • AutoDiffUpTo73d

They are already available to link against in the containing library. No other values for T are currently supported.

Constructor & Destructor Documentation

RigidBodyLoop ( std::shared_ptr< RigidBodyFrame< T >>  frameA,
std::shared_ptr< RigidBodyFrame< T >>  frameB,
const Eigen::Vector3d &  axis 
)

Constructs a kinematic loop by fully constraining the origins and partially constraining the orientations of two frames.

The two frames are defined relative to two rigid bodies that should be connected via a loop joint.

Parameters
[in]frameAA frame defined relative to the loop joint's "parent" rigid body.
[in]frameBA frame defined relative to the loop joint's "child" rigid body.
[in]axisThe loop joint's axis of rotation expressed in the coordinate frame of frameA.

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const RigidBodyLoop< double > &  obj 
)
friend

Member Data Documentation

const Eigen::Vector3d axis_
const std::shared_ptr<RigidBodyFrame<T> > frameA_
const std::shared_ptr<RigidBodyFrame<T> > frameB_

The documentation for this class was generated from the following files: