joint_impedance_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 
13 #include <ros/node_handle.h>
14 #include <ros/time.h>
15 
16 #include <franka_example_controllers/JointTorqueComparison.h>
19 #include <franka_hw/trigger_rate.h>
20 
22 
24  franka_hw::FrankaModelInterface,
25  hardware_interface::EffortJointInterface,
26  franka_hw::FrankaPoseCartesianInterface> {
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  std::array<double, 7> saturateTorqueRate(
35  const std::array<double, 7>& tau_d_calculated,
36  const std::array<double, 7>& tau_J_d); // NOLINT (readability-identifier-naming)
37 
38  std::unique_ptr<franka_hw::FrankaCartesianPoseHandle> cartesian_pose_handle_;
39  std::unique_ptr<franka_hw::FrankaModelHandle> model_handle_;
40  std::vector<hardware_interface::JointHandle> joint_handles_;
41 
42  static constexpr double kDeltaTauMax{1.0};
43  double radius_{0.1};
44  double acceleration_time_{2.0};
45  double vel_max_{0.05};
46  double angle_{0.0};
47  double vel_current_{0.0};
48 
49  std::vector<double> k_gains_;
50  std::vector<double> d_gains_;
51  double coriolis_factor_{1.0};
52  std::array<double, 7> dq_filtered_;
53  std::array<double, 16> initial_pose_;
54 
56  std::array<double, 7> last_tau_d_{};
58 };
59 
60 } // namespace franka_example_controllers
realtime_publisher.h
node_handle.h
franka_example_controllers::JointImpedanceExampleController::kDeltaTauMax
static constexpr double kDeltaTauMax
Definition: joint_impedance_example_controller.h:42
franka_example_controllers::JointImpedanceExampleController::saturateTorqueRate
std::array< double, 7 > saturateTorqueRate(const std::array< double, 7 > &tau_d_calculated, const std::array< double, 7 > &tau_J_d)
Definition: joint_impedance_example_controller.cpp:200
franka_example_controllers::JointImpedanceExampleController::acceleration_time_
double acceleration_time_
Definition: joint_impedance_example_controller.h:44
franka_example_controllers::JointImpedanceExampleController::d_gains_
std::vector< double > d_gains_
Definition: joint_impedance_example_controller.h:50
franka_example_controllers::JointImpedanceExampleController::vel_current_
double vel_current_
Definition: joint_impedance_example_controller.h:47
franka_example_controllers::JointImpedanceExampleController::coriolis_factor_
double coriolis_factor_
Definition: joint_impedance_example_controller.h:51
franka_example_controllers::JointImpedanceExampleController::initial_pose_
std::array< double, 16 > initial_pose_
Definition: joint_impedance_example_controller.h:53
time.h
franka_example_controllers::JointImpedanceExampleController
Definition: joint_impedance_example_controller.h:23
trigger_rate.h
franka_example_controllers::JointImpedanceExampleController::vel_max_
double vel_max_
Definition: joint_impedance_example_controller.h:45
realtime_tools::RealtimePublisher< JointTorqueComparison >
franka_example_controllers::JointImpedanceExampleController::update
void update(const ros::Time &, const ros::Duration &period) override
Definition: joint_impedance_example_controller.cpp:134
franka_example_controllers
Definition: cartesian_impedance_example_controller.h:23
joint_command_interface.h
hardware_interface::RobotHW
franka_example_controllers::JointImpedanceExampleController::starting
void starting(const ros::Time &) override
Definition: joint_impedance_example_controller.cpp:130
controller_interface::MultiInterfaceController
franka_example_controllers::JointImpedanceExampleController::angle_
double angle_
Definition: joint_impedance_example_controller.h:46
franka_example_controllers::JointImpedanceExampleController::last_tau_d_
std::array< double, 7 > last_tau_d_
Definition: joint_impedance_example_controller.h:56
franka_example_controllers::JointImpedanceExampleController::model_handle_
std::unique_ptr< franka_hw::FrankaModelHandle > model_handle_
Definition: joint_impedance_example_controller.h:39
ros::Time
franka_model_interface.h
franka_example_controllers::JointImpedanceExampleController::cartesian_pose_handle_
std::unique_ptr< franka_hw::FrankaCartesianPoseHandle > cartesian_pose_handle_
Definition: joint_impedance_example_controller.h:38
franka_example_controllers::JointImpedanceExampleController::radius_
double radius_
Definition: joint_impedance_example_controller.h:43
franka_example_controllers::JointImpedanceExampleController::k_gains_
std::vector< double > k_gains_
Definition: joint_impedance_example_controller.h:49
franka_example_controllers::JointImpedanceExampleController::rate_trigger_
franka_hw::TriggerRate rate_trigger_
Definition: joint_impedance_example_controller.h:55
robot_hw.h
franka_example_controllers::JointImpedanceExampleController::init
bool init(hardware_interface::RobotHW *robot_hw, ros::NodeHandle &node_handle) override
Definition: joint_impedance_example_controller.cpp:16
franka_hw::TriggerRate
franka_example_controllers::JointImpedanceExampleController::dq_filtered_
std::array< double, 7 > dq_filtered_
Definition: joint_impedance_example_controller.h:52
franka_example_controllers::JointImpedanceExampleController::joint_handles_
std::vector< hardware_interface::JointHandle > joint_handles_
Definition: joint_impedance_example_controller.h:40
ros::Duration
franka_example_controllers::JointImpedanceExampleController::torques_publisher_
realtime_tools::RealtimePublisher< JointTorqueComparison > torques_publisher_
Definition: joint_impedance_example_controller.h:57
franka_cartesian_command_interface.h
ros::NodeHandle
multi_interface_controller.h


franka_example_controllers
Author(s): Franka Emika GmbH
autogenerated on Mon Sep 19 2022 02:33:26