franky 1.1.4
A High-Level Motion API for Franka
Loading...
Searching...
No Matches
stop_motion.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <franka/control_types.h>
4
5#include <optional>
6
16#include "franky/types.hpp"
17
18namespace franky {
19
20template <typename ControlSignalType>
22
26template <>
27class StopMotion<franka::JointPositions> : public JointMotion {
28 public:
34 explicit StopMotion(const RelativeDynamicsFactor &relative_dynamics_factor = 1.0)
35 : JointMotion(JointState(Vector7d::Zero()), ReferenceType::kRelative, relative_dynamics_factor) {}
36};
37
41template <>
43 public:
49 explicit StopMotion(const RelativeDynamicsFactor &relative_dynamics_factor = 1.0)
50 : JointVelocityMotion(Vector7d::Zero(), franka::Duration(0), relative_dynamics_factor) {}
51};
52
56template <>
58 public:
64 explicit StopMotion(const RelativeDynamicsFactor &relative_dynamics_factor = 1.0)
67 {
68 .target = RobotPose(),
69 .hold_target_duration = franka::Duration(50),
70 },
72 relative_dynamics_factor) {}
73};
74
78template <>
80 public:
86 explicit StopMotion(const RelativeDynamicsFactor &relative_dynamics_factor = 1.0)
87 : CartesianVelocityMotion(RobotVelocity(), franka::Duration(0), relative_dynamics_factor) {}
88};
89
96
101 double ramp_duration{0.2};
102
104 double velocity_epsilon{0.02};
105
107 double max_duration{2.0};
108
111
113 double max_delta_tau{1.0};
114};
115
124template <>
125class StopMotion<franka::Torques> : public Motion<franka::Torques> {
126 public:
127 explicit StopMotion(const TorqueStopParams &params = {}) : params_(params) {}
128
129 protected:
130 void initImpl(const RobotState &robot_state, const std::optional<franka::Torques> &previous_command) override;
131
132 franka::Torques nextCommandImpl(
133 const RobotState &robot_state, franka::Duration time_step, franka::Duration rel_time, franka::Duration abs_time,
134 const std::optional<franka::Torques> &previous_command) override;
135
136 private:
137 TorqueStopParams params_;
138 // Initial torque command captured in initImpl.
139 Vector7d tau_start_{Vector7d::Zero()};
140};
141
142} // namespace franky
Cartesian velocity motion with a single target velocity.
Definition cartesian_velocity_motion.hpp:10
Cartesian waypoint motion.
Definition cartesian_waypoint_motion.hpp:24
Joint motion with a single target.
Definition joint_motion.hpp:12
Joint state of a robot.
Definition joint_state.hpp:16
Joint velocity motion with a single target.
Definition joint_velocity_motion.hpp:11
Base class for motions.
Definition motion.hpp:25
Relative dynamics factors.
Definition relative_dynamics_factor.hpp:13
Cartesian pose of a robot.
Definition robot_pose.hpp:19
Cartesian velocity of a robot.
Definition robot_velocity.hpp:20
StopMotion(const RelativeDynamicsFactor &relative_dynamics_factor=1.0)
Definition stop_motion.hpp:64
StopMotion(const RelativeDynamicsFactor &relative_dynamics_factor=1.0)
Definition stop_motion.hpp:86
StopMotion(const RelativeDynamicsFactor &relative_dynamics_factor=1.0)
Definition stop_motion.hpp:34
StopMotion(const RelativeDynamicsFactor &relative_dynamics_factor=1.0)
Definition stop_motion.hpp:49
StopMotion(const TorqueStopParams &params={})
Definition stop_motion.hpp:127
Definition stop_motion.hpp:21
Definition dynamics_limit.cpp:8
std::array< double, dims > toStdD(const Eigen::Matrix< double, dims, 1 > &vector)
Definition util.hpp:18
ReferenceType
Enum class for reference types.
Definition reference_type.hpp:11
Vector7d defaultJointImpedanceDamping()
Definition joint_impedance_base.hpp:18
Eigen::Vector< double, 7 > Vector7d
Definition types.hpp:11
@ CartesianVelocities
Definition control_signal_type.hpp:8
@ CartesianPose
Definition control_signal_type.hpp:8
@ JointVelocities
Definition control_signal_type.hpp:8
@ JointPositions
Definition control_signal_type.hpp:8
@ Torques
Definition control_signal_type.hpp:8
A position waypoint with a target and optional parameters.
Definition position_waypoint_motion.hpp:20
Parameters for the torque-control stop motion (StopMotion<franka::Torques>).
Definition stop_motion.hpp:93
bool compensate_coriolis
Definition stop_motion.hpp:110
double max_delta_tau
Definition stop_motion.hpp:113
double max_duration
Definition stop_motion.hpp:107
double ramp_duration
Definition stop_motion.hpp:101
double velocity_epsilon
Definition stop_motion.hpp:104
Vector7d damping
Definition stop_motion.hpp:95
TargetType target
Definition waypoint_motion.hpp:37