force_example_controller.h
Go to the documentation of this file.
1 // Copyright (c) 2017 Franka Emika GmbH
2 // Use of this source code is governed by the Apache-2.0 license, see LICENSE
3 #pragma once
4 
5 #include <memory>
6 #include <string>
7 #include <vector>
8 
10 #include <dynamic_reconfigure/server.h>
15 #include <ros/node_handle.h>
16 #include <ros/time.h>
17 #include <Eigen/Core>
18 
19 #include <franka_example_controllers/desired_mass_paramConfig.h>
20 
22 
24  franka_hw::FrankaModelInterface,
25  hardware_interface::EffortJointInterface,
26  franka_hw::FrankaStateInterface> {
27  public:
28  bool init(hardware_interface::RobotHW* robot_hw, ros::NodeHandle& node_handle) override;
29  void starting(const ros::Time&) override;
30  void update(const ros::Time&, const ros::Duration& period) override;
31 
32  private:
33  // Saturation
34  Eigen::Matrix<double, 7, 1> saturateTorqueRate(
35  const Eigen::Matrix<double, 7, 1>& tau_d_calculated,
36  const Eigen::Matrix<double, 7, 1>& tau_J_d); // NOLINT (readability-identifier-naming)
37 
38  std::unique_ptr<franka_hw::FrankaModelHandle> model_handle_;
39  std::unique_ptr<franka_hw::FrankaStateHandle> state_handle_;
40  std::vector<hardware_interface::JointHandle> joint_handles_;
41 
42  double desired_mass_{0.0};
43  double target_mass_{0.0};
44  double k_p_{0.0};
45  double k_i_{0.0};
46  double target_k_p_{0.0};
47  double target_k_i_{0.0};
48  double filter_gain_{0.001};
49  Eigen::Matrix<double, 7, 1> tau_ext_initial_;
50  Eigen::Matrix<double, 7, 1> tau_error_;
51  static constexpr double kDeltaTauMax{1.0};
52 
53  // Dynamic reconfigure
54  std::unique_ptr<dynamic_reconfigure::Server<franka_example_controllers::desired_mass_paramConfig>>
57  void desiredMassParamCallback(franka_example_controllers::desired_mass_paramConfig& config,
58  uint32_t level);
59 };
60 
61 } // namespace franka_example_controllers
bool init(hardware_interface::RobotHW *robot_hw, ros::NodeHandle &node_handle) override
Eigen::Matrix< double, 7, 1 > saturateTorqueRate(const Eigen::Matrix< double, 7, 1 > &tau_d_calculated, const Eigen::Matrix< double, 7, 1 > &tau_J_d)
void desiredMassParamCallback(franka_example_controllers::desired_mass_paramConfig &config, uint32_t level)
std::vector< hardware_interface::JointHandle > joint_handles_
std::unique_ptr< dynamic_reconfigure::Server< franka_example_controllers::desired_mass_paramConfig > > dynamic_server_desired_mass_param_
std::unique_ptr< franka_hw::FrankaModelHandle > model_handle_
std::unique_ptr< franka_hw::FrankaStateHandle > state_handle_
void update(const ros::Time &, const ros::Duration &period) override


franka_example_controllers
Author(s): Franka Emika GmbH
autogenerated on Fri Oct 23 2020 03:47:17