JointController Class Reference

A class for manipulating physics::Joint. More...

#include <physics/physics.hh>

Public Member Functions

 JointController (ModelPtr _model)
 Constructor. More...
 
virtual ~JointController ()
 Destructor. More...
 
void AddJoint (JointPtr _joint)
 Add a joint to control. More...
 
std::map< std::string, double > GetForces () const
 Get all the applied forces. More...
 
std::map< std::string, JointPtrGetJoints () const
 Get all the joints. More...
 
common::Time GetLastUpdateTime () const
 Get the last time the controller was updated. More...
 
std::map< std::string, common::PIDGetPositionPIDs () const
 Get all the position PID controllers. More...
 
std::map< std::string, double > GetPositions () const
 Get all the position PID set points. More...
 
std::map< std::string, double > GetVelocities () const
 Get all the velocity PID set points. More...
 
std::map< std::string, common::PIDGetVelocityPIDs () const
 Get all the velocity PID controllers. More...
 
void RemoveJoint (Joint *_joint)
 Remove a joint from control. More...
 
void Reset ()
 Reset all commands. More...
 
void SetJointPosition (const std::string &_name, double _position, int _index=0)
 Set the positions of a Joint by name. More...
 
void SetJointPosition (JointPtr _joint, double _position, int _index=0)
 Set the positions of a Joint by name The position is specified in native units, which means, if you are using metric system, it's meters for SliderJoint and radians for HingeJoint, etc. More...
 
void SetJointPositions (const std::map< std::string, double > &_jointPositions)
 Set the positions of a set of Joint's. More...
 
void SetPositionPID (const std::string &_jointName, const common::PID &_pid)
 Set the position PID values for a joint. More...
 
bool SetPositionTarget (const std::string &_jointName, double _target)
 Set the target position for the position PID controller. More...
 
void SetVelocityPID (const std::string &_jointName, const common::PID &_pid)
 Set the velocity PID values for a joint. More...
 
bool SetVelocityTarget (const std::string &_jointName, double _target)
 Set the target velocity for the velocity PID controller. More...
 
void Update ()
 Update the joint control. More...
 

Detailed Description

A class for manipulating physics::Joint.

Constructor & Destructor Documentation

JointController ( ModelPtr  _model)
explicit

Constructor.

Parameters
[in]_modelModel that uses this joint controller.
virtual ~JointController ( )
virtual

Destructor.

Member Function Documentation

void AddJoint ( JointPtr  _joint)

Add a joint to control.

Parameters
[in]_jointJoint to control.
std::map<std::string, double> GetForces ( ) const

Get all the applied forces.

Returns
A map<joint_name, force> that contains force values set by the user of the JointController.
std::map<std::string, JointPtr> GetJoints ( ) const

Get all the joints.

Returns
A map<joint_name, joint_ptr> to all the joints that can be controlled.
common::Time GetLastUpdateTime ( ) const

Get the last time the controller was updated.

Returns
Last time the controller was updated.
std::map<std::string, common::PID> GetPositionPIDs ( ) const

Get all the position PID controllers.

Returns
A map<joint_name, PID> for all the position PID controllers.
std::map<std::string, double> GetPositions ( ) const

Get all the position PID set points.

Returns
A map<joint_name, position> that contains position values set by the user of the JointController.
std::map<std::string, double> GetVelocities ( ) const

Get all the velocity PID set points.

Returns
A map<joint_name, position> that contains velocity values set by the user of the JointController.
std::map<std::string, common::PID> GetVelocityPIDs ( ) const

Get all the velocity PID controllers.

Returns
A map<joint_name, PID> for all the velocity PID controllers.
void RemoveJoint ( Joint _joint)

Remove a joint from control.

Parameters
[in]_jointJoint to remove.
void Reset ( )

Reset all commands.

void SetJointPosition ( const std::string &  _name,
double  _position,
int  _index = 0 
)

Set the positions of a Joint by name.

See also
JointController::SetJointPosition(JointPtr, double)
void SetJointPosition ( JointPtr  _joint,
double  _position,
int  _index = 0 
)

Set the positions of a Joint by name The position is specified in native units, which means, if you are using metric system, it's meters for SliderJoint and radians for HingeJoint, etc.

Implementation: In order to change the position of a Joint inside a Model, this call must recursively crawl through all the connected children Link's in this Model, and update each Link Pose affected by this Joint angle update. Warning: There is no constraint satisfaction being done here, traversal through the kinematic graph has unexpected behavior if you try to set the joint position of a link inside a loop structure. Warning:

Parameters
[in]_jointJoint to set.
[in]_positionPosition of the joint.
void SetJointPositions ( const std::map< std::string, double > &  _jointPositions)

Set the positions of a set of Joint's.

See also
JointController::SetJointPosition(JointPtr, double)
void SetPositionPID ( const std::string &  _jointName,
const common::PID _pid 
)

Set the position PID values for a joint.

Parameters
[in]_jointNameScoped name of the joint.
[in]_pidNew position PID controller.
bool SetPositionTarget ( const std::string &  _jointName,
double  _target 
)

Set the target position for the position PID controller.

Parameters
[in]_jointNameScoped name of the joint.
[in]_targetPosition target.
Returns
False if the joint was not found.
void SetVelocityPID ( const std::string &  _jointName,
const common::PID _pid 
)

Set the velocity PID values for a joint.

Parameters
[in]_jointNameScoped name of the joint.
[in]_pidNew velocity PID controller.
bool SetVelocityTarget ( const std::string &  _jointName,
double  _target 
)

Set the target velocity for the velocity PID controller.

Parameters
[in]_jointNameScoped name of the joint.
[in]_targetVelocity target.
Returns
False if the joint was not found.
void Update ( )

Update the joint control.


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