biped-stabilizer 1.5.0
Stabilizer for Biped Locomotion
Loading...
Searching...
No Matches
biped_stabilizer::CopStabilizer Class Reference

#include <biped-stabilizer/cop_stabilizer.hpp>

Public Member Functions

EIGEN_MAKE_ALIGNED_OPERATOR_NEW CopStabilizer ()
 CopStabilizer (const CopStabilizerSettings &settings)
 CopStabilizer stabilize the CoP around a reference point.
virtual ~CopStabilizer ()
virtual void configure (const CopStabilizerSettings &settings)
const CopStabilizerSettingsgetSettings ()
void stabilize (const eVector3 &actual_com, const eVector3 &actual_com_vel, const eVector3 &actual_com_acc, const eVector3 &actual_cop, const eMatrixHoms &actual_stance_poses, const eVector3 &reference_com, const eVector3 &reference_com_vel, const eVector3 &reference_com_acc, const eVector3 &reference_com_jerk, eVector3 &desired_com, eVector3 &desired_com_vel, eVector3 &desired_com_acc, eVector3 &desired_icp, eVector3 &actual_icp, eVector3 &desired_cop_reference, eVector3 &desired_cop_computed)
void stabilize (const eVector3 &actual_com, const eVector3 &actual_com_vel, const eVector3 &actual_com_acc, const eVector3 &actual_cop, const Polygon2D &support_polygon, const eVector3 &reference_com, const eVector3 &reference_com_vel, const eVector3 &reference_com_acc, const eVector3 &reference_com_jerk, eVector3 &desired_com, eVector3 &desired_com_vel, eVector3 &desired_com_acc, eVector3 &desired_icp, eVector3 &actual_icp, eVector3 &desired_cop_reference, eVector3 &desired_cop_computed)
void stabilizeCOP (const eVector3 &actual_com, const eVector3 &actual_com_vel, const eVector3 &actual_com_acc, const eVector3 &actual_cop, const Polygon2D &support_polygon, const eVector3 &reference_com, const eVector3 &reference_com_vel, const eVector3 &reference_com_acc, eVector3 &desired_com, eVector3 &desired_com_vel, eVector3 &desired_com_acc, eVector3 &desired_icp, eVector3 &actual_icp, eVector3 &desired_cop_reference, eVector3 &desired_cop_computed)
void stabilizeApproximateAcceleration (const eVector3 &actual_com, const eVector3 &actual_com_vel, const eVector3 &actual_com_acc, const eVector3 &actual_cop, const Polygon2D &support_polygon, const eVector3 &reference_com, const eVector3 &reference_com_vel, const eVector3 &reference_com_acc, eVector3 &desired_com, eVector3 &desired_com_vel, eVector3 &desired_com_acc, eVector3 &desired_icp, eVector3 &actual_icp, eVector3 &desired_cop_reference, eVector3 &desired_cop_computed)
void stabilizeP_CC (const eVector3 &actual_com, const eVector3 &actual_com_vel, const eVector3 &actual_com_acc, const eVector3 &actual_cop, const Polygon2D &support_polygon, const eVector3 &reference_com, const eVector3 &reference_com_vel, const eVector3 &reference_com_acc, eVector3 &desired_com, eVector3 &desired_com_vel, eVector3 &desired_com_acc, eVector3 &desired_icp, eVector3 &actual_icp, eVector3 &desired_cop_reference, eVector3 &desired_cop_computed)
void stabilizeJerk (const eVector3 &actual_com, const eVector3 &actual_com_vel, const eVector3 &actual_com_acc, const eVector3 &actual_cop, const Polygon2D &support_polygon, const eVector3 &reference_com, const eVector3 &reference_com_vel, const eVector3 &reference_com_acc, const eVector3 &reference_com_jerk, eVector3 &desired_com, eVector3 &desired_com_vel, eVector3 &desired_com_acc, eVector3 &desired_icp, eVector3 &actual_icp, eVector3 &desired_cop_reference, eVector3 &desired_cop_computed)
double distributeForces (const eVector3 &desired_cop, const eVector2 LF_xy, const double LF_force_z, const eVector2 LF_torque_xy, const eVector2 RF_xy, const double RF_force_z, const eVector2 RF_torque_xy)
void stabilize (const eVector3 &actual_com, const eVector3 &actual_com_vel, const eVector3 &actual_com_acc, const eVector2 &actual_cop, const eMatrixHoms &actual_stance_poses, const eVector3 &reference_com, const eVector3 &reference_com_vel, const eVector3 &reference_com_acc, const eVector3 &reference_com_jerk, eVector3 &desired_com, eVector3 &desired_com_vel, eVector3 &desired_com_acc, eVector3 &desired_icp, eVector3 &actual_icp, eVector2 &desired_cop_reference, eVector2 &desired_cop_computed)
void stabilize (const eVector3 &actual_com, const eVector3 &actual_com_vel, const eVector3 &actual_com_acc, const eVector2 &actual_cop, const Polygon2D &support_polygon, const eVector3 &reference_com, const eVector3 &reference_com_vel, const eVector3 &reference_com_acc, const eVector3 &reference_com_jerk, eVector3 &desired_com, eVector3 &desired_com_vel, eVector3 &desired_com_acc, eVector3 &desired_icp, eVector3 &actual_icp, eVector2 &desired_cop_reference, eVector2 &desired_cop_computed)
void stabilizeCOP (const eVector3 &actual_com, const eVector3 &actual_com_vel, const eVector3 &actual_com_acc, const eVector2 &actual_cop, const Polygon2D &support_polygon, const eVector3 &reference_com, const eVector3 &reference_com_vel, const eVector3 &reference_com_acc, eVector3 &desired_com, eVector3 &desired_com_vel, eVector3 &desired_com_acc, eVector3 &desired_icp, eVector3 &actual_icp, eVector2 &desired_cop_reference, eVector2 &desired_cop_computed)
void stabilizeApproximateAcceleration (const eVector3 &actual_com, const eVector3 &actual_com_vel, const eVector3 &actual_com_acc, const eVector2 &actual_cop, const Polygon2D &support_polygon, const eVector3 &reference_com, const eVector3 &reference_com_vel, const eVector3 &reference_com_acc, eVector3 &desired_com, eVector3 &desired_com_vel, eVector3 &desired_com_acc, eVector3 &desired_icp, eVector3 &actual_icp, eVector2 &desired_cop_reference, eVector2 &desired_cop_computed)
void stabilizeP_CC (const eVector3 &actual_com, const eVector3 &actual_com_vel, const eVector3 &actual_com_acc, const eVector2 &actual_cop, const Polygon2D &support_polygon, const eVector3 &reference_com, const eVector3 &reference_com_vel, const eVector3 &reference_com_acc, eVector3 &desired_com, eVector3 &desired_com_vel, eVector3 &desired_com_acc, eVector3 &desired_icp, eVector3 &actual_icp, eVector2 &desired_cop_reference, eVector2 &desired_cop_computed)
void stabilizeJerk (const eVector3 &actual_com, const eVector3 &actual_com_vel, const eVector3 &actual_com_acc, const eVector2 &actual_cop, const Polygon2D &support_polygon, const eVector3 &reference_com, const eVector3 &reference_com_vel, const eVector3 &reference_com_acc, const eVector3 &reference_com_jerk, eVector3 &desired_com, eVector3 &desired_com_vel, eVector3 &desired_com_acc, eVector3 &desired_icp, eVector3 &actual_icp, eVector2 &desired_cop_reference, eVector2 &desired_cop_computed)
double distributeForces (const eVector2 &desired_cop, const eVector2 LF_xy, const double LF_force_z, const eVector2 LF_torque_xy, const eVector2 RF_xy, const double RF_force_z, const eVector2 RF_torque_xy)
std::array< eVector3, 3 > getStableCoMs (const double &com_height)
void setCOPgains (const eVector3 &cop_x_gains, const eVector3 &cop_y_gains)
void setPCCgains (const double cop_pcc_gains)
void setIntegralGains (const eVector2 &integral_gains)

Protected Attributes

Eigen::Vector3d target_com_
Eigen::Vector3d target_com_vel_
Eigen::Vector3d target_com_acc_
Eigen::Vector3d target_com_jerk_
Eigen::Vector3d non_linear_
eVector2 target_cop_
eVector2 desired_uncampled_cop_
eVector2 errorSum_
eVector2 cop_clamped
eVector2 estimated_disturbance_

Constructor & Destructor Documentation

◆ CopStabilizer() [1/2]

biped_stabilizer::CopStabilizer::CopStabilizer()

◆ CopStabilizer() [2/2]

biped_stabilizer::CopStabilizer::CopStabilizer(const CopStabilizerSettings &settings)

CopStabilizer stabilize the CoP around a reference point.

Parameters
settingsthe settings for the CoP stabilizer, see CopStabilizerSettings.

◆ ~CopStabilizer()

biped_stabilizer::CopStabilizer::~CopStabilizer()
virtual

Member Function Documentation

◆ configure()

void biped_stabilizer::CopStabilizer::configure(const CopStabilizerSettings &settings)
virtual

◆ distributeForces() [1/2]

double biped_stabilizer::CopStabilizer::distributeForces(const eVector2 &desired_cop,
const eVector2LF_xy,
const doubleLF_force_z,
const eVector2LF_torque_xy,
const eVector2RF_xy,
const doubleRF_force_z,
const eVector2RF_torque_xy )

◆ distributeForces() [2/2]

double biped_stabilizer::CopStabilizer::distributeForces(const eVector3 &desired_cop,
const eVector2LF_xy,
const doubleLF_force_z,
const eVector2LF_torque_xy,
const eVector2RF_xy,
const doubleRF_force_z,
const eVector2RF_torque_xy )

◆ getSettings()

const CopStabilizerSettings & biped_stabilizer::CopStabilizer::getSettings()
inline

◆ getStableCoMs()

std::array< eVector3, 3 > biped_stabilizer::CopStabilizer::getStableCoMs(const double &com_height)

◆ setCOPgains()

void biped_stabilizer::CopStabilizer::setCOPgains(const eVector3 &cop_x_gains,
const eVector3 &cop_y_gains )

◆ setIntegralGains()

void biped_stabilizer::CopStabilizer::setIntegralGains(const eVector2 &integral_gains)

◆ setPCCgains()

void biped_stabilizer::CopStabilizer::setPCCgains(const doublecop_pcc_gains)

◆ stabilize() [1/4]

void biped_stabilizer::CopStabilizer::stabilize(const eVector3 &actual_com,
const eVector3 &actual_com_vel,
const eVector3 &actual_com_acc,
const eVector2 &actual_cop,
const eMatrixHoms &actual_stance_poses,
const eVector3 &reference_com,
const eVector3 &reference_com_vel,
const eVector3 &reference_com_acc,
const eVector3 &reference_com_jerk,
eVector3 &desired_com,
eVector3 &desired_com_vel,
eVector3 &desired_com_acc,
eVector3 &desired_icp,
eVector3 &actual_icp,
eVector2 &desired_cop_reference,
eVector2 &desired_cop_computed )

◆ stabilize() [2/4]

void biped_stabilizer::CopStabilizer::stabilize(const eVector3 &actual_com,
const eVector3 &actual_com_vel,
const eVector3 &actual_com_acc,
const eVector2 &actual_cop,
const Polygon2D &support_polygon,
const eVector3 &reference_com,
const eVector3 &reference_com_vel,
const eVector3 &reference_com_acc,
const eVector3 &reference_com_jerk,
eVector3 &desired_com,
eVector3 &desired_com_vel,
eVector3 &desired_com_acc,
eVector3 &desired_icp,
eVector3 &actual_icp,
eVector2 &desired_cop_reference,
eVector2 &desired_cop_computed )

◆ stabilize() [3/4]

void biped_stabilizer::CopStabilizer::stabilize(const eVector3 &actual_com,
const eVector3 &actual_com_vel,
const eVector3 &actual_com_acc,
const eVector3 &actual_cop,
const eMatrixHoms &actual_stance_poses,
const eVector3 &reference_com,
const eVector3 &reference_com_vel,
const eVector3 &reference_com_acc,
const eVector3 &reference_com_jerk,
eVector3 &desired_com,
eVector3 &desired_com_vel,
eVector3 &desired_com_acc,
eVector3 &desired_icp,
eVector3 &actual_icp,
eVector3 &desired_cop_reference,
eVector3 &desired_cop_computed )

◆ stabilize() [4/4]

void biped_stabilizer::CopStabilizer::stabilize(const eVector3 &actual_com,
const eVector3 &actual_com_vel,
const eVector3 &actual_com_acc,
const eVector3 &actual_cop,
const Polygon2D &support_polygon,
const eVector3 &reference_com,
const eVector3 &reference_com_vel,
const eVector3 &reference_com_acc,
const eVector3 &reference_com_jerk,
eVector3 &desired_com,
eVector3 &desired_com_vel,
eVector3 &desired_com_acc,
eVector3 &desired_icp,
eVector3 &actual_icp,
eVector3 &desired_cop_reference,
eVector3 &desired_cop_computed )

◆ stabilizeApproximateAcceleration() [1/2]

void biped_stabilizer::CopStabilizer::stabilizeApproximateAcceleration(const eVector3 &actual_com,
const eVector3 &actual_com_vel,
const eVector3 &actual_com_acc,
const eVector2 &actual_cop,
const Polygon2D &support_polygon,
const eVector3 &reference_com,
const eVector3 &reference_com_vel,
const eVector3 &reference_com_acc,
eVector3 &desired_com,
eVector3 &desired_com_vel,
eVector3 &desired_com_acc,
eVector3 &desired_icp,
eVector3 &actual_icp,
eVector2 &desired_cop_reference,
eVector2 &desired_cop_computed )
Todo
create a low pass filter on the DCM

◆ stabilizeApproximateAcceleration() [2/2]

void biped_stabilizer::CopStabilizer::stabilizeApproximateAcceleration(const eVector3 &actual_com,
const eVector3 &actual_com_vel,
const eVector3 &actual_com_acc,
const eVector3 &actual_cop,
const Polygon2D &support_polygon,
const eVector3 &reference_com,
const eVector3 &reference_com_vel,
const eVector3 &reference_com_acc,
eVector3 &desired_com,
eVector3 &desired_com_vel,
eVector3 &desired_com_acc,
eVector3 &desired_icp,
eVector3 &actual_icp,
eVector3 &desired_cop_reference,
eVector3 &desired_cop_computed )

◆ stabilizeCOP() [1/2]

void biped_stabilizer::CopStabilizer::stabilizeCOP(const eVector3 &actual_com,
const eVector3 &actual_com_vel,
const eVector3 &actual_com_acc,
const eVector2 &actual_cop,
const Polygon2D &support_polygon,
const eVector3 &reference_com,
const eVector3 &reference_com_vel,
const eVector3 &reference_com_acc,
eVector3 &desired_com,
eVector3 &desired_com_vel,
eVector3 &desired_com_acc,
eVector3 &desired_icp,
eVector3 &actual_icp,
eVector2 &desired_cop_reference,
eVector2 &desired_cop_computed )
Todo
create a low pass filter on the DCM

◆ stabilizeCOP() [2/2]

void biped_stabilizer::CopStabilizer::stabilizeCOP(const eVector3 &actual_com,
const eVector3 &actual_com_vel,
const eVector3 &actual_com_acc,
const eVector3 &actual_cop,
const Polygon2D &support_polygon,
const eVector3 &reference_com,
const eVector3 &reference_com_vel,
const eVector3 &reference_com_acc,
eVector3 &desired_com,
eVector3 &desired_com_vel,
eVector3 &desired_com_acc,
eVector3 &desired_icp,
eVector3 &actual_icp,
eVector3 &desired_cop_reference,
eVector3 &desired_cop_computed )

◆ stabilizeJerk() [1/2]

void biped_stabilizer::CopStabilizer::stabilizeJerk(const eVector3 &actual_com,
const eVector3 &actual_com_vel,
const eVector3 &actual_com_acc,
const eVector2 &actual_cop,
const Polygon2D &support_polygon,
const eVector3 &reference_com,
const eVector3 &reference_com_vel,
const eVector3 &reference_com_acc,
const eVector3 &reference_com_jerk,
eVector3 &desired_com,
eVector3 &desired_com_vel,
eVector3 &desired_com_acc,
eVector3 &desired_icp,
eVector3 &actual_icp,
eVector2 &desired_cop_reference,
eVector2 &desired_cop_computed )
Todo
create a low pass filter on the DCM

◆ stabilizeJerk() [2/2]

void biped_stabilizer::CopStabilizer::stabilizeJerk(const eVector3 &actual_com,
const eVector3 &actual_com_vel,
const eVector3 &actual_com_acc,
const eVector3 &actual_cop,
const Polygon2D &support_polygon,
const eVector3 &reference_com,
const eVector3 &reference_com_vel,
const eVector3 &reference_com_acc,
const eVector3 &reference_com_jerk,
eVector3 &desired_com,
eVector3 &desired_com_vel,
eVector3 &desired_com_acc,
eVector3 &desired_icp,
eVector3 &actual_icp,
eVector3 &desired_cop_reference,
eVector3 &desired_cop_computed )

◆ stabilizeP_CC() [1/2]

void biped_stabilizer::CopStabilizer::stabilizeP_CC(const eVector3 &actual_com,
const eVector3 &actual_com_vel,
const eVector3 &actual_com_acc,
const eVector2 &actual_cop,
const Polygon2D &support_polygon,
const eVector3 &reference_com,
const eVector3 &reference_com_vel,
const eVector3 &reference_com_acc,
eVector3 &desired_com,
eVector3 &desired_com_vel,
eVector3 &desired_com_acc,
eVector3 &desired_icp,
eVector3 &actual_icp,
eVector2 &desired_cop_reference,
eVector2 &desired_cop_computed )
Todo
create a low pass filter on the DCM (actually not in the DCM, it should be on the feedback signal)

◆ stabilizeP_CC() [2/2]

void biped_stabilizer::CopStabilizer::stabilizeP_CC(const eVector3 &actual_com,
const eVector3 &actual_com_vel,
const eVector3 &actual_com_acc,
const eVector3 &actual_cop,
const Polygon2D &support_polygon,
const eVector3 &reference_com,
const eVector3 &reference_com_vel,
const eVector3 &reference_com_acc,
eVector3 &desired_com,
eVector3 &desired_com_vel,
eVector3 &desired_com_acc,
eVector3 &desired_icp,
eVector3 &actual_icp,
eVector3 &desired_cop_reference,
eVector3 &desired_cop_computed )

Member Data Documentation

◆ cop_clamped

eVector2 biped_stabilizer::CopStabilizer::cop_clamped
protected

◆ desired_uncampled_cop_

eVector2 biped_stabilizer::CopStabilizer::desired_uncampled_cop_
protected

◆ errorSum_

eVector2 biped_stabilizer::CopStabilizer::errorSum_
protected

◆ estimated_disturbance_

eVector2 biped_stabilizer::CopStabilizer::estimated_disturbance_
protected

◆ non_linear_

Eigen::Vector3d biped_stabilizer::CopStabilizer::non_linear_
protected

◆ target_com_

Eigen::Vector3d biped_stabilizer::CopStabilizer::target_com_
protected

◆ target_com_acc_

Eigen::Vector3d biped_stabilizer::CopStabilizer::target_com_acc_
protected

◆ target_com_jerk_

Eigen::Vector3d biped_stabilizer::CopStabilizer::target_com_jerk_
protected

◆ target_com_vel_

Eigen::Vector3d biped_stabilizer::CopStabilizer::target_com_vel_
protected

◆ target_cop_

eVector2 biped_stabilizer::CopStabilizer::target_cop_
protected

The documentation for this class was generated from the following files: