55 const std::string& ft_frame_id,
56 const std::string& ft_raw_publish_name,
const std::string& ft_scaled_publish_name)
89 if( (ft_null.rows() != 6) || (ft_null.cols() != 1) ){
107 std::string _ft_mat_key = ft_data_key +
"_calibration_matrix";
108 std::string _ft_unload_key = ft_data_key +
"_unload";
112 doc = YAML::LoadFile(ft_data_path.c_str());
114 std::vector<double> _ft;
116 _ft = doc[_ft_mat_key].as< std::vector<double> >();
117 ft_coeff_mat_ = Eigen::Map<Eigen::MatrixXd>(_ft.data(), 6, 6);
118 ft_coeff_mat_.transposeInPlace();
119 std::cout <<
"[" <<_ft_mat_key <<
"_mat]" <<std::endl;
120 std::cout << ft_coeff_mat_ <<std::endl;
123 _ft = doc[_ft_unload_key].as< std::vector<double> >();
125 std::cout <<
"[" <<_ft_unload_key <<
"]" << std::endl;
126 std::cout << ft_unload_volatge_.transpose() << std::endl;
133 double voltage3,
double voltage4,
double voltage5)
168 if((voltage.rows() != 6) || (voltage.cols() != 1)) {
174 voltage.coeff(3,0), voltage.coeff(4,0), voltage.coeff(5,0));
188 double* torque_x_Nm,
double* torque_y_Nm,
double* torque_z_Nm)
190 *force_x_N =
ft_raw_.coeff(0,0);
191 *force_y_N =
ft_raw_.coeff(1,0);
192 *force_z_N =
ft_raw_.coeff(2,0);
193 *torque_x_Nm =
ft_raw_.coeff(3,0);
194 *torque_y_Nm =
ft_raw_.coeff(4,0);
195 *torque_z_Nm =
ft_raw_.coeff(5,0);
199 double* torque_x_Nm,
double* torque_y_Nm,
double* torque_z_Nm)
210 double voltage3,
double voltage4,
double voltage5)
223 if((voltage.rows() != 6) || (voltage.cols() != 1)) {
ros::Publisher ft_raw_pub_
Eigen::MatrixXd getCurrentForceTorqueRaw()
void setCurrentVoltageOutput(double voltage0, double voltage1, double voltage2, double voltage3, double voltage4, double voltage5)
void publish(const boost::shared_ptr< M > &message) const
bool is_ft_scaled_published_
ATIForceTorqueSensorTWE()
std::string ft_scaled_publish_name_
Eigen::MatrixXd ft_scaled_
boost::mutex ft_scale_param_mutex_
bool is_ft_raw_published_
void setScaleParam(double ft_scale_factor, Eigen::MatrixXd ft_null)
void setCurrentVoltageOutputPublish(double voltage0, double voltage1, double voltage2, double voltage3, double voltage4, double voltage5)
void setScaleFactror(double ft_scale_factor)
Publisher advertise(const std::string &topic, uint32_t queue_size, bool latch=false)
Eigen::MatrixXd ft_current_volatge_
bool parseFTData(const std::string &ft_data_path, const std::string &ft_data_key)
bool initialize(const std::string &ft_data_path, const std::string &ft_data_key, const std::string &ft_frame_id, const std::string &ft_raw_publish_name, const std::string &ft_scaled_publish_name)
~ATIForceTorqueSensorTWE()
geometry_msgs::WrenchStamped ft_raw_msg_
void setNullForceTorque(Eigen::MatrixXd _ft_null)
Eigen::MatrixXd ft_coeff_mat_
std::string ft_raw_publish_name_
Eigen::MatrixXd ft_unload_volatge_
Eigen::MatrixXd getCurrentForceTorqueScaled()
geometry_msgs::WrenchStamped ft_scaled_msg_
ros::Publisher ft_scaled_pub_