franky 1.1.4
A High-Level Motion API for Franka
Loading...
Searching...
No Matches
joint_impedance_tracking_motion.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <functional>
4#include <optional>
5
8
9namespace franky {
10
19
27 public:
30 std::function<JointReference(const RobotState &, franka::Duration, franka::Duration, franka::Duration)>;
31
32 explicit JointImpedanceTrackingMotion(const Params &params = Params{}, double gains_time_constant = 0.1);
34 ReferenceCallback reference_callback, const Params &params = Params{}, double gains_time_constant = 0.1);
35
36 void setReference(const JointReference &reference) {
37 reference.validate();
38 reference_handle_.set(reference);
39 }
40 [[nodiscard]] std::optional<JointReference> getReference() const { return reference_handle_.getLastWritten(); }
41
42 protected:
43 void initImpl(const RobotState &robot_state, const std::optional<franka::Torques> &previous_command) override;
44 franka::Torques nextCommandImpl(
45 const RobotState &robot_state, franka::Duration time_step, franka::Duration rel_time, franka::Duration abs_time,
46 const std::optional<franka::Torques> &previous_command) override;
47
48 private:
49 JointReferenceHandle reference_handle_{std::nullopt};
50 ReferenceCallback reference_callback_;
51};
52
53} // namespace franky
Base class for client-side joint impedance motions.
Definition joint_impedance_base.hpp:108
const JointImpedanceParams & params() const
Definition joint_impedance_base.hpp:112
Client-side joint impedance controller with a dynamic online reference.
Definition joint_impedance_tracking_motion.hpp:26
JointImpedanceParams Params
Definition joint_impedance_tracking_motion.hpp:28
void setReference(const JointReference &reference)
Definition joint_impedance_tracking_motion.hpp:36
franka::Torques nextCommandImpl(const RobotState &robot_state, franka::Duration time_step, franka::Duration rel_time, franka::Duration abs_time, const std::optional< franka::Torques > &previous_command) override
Definition joint_impedance_tracking_motion.cpp:19
std::optional< JointReference > getReference() const
Definition joint_impedance_tracking_motion.hpp:40
std::function< JointReference(const RobotState &, franka::Duration, franka::Duration, franka::Duration)> ReferenceCallback
Definition joint_impedance_tracking_motion.hpp:30
void initImpl(const RobotState &robot_state, const std::optional< franka::Torques > &previous_command) override
Definition joint_impedance_tracking_motion.cpp:13
void set(const T &value)
Publish new data.
Definition wait_free_triple_buffer.hpp:26
T getLastWritten() const
Get the most recently written value from the writer's side.
Definition wait_free_triple_buffer.hpp:49
Definition dynamics_limit.cpp:8
Parameters for joint impedance motions.
Definition joint_impedance_base.hpp:64
Joint-space reference for joint impedance motions.
Definition joint_impedance_base.hpp:28
void validate() const
Throw std::invalid_argument if any value is non-finite.
Definition joint_impedance_base.hpp:34
Full state of the robot.
Definition robot_state.hpp:40