42 #ifndef FORCETORQUESENSORHANDLE_INCLUDEDEF_H 43 #define FORCETORQUESENSORHANDLE_INCLUDEDEF_H 53 #include <geometry_msgs/Wrench.h> 54 #include <geometry_msgs/WrenchStamped.h> 55 #include <geometry_msgs/PoseStamped.h> 56 #include <geometry_msgs/Vector3Stamped.h> 62 #include <std_srvs/Trigger.h> 63 #include <force_torque_sensor/CalculateAverageMasurement.h> 64 #include <force_torque_sensor/CalculateSensorOffset.h> 65 #include <force_torque_sensor/DiagnosticVoltages.h> 66 #include <force_torque_sensor/SetSensorOffset.h> 70 #include <iirob_filters/GravityCompensationParameters.h> 80 #include <dynamic_reconfigure/server.h> 81 #include <force_torque_sensor/CoordinateSystemCalibrationParameters.h> 82 #include <force_torque_sensor/HWCommunicationConfigurationParameters.h> 83 #include <force_torque_sensor/FTSConfigurationParameters.h> 84 #include <force_torque_sensor/PublishConfigurationParameters.h> 85 #include <force_torque_sensor/NodeConfigurationParameters.h> 86 #include <force_torque_sensor/CalibrationParameters.h> 87 #include <force_torque_sensor/CalibrationConfig.h> 109 bool srvCallback_Init(std_srvs::Trigger::Request &req, std_srvs::Trigger::Response &res);
110 bool srvCallback_CalculateOffset(force_torque_sensor::CalculateSensorOffset::Request &req, force_torque_sensor::CalculateSensorOffset::Response &res);
112 bool calculate_offset(
bool apply_after_calculation, geometry_msgs::Wrench *new_offset);
115 force_torque_sensor::DiagnosticVoltages::Response &res);
118 force_torque_sensor::SetSensorOffset::Response &res);
122 geometry_msgs::Wrench
makeAverageMeasurement(uint number_of_measurements,
double time_between_meas, std::string frame_id=
"");
124 bool transform_wrench(std::string goal_frame, std::string source_frame, geometry_msgs::Wrench wrench, geometry_msgs::Wrench& transformed);
125 bool updateTransform(std::string goal_frame, std::string source_frame);
135 force_torque_sensor::CoordinateSystemCalibrationParameters
CS_params_;
double interface_torque_[3]
bool srvCallback_CalculateOffsetWithoutGravity(std_srvs::Trigger::Request &req, std_srvs::Trigger::Response &res)
force_torque_sensor::FTSConfigurationParameters FTS_params_
ForceTorqueSensorHandle()
force_torque_sensor::CalibrationParameters calibration_params_
tf2_ros::TransformListener * p_tfListener
bool ongoing_offset_calculation
void prepareNode(std::string output_frame)
force_torque_sensor::CoordinateSystemCalibrationParameters CS_params_
geometry_msgs::TransformStamped output_transform_
bool updateTransform(std::string goal_frame, std::string source_frame)
realtime_tools::RealtimePublisher< geometry_msgs::WrenchStamped > * threshold_filtered_pub_
geometry_msgs::Wrench makeAverageMeasurement(uint number_of_measurements, double time_between_meas, std::string frame_id="")
filters::FilterBase< geometry_msgs::WrenchStamped > * gravity_compensator_
geometry_msgs::WrenchStamped filtered_data_input_
realtime_tools::RealtimePublisher< geometry_msgs::WrenchStamped > * moving_mean_pub_
filters::FilterBase< geometry_msgs::WrenchStamped > * threshold_filter_
geometry_msgs::WrenchStamped low_pass_filtered_data
bool srvCallback_CalculateAverageMasurement(force_torque_sensor::CalculateAverageMasurement::Request &req, force_torque_sensor::CalculateAverageMasurement::Response &res)
ros::ServiceServer srvServer_CalculateAverageMasurement_
geometry_msgs::WrenchStamped prefiltered_data_
bool calculate_offset(bool apply_after_calculation, geometry_msgs::Wrench *new_offset)
void updateFTData(const ros::TimerEvent &event)
realtime_tools::RealtimePublisher< geometry_msgs::WrenchStamped > * output_data_pub_
filters::FilterBase< geometry_msgs::WrenchStamped > * moving_mean_filter_
realtime_tools::RealtimePublisher< geometry_msgs::WrenchStamped > * transformed_data_pub_
realtime_tools::RealtimePublisher< geometry_msgs::WrenchStamped > * low_pass_pub_
force_torque_sensor::PublishConfigurationParameters pub_params_
geometry_msgs::WrenchStamped sensor_data
tf2_ros::Buffer * p_tfBuffer
iirob_filters::GravityCompensationParameters gravity_params_
bool srvCallback_setSensorOffset(force_torque_sensor::SetSensorOffset::Request &req, force_torque_sensor::SetSensorOffset::Response &res)
bool srvCallback_Init(std_srvs::Trigger::Request &req, std_srvs::Trigger::Response &res)
ros::ServiceServer srvServer_DetermineCoordianteSystem_
geometry_msgs::WrenchStamped moving_mean_filtered_data
bool transform_wrench(std::string goal_frame, std::string source_frame, geometry_msgs::Wrench wrench, geometry_msgs::Wrench &transformed)
bool srvCallback_CalculateOffset(force_torque_sensor::CalculateSensorOffset::Request &req, force_torque_sensor::CalculateSensorOffset::Response &res)
dynamic_reconfigure::Server< force_torque_sensor::CalibrationConfig > reconfigCalibrationSrv_
geometry_msgs::WrenchStamped transformed_data
ros::ServiceServer srvServer_SetSensorOffset
force_torque_sensor::HWCommunicationConfigurationParameters HWComm_params_
void reconfigureCalibrationRequest(force_torque_sensor::CalibrationConfig &config, uint32_t level)
std::string transform_frame_
bool useGravityCompensator
void init_sensor(std::string &msg, bool &success)
realtime_tools::RealtimePublisher< geometry_msgs::WrenchStamped > * gravity_compensated_pub_
std::timed_mutex ft_data_lock_
geometry_msgs::WrenchStamped gravity_compensated_force
geometry_msgs::WrenchStamped threshold_filtered_force
realtime_tools::RealtimePublisher< geometry_msgs::WrenchStamped > * sensor_data_pub_
boost::shared_ptr< hardware_interface::ForceTorqueSensorHW > sensor_
bool srvReadDiagnosticVoltages(force_torque_sensor::DiagnosticVoltages::Request &req, force_torque_sensor::DiagnosticVoltages::Response &res)
boost::shared_ptr< pluginlib::ClassLoader< hardware_interface::ForceTorqueSensorHW > > sensor_loader_
ros::Timer ftUpdateTimer_
ros::ServiceServer srvServer_ReCalibrate
filters::FilterBase< geometry_msgs::WrenchStamped > * low_pass_filter_
geometry_msgs::Wrench offset_
geometry_msgs::WrenchStamped output_data
force_torque_sensor::NodeConfigurationParameters node_params_
ros::ServiceServer srvServer_Temp_
ros::ServiceServer srvServer_CalculateOffset_
bool srvCallback_DetermineCoordinateSystem(std_srvs::Trigger::Request &req, std_srvs::Trigger::Response &res)
void pullFTData(const ros::TimerEvent &event)
hardware_interface::ForceTorqueSensorHW * p_Ftc
ros::ServiceServer srvServer_Init_
std::string sensor_frame_
double interface_force_[3]