Go to the documentation of this file.
55 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
75 double stiffness = 5.0,
76 double weight = 1000.0);
96 void reset()
override;
105 const sva::PTransformd &
targetPose() const noexcept {
return targetPoseW_; }
108 void targetPose(
const sva::PTransformd & pose) { targetPoseW_ = pose; }
111 const sva::MotionVecd &
targetVel() const noexcept {
return targetVelW_; }
114 void targetVel(
const sva::MotionVecd & worldVel)
override { targetVelW_ = worldVel; }
117 const sva::MotionVecd &
targetAccel() const noexcept {
return targetAccelW_; }
120 void targetAccel(
const sva::MotionVecd & accel) { targetAccelW_ = accel; }
133 sva::PTransformd T_0_d(targetPoseW_.rotation());
134 return T_0_d * deltaCompPoseW_ * T_0_d.inv() * targetPoseW_;
138 const sva::ForceVecd &
targetWrench() const noexcept {
return targetWrench_; }
144 void targetWrenchW(
const sva::ForceVecd & wrenchW) { targetWrench(frame_->position().dualMul(wrenchW)); }
147 void targetWrench(
const sva::ForceVecd & wrench) { targetWrench_ = wrench; }
161 cutoffPeriod_ = cutoffPeriod;
162 lowPass_.cutoffPeriod(cutoffPeriod_);
166 inline bool hold() const noexcept {
return hold_; }
178 inline void hold(
bool hold) noexcept { hold_ =
hold; }
191 sva::PTransformd deltaCompPoseW_ = sva::PTransformd::Identity();
192 sva::MotionVecd deltaCompVelW_ = sva::MotionVecd::Zero();
193 sva::MotionVecd deltaCompAccelW_ = sva::MotionVecd::Zero();
197 double deltaCompPoseLinLimit_ = 1.0;
199 double deltaCompVelLinLimit_ = 1e3;
200 double deltaCompVelAngLimit_ = 1e3;
201 double deltaCompAccelLinLimit_ = 1e3;
202 double deltaCompAccelAngLimit_ = 1e3;
205 sva::PTransformd targetPoseW_ = sva::PTransformd::Identity();
206 sva::MotionVecd targetVelW_ = sva::MotionVecd::Zero();
207 sva::MotionVecd targetAccelW_ = sva::MotionVecd::Zero();
210 sva::ForceVecd targetWrench_ = sva::ForceVecd::Zero();
211 sva::ForceVecd measuredWrench_ = sva::ForceVecd::Zero();
212 sva::ForceVecd filteredMeasuredWrench_ = sva::ForceVecd::Zero();
214 double cutoffPeriod_ = 0.05;
238 void target(
const sva::PTransformd & pos)
override { targetPose(pos); }
241 sva::PTransformd target()
const override {
return targetPose(); }
const sva::ForceVecd & targetWrench() const noexcept
Get the target wrench in the surface frame.
Definition: ImpedanceTask.h:138
Simplify access to values hold within a JSON file.
Definition: Configuration.h:165
static ImpedanceGains Default()
Definition: ImpedanceGains.h:132
#define MC_TASKS_DLLAPI
Definition: api.h:50
Definition: QPSolver.h:85
void cutoffPeriod(double cutoffPeriod)
Set the cutoff period for the low-pass filter of measured wrench.
Definition: ImpedanceTask.h:159
Represent impedance gains for an ImpedanceTask.
Definition: ImpedanceGains.h:95
void targetVel(const sva::MotionVecd &worldVel) override
Set the target velocity of the surface in the world frame.
Definition: ImpedanceTask.h:114
const sva::ForceVecd & filteredMeasuredWrench() const
Get the filtered measured wrench in the surface frame.
Definition: ImpedanceTask.h:153
void hold(bool hold) noexcept
Set hold mode.
Definition: ImpedanceTask.h:178
void targetWrench(const sva::ForceVecd &wrench)
Set the target wrench in the surface frame.
Definition: ImpedanceTask.h:147
const sva::PTransformd compliancePose() const
Get the compliance pose of the surface in the world frame.
Definition: ImpedanceTask.h:131
const sva::ForceVecd & measuredWrench() const
Get the measured wrench in the surface frame.
Definition: ImpedanceTask.h:150
Logs controller data to disk.
Definition: Logger.h:29
const sva::MotionVecd & targetVel() const noexcept
Get the target velocity of the surface in the world frame.
Definition: ImpedanceTask.h:111
Definition: RobotFrame.h:21
ImpedanceGains & gains() noexcept
Access the impedance gains.
Definition: ImpedanceTask.h:102
const Eigen::VectorXd & refAccel() const
Get the trajectory reference acceleration.
const ImpedanceGains & gains() const noexcept
Access the impedance gains.
Definition: ImpedanceTask.h:99
mc_filter::LowPass< sva::ForceVecd > lowPass_
Definition: ImpedanceTask.h:215
Definition: StateBuilder.h:27
const sva::MotionVecd & targetAccel() const noexcept
Get the target acceleration of the surface in the world frame.
Definition: ImpedanceTask.h:117
bool hold() const noexcept
Get whether hold mode is enabled.
Definition: ImpedanceTask.h:166
constexpr double PI
Definition: constants.h:18
void targetPose(const sva::PTransformd &pose)
Set the target pose of the surface in the world frame.
Definition: ImpedanceTask.h:108
void targetWrenchW(const sva::ForceVecd &wrenchW)
Set the target wrench in the world frame. This function will convert the wrench from the world frame ...
Definition: ImpedanceTask.h:144
Impedance control of the end-effector.
Definition: ImpedanceTask.h:52
void targetAccel(const sva::MotionVecd &accel)
Set the target acceleration of the surface in the world frame.
Definition: ImpedanceTask.h:120
const sva::PTransformd & deltaCompliancePose() const
Get the relative pose from target frame to compliance frame represented in the world frame.
Definition: ImpedanceTask.h:123
double cutoffPeriod() const
Get the cutoff period for the low-pass filter of measured wrench.
Definition: ImpedanceTask.h:156
Definition: StabilizerStandingState.h:11
const sva::PTransformd & targetPose() const noexcept
Get the target pose of the surface in the world frame.
Definition: ImpedanceTask.h:105