10 #include <boost/weak_ptr.hpp> 
   11 #include <boost/shared_ptr.hpp> 
   12 #include <Ravelin/Pose3d.h> 
   13 #include <Ravelin/MatrixNd.h> 
   14 #include <Ravelin/SAcceld.h> 
   15 #include <Ravelin/LinAlgd.h> 
   16 #include <Ravelin/Jointd.h> 
   17 #include <Moby/Base.h> 
   18 #include <Moby/ControlledBody.h> 
   19 #include <Moby/RigidBody.h> 
   20 #include <Moby/Visualizable.h> 
   24 class VisualizationData;
 
   40     enum DOFs { DOF_1=0, DOF_2=1, DOF_3=2, DOF_4=3, DOF_5=4, DOF_6=5 };
 
   43     Joint(boost::weak_ptr<RigidBody> inboard, boost::weak_ptr<RigidBody> outboard);
 
   47     virtual void save_to_xml(
XMLTreePtr node, std::list<boost::shared_ptr<const Base> >& shared_objects) 
const;
 
   48     virtual void load_from_xml(boost::shared_ptr<const XMLTree> node, std::map<std::string, BasePtr>& id_map);
 
  111     boost::shared_ptr<Ravelin::Pose3d> _vtransform;
 
void set_articulated_body(ArticulatedBodyPtr abody)
Sets the articulated body corresponding to this body. 
Definition: Joint.cpp:207
Abstract class for articulated bodies. 
Definition: ArticulatedBody.h:26
Class that allows for visualizing simulation data. 
Definition: Visualizable.h:29
virtual void set_inboard_link(RigidBodyPtr link, bool update_pose)
Sets the pointer to the inboard link for this joint (and updates the spatial axes, if the outboard link has been set) 
Definition: Joint.cpp:111
ArticulatedBodyPtr get_articulated_body()
Gets the articulated body corresponding to this body. 
Definition: Joint.cpp:194
Represents a single rigid body. 
Definition: RigidBody.h:43
virtual void set_outboard_link(RigidBodyPtr link, bool update_pose)
Sets the pointer to the outboard link for this joint. 
Definition: Joint.cpp:127
RigidBodyPtr get_inboard_link() const 
Gets the inboard link for this joint. 
Definition: Joint.h:55
double mu_fv
The viscous friction coefficient for this joint. 
Definition: Joint.h:73
boost::shared_ptr< RigidBody > RigidBodyPtr
Rigid body smart pointer. 
Definition: Types.h:62
boost::shared_ptr< XMLTree > XMLTreePtr
XML tree smart pointer. 
Definition: Types.h:104
double compliant_layer_depth
The depth of the compliant layer around the joint limit. 
Definition: Joint.h:76
RigidBodyPtr get_outboard_link() const 
Gets the outboard link for this joint. 
Definition: Joint.h:58
virtual void init_data()
Computes the constraint Jacobian for this joint with respect to the given body in Rodrigues parameter...
Definition: Joint.cpp:144
Ravelin::Vector3d Point3d
Typedef to distinguish between a 3D vector and a point. 
Definition: Types.h:47
double mu_fc
The coulomb friction coefficient for this joint. 
Definition: Joint.h:70
Defines a joint used in articulated rigid body dynamics simulation. 
Definition: Joint.h:30
boost::shared_ptr< ArticulatedBody > ArticulatedBodyPtr
Articulated body smart pointer. 
Definition: Types.h:65
Ravelin::VectorNd & get_scaled_force(Ravelin::VectorNd &f)
Gets the scaled actuator forces. 
Definition: Joint.cpp:181
Ravelin::VectorNd lolimit
The lower joint limit. 
Definition: Joint.h:61
virtual void save_to_xml(XMLTreePtr node, std::list< boost::shared_ptr< const Base > > &shared_objects) const 
Implements Base::save_to_xml() 
Definition: Joint.cpp:398
ConstraintType
Definition: Joint.h:39
void set_location(const Point3d &p, RigidBodyPtr inboard, RigidBodyPtr outboard)
Sets the location of this joint with specified inboard and outboard links. 
Definition: Joint.cpp:157
Ravelin::VectorNd hilimit
The upper joint limit. 
Definition: Joint.h:64
void determine_q_dot()
(Relatively slow) method for determining the joint velocity from current link velocities ...
Definition: Joint.cpp:80
virtual void load_from_xml(boost::shared_ptr< const XMLTree > node, std::map< std::string, BasePtr > &id_map)
Implements Base::load_from_xml() 
Definition: Joint.cpp:213
Joint()
Initializes the joint. 
Definition: Joint.cpp:27
double limit_restitution
The coefficient of restitution applied when this joint reaches a limit. 
Definition: Joint.h:67