17 #ifndef _GAZEBO_JOINTCONTROLLER_HH_ 
   18 #define _GAZEBO_JOINTCONTROLLER_HH_ 
   23 #include <ignition/msgs.hh> 
   37     class JointControllerPrivate;
 
   55       public: 
void AddJoint(
JointPtr _joint);
 
   59       public: 
void RemoveJoint(
Joint *_joint);
 
   62       public: 
void Update();
 
   69       public: 
void SetJointPosition(
 
   70         const std::string &_name, 
double _position, 
int _index = 0);
 
   74       public: 
void SetJointPositions(
 
   75                   const std::map<std::string, double> &_jointPositions);
 
   84       public: std::map<std::string, JointPtr> GetJoints() 
const;
 
   89       public: 
void SetPositionPID(
const std::string &_jointName,
 
   96       public: 
bool SetPositionTarget(
const std::string &_jointName,
 
  102       public: 
void SetVelocityPID(
const std::string &_jointName,
 
  109       public: 
bool SetVelocityTarget(
const std::string &_jointName,
 
  115       public: std::map<std::string, common::PID> GetPositionPIDs() 
const;
 
  120       public: std::map<std::string, common::PID> GetVelocityPIDs() 
const;
 
  125       public: std::map<std::string, double> GetForces() 
const;
 
  130       public: std::map<std::string, double> GetPositions() 
const;
 
  135       public: std::map<std::string, double> GetVelocities() 
const;
 
  144       private: 
void OnJointCmdReq(
const ignition::msgs::StringMsg &_req,
 
  145           ignition::msgs::JointCmd &_rep, 
bool &_result);
 
  149       private: 
void OnJointCommand(
const ignition::msgs::JointCmd &_msg);
 
  154       private: 
void OnJointCmd(ConstJointCmdPtr &_msg);
 
  173       public: 
void SetJointPosition(
 
  174         JointPtr _joint, 
double _position, 
int _index = 0);
 
  177       private: JointControllerPrivate *dataPtr;
 
Forward declarations for transport. 
A class for manipulating physics::Joint. 
Definition: JointController.hh:44
boost::shared_ptr< Joint > JointPtr
Definition: PhysicsTypes.hh:117
default namespace for gazebo 
Base class for all joints. 
Definition: Joint.hh:53
boost::shared_ptr< Model > ModelPtr
Definition: PhysicsTypes.hh:93
Generic PID controller class. 
Definition: PID.hh:36
A Time class, can be used to hold wall- or sim-time. 
Definition: Time.hh:44