42 #ifndef ROBOT_CONTROLLERS_CARTESIAN_POSE_H 43 #define ROBOT_CONTROLLERS_CARTESIAN_POSE_H 47 #include <boost/shared_ptr.hpp> 55 #include <geometry_msgs/PoseStamped.h> 56 #include <geometry_msgs/Twist.h> 58 #include <kdl/chain.hpp> 59 #include <kdl/chainjnttojacsolver.hpp> 60 #include <kdl/chainfksolverpos_recursive.hpp> 61 #include <kdl/frames.hpp> 98 virtual bool stop(
bool force);
106 virtual bool reset();
118 return "robot_controllers/CartesianPoseController";
128 void command(
const geometry_msgs::PoseStamped::ConstPtr&
goal);
157 std::vector<robot_controllers::PID>
pid_;
162 #endif // ROBOT_CONTROLLERS_CARTESIAN_POSE_H
std::vector< JointHandlePtr > joints_
ControllerManager * manager_
virtual int init(ros::NodeHandle &nh, ControllerManager *manager)
Initialize the controller and any required data structures.
ros::Publisher feedback_pub_
virtual bool reset()
Cleanly reset the controller to it's initial state. Some controllers may choose to stop themselves...
virtual ~CartesianPoseController()
virtual std::string getType()
Get the type of this controller.
tf::TransformListener tf_
void command(const geometry_msgs::PoseStamped::ConstPtr &goal)
Controller command.
boost::shared_ptr< KDL::ChainJntToJacSolver > jac_solver_
virtual bool start()
Attempt to start the controller. This should be called only by the ControllerManager instance...
virtual std::vector< std::string > getClaimedNames()
Get the names of joints/controllers which this controller exclusively claims.
virtual bool stop(bool force)
Attempt to stop the controller. This should be called only by the ControllerManager instance...
virtual std::vector< std::string > getCommandedNames()
Get the names of joints/controllers which this controller commands.
CartesianPoseController()
std::vector< robot_controllers::PID > pid_
boost::shared_ptr< KDL::ChainFkSolverPos > jnt_to_pose_solver_
ros::Subscriber command_sub_
virtual void update(const ros::Time &now, const ros::Duration &dt)
This is the update loop for the controller.