13 #include <franka_msgs/SetCartesianImpedance.h> 14 #include <franka_msgs/SetEEFrame.h> 15 #include <franka_msgs/SetForceTorqueCollisionBehavior.h> 16 #include <franka_msgs/SetFullCollisionBehavior.h> 17 #include <franka_msgs/SetJointImpedance.h> 18 #include <franka_msgs/SetKFrame.h> 19 #include <franka_msgs/SetLoad.h> 35 const std::string& name,
36 std::function<
void(
typename T::Request&,
typename T::Response&)> handler) {
37 return node_handle.
advertiseService<
typename T::Request,
typename T::Response>(
38 name, [name, handler](
typename T::Request& request,
typename T::Response&
response) {
63 template <
typename T,
typename... TArgs>
83 std::mutex& robot_mutex,
95 const franka_msgs::SetCartesianImpedance::Request& req,
96 franka_msgs::SetCartesianImpedance::Response& res);
106 const franka_msgs::SetJointImpedance::Request& req,
107 franka_msgs::SetJointImpedance::Response& res);
117 const franka_msgs::SetEEFrame::Request& req,
118 franka_msgs::SetEEFrame::Response& res);
128 const franka_msgs::SetKFrame::Request& req,
129 franka_msgs::SetKFrame::Response& res);
140 const franka_msgs::SetForceTorqueCollisionBehavior::Request& req,
141 franka_msgs::SetForceTorqueCollisionBehavior::Response& res);
151 const franka_msgs::SetFullCollisionBehavior::Request& req,
152 franka_msgs::SetFullCollisionBehavior::Response& res);
162 const franka_msgs::SetLoad::Request& req,
163 franka_msgs::SetLoad::Response& res);
void setupServices(franka::Robot &robot, std::mutex &robot_mutex, ros::NodeHandle &node_handle, ServiceContainer &services)
Sets up all services relevant for a libfranka robot inside a service container.
ServiceContainer & advertiseService(TArgs &&... args)
Advertises and adds a service to the container class.
void setKFrame(franka::Robot &robot, const franka_msgs::SetKFrame::Request &req, franka_msgs::SetKFrame::Response &res)
Callback for the service interface to franka::robot::setKFrame.
This class serves as container that gathers all possible service interfaces to a libfranka robot inst...
void setJointImpedance(franka::Robot &robot, const franka_msgs::SetJointImpedance::Request &req, franka_msgs::SetJointImpedance::Response &res)
Callback for the service interface to franka::robot::setJointImpedance.
ServiceServer advertiseService(const std::string &service, bool(T::*srv_func)(MReq &, MRes &), T *obj)
void setLoad(franka::Robot &robot, const franka_msgs::SetLoad::Request &req, franka_msgs::SetLoad::Response &res)
Callback for the service interface to franka::robot::setLoad.
std::vector< ros::ServiceServer > services_
void setForceTorqueCollisionBehavior(franka::Robot &robot, const franka_msgs::SetForceTorqueCollisionBehavior::Request &req, franka_msgs::SetForceTorqueCollisionBehavior::Response &res)
Callback for the service interface to franka::robot::setForceTorqueCollisionBehavior.
void setFullCollisionBehavior(franka::Robot &robot, const franka_msgs::SetFullCollisionBehavior::Request &req, franka_msgs::SetFullCollisionBehavior::Response &res)
Callback for the service interface to franka::robot::setFullCollisionBehavior.
ros::ServiceServer advertiseService(ros::NodeHandle &node_handle, const std::string &name, std::function< void(typename T::Request &, typename T::Response &)> handler)
Advertises a service that acts according to the handler function which is used in the service callbac...
#define ROS_DEBUG_STREAM(args)
void setCartesianImpedance(franka::Robot &robot, const franka_msgs::SetCartesianImpedance::Request &req, franka_msgs::SetCartesianImpedance::Response &res)
Callback for the service interface to franka::robot::setCartesianImpedance.
#define ROS_ERROR_STREAM(args)
const std::string response
void setEEFrame(franka::Robot &robot, const franka_msgs::SetEEFrame::Request &req, franka_msgs::SetEEFrame::Response &res)
Callback for the service interface to franka::robot::setEEFrame.