6 #ifndef GAIT_INVERSE_POSE_H
7 #define GAIT_INVERSE_POSE_H
10 #include <gait/util/gait_common_pose.h>
11 #include <Eigen/Geometry>
24 class AbstractLegPose;
25 class AbstractArmPose;
46 inline void reset(
bool left =
true)
49 setPose(Eigen::Vector3d::Zero(), Eigen::Quaterniond::Identity());
57 inline void setPose(
const Eigen::Vector3d& footPosition,
const Eigen::Quaterniond& footRotation = Eigen::Quaterniond::Identity())
64 inline void setPoseMirrored(
const Eigen::Vector3d& footPosition,
const Eigen::Quaterniond& footRotation = Eigen::Quaterniond::Identity())
93 void fromJointAngles(
double hipYaw,
double hipRoll,
double hipPitch,
double kneePitch,
double anklePitch,
double ankleRoll);
96 void getJointAngles(
double& hipYaw,
double& hipRoll,
double& hipPitch,
double& kneePitch,
double& anklePitch,
double& ankleRoll)
const;
165 void fromJointAngles(
double shoulderPitch,
double shoulderRoll,
double elbowPitch);
168 void getJointAngles(
double& shoulderPitch,
double& shoulderRoll,
double& elbowPitch)
const;
void setLinkLength(double length)
Set the link length used for pose conversions.
Definition: gait_common_pose.h:178
void setLinkLengths(double legLinkLength, double armLinkLength)
Set the arm and leg link lengths used for pose conversions.
Definition: gait_inverse_pose.h:211
CommonArmData cad
Data that is shared by all arm pose representations.
Definition: gait_inverse_pose.h:175
InverseLegPose(bool left=true)
Default constructor.
Definition: gait_inverse_pose.h:43
InverseArmPose leftArm
Inverse pose of the left arm.
Definition: gait_inverse_pose.h:264
void reset(bool left=true)
Reset function.
Definition: gait_common_pose.h:135
void setLegsFromAbstractPose(const AbstractLegPose &left, const AbstractLegPose &right)
Set the inverse leg poses to given abstract poses.
Definition: gait_inverse_pose.h:237
Data struct that contains the information pertaining to an arm pose that should be common amongst all...
Definition: gait_common_pose.h:125
void setLinkLength(double length)
Set the link length used for pose conversions.
Definition: gait_inverse_pose.h:149
Data struct that encompasses the joint representation of a robot pose.
Definition: gait_joint_pose.h:242
InverseArmPose rightArm
Inverse pose of the right arm.
Definition: gait_inverse_pose.h:265
InversePose()
Default constructor.
Definition: gait_inverse_pose.h:195
CommonLegData cld
Data that is shared by all leg pose representations.
Definition: gait_inverse_pose.h:103
void setFromAbstractPose(const AbstractArmPose &pose)
Set the inverse arm pose to a given abstract arm pose.
Definition: gait_inverse_pose.cpp:144
Data struct that encompasses the abstract representation of an arm pose.
Definition: gait_abstract_pose.h:136
void setFromJointPose(const JointPose &pose)
Set the inverse pose to a given joint pose.
Definition: gait_inverse_pose.cpp:166
void setPoseMirrored()
Set the inverse pose in mirror mode (directly set the inverse pose parameters if this is the left arm...
Definition: gait_inverse_pose.h:144
void reset(bool left=true)
Reset function.
Definition: gait_common_pose.h:30
void getJointAngles(double &shoulderPitch, double &shoulderRoll, double &elbowPitch) const
Calculate the joint angles corresponding to the current inverse arm pose.
Definition: gait_inverse_pose.cpp:156
double linkLength
The assumed (equal) length of the upper and lower leg links (used for joint pose conversions) ...
Definition: gait_common_pose.h:114
InverseArmPose(bool left=true)
Default constructor.
Definition: gait_inverse_pose.h:125
double linkLength
The assumed (equal) length of the upper and lower arm links (used for joint pose conversions) ...
Definition: gait_common_pose.h:197
void getJointAngles(double &hipYaw, double &hipRoll, double &hipPitch, double &kneePitch, double &anklePitch, double &ankleRoll) const
Calculate the joint angles corresponding to the current inverse leg pose.
Definition: gait_inverse_pose.cpp:57
Eigen::Vector3d footPos
Position of the foot relative to its zero position (in body-fixed coordinates)
Definition: gait_inverse_pose.h:106
void setPose(const Eigen::Vector3d &footPosition, const Eigen::Quaterniond &footRotation=Eigen::Quaterniond::Identity())
Set the inverse pose (directly set the inverse pose parameters)
Definition: gait_inverse_pose.h:57
Data struct that encompasses the inverse representation of an arm pose.
Definition: gait_inverse_pose.h:118
void fromJointAngles(double shoulderPitch, double shoulderRoll, double elbowPitch)
Set the pose of the arm to the pose defined by the given joint angles.
Definition: gait_inverse_pose.cpp:150
Data struct that encompasses the joint representation of an arm pose.
Definition: gait_joint_pose.h:147
void setLegsFromJointPose(const JointLegPose &left, const JointLegPose &right)
Set the inverse leg poses to given joint poses.
Definition: gait_inverse_pose.h:230
void setFromAbstractPose(const AbstractLegPose &pose)
Set the inverse leg pose to a given abstract leg pose.
Definition: gait_inverse_pose.cpp:28
void setFromJointPose(const JointArmPose &pose)
Set the inverse arm pose to a given joint arm pose.
Definition: gait_inverse_pose.cpp:138
Eigen::Quaterniond footRot
Rotation of the foot relative to its zero position (relative to the body-fixed frame) ...
Definition: gait_inverse_pose.h:107
void fromJointAngles(double hipYaw, double hipRoll, double hipPitch, double kneePitch, double anklePitch, double ankleRoll)
Set the pose of the leg to the pose defined by the given joint angles.
Definition: gait_inverse_pose.cpp:37
void setArmsFromAbstractPose(const AbstractArmPose &left, const AbstractArmPose &right)
Set the inverse arm poses to given abstract poses.
Definition: gait_inverse_pose.h:251
Data struct that encompasses the inverse representation of a robot pose.
Definition: gait_inverse_pose.h:188
Data struct that encompasses the abstract representation of a robot pose.
Definition: gait_abstract_pose.h:214
void reset(bool left=true)
Reset function.
Definition: gait_inverse_pose.h:128
void setArmsFromJointPose(const JointArmPose &left, const JointArmPose &right)
Set the inverse arm poses to given joint poses.
Definition: gait_inverse_pose.h:244
void setFromAbstractPose(const AbstractPose &pose)
Set the inverse pose to a given abstract pose.
Definition: gait_inverse_pose.cpp:175
bool isLeft
Boolean flag that is true if this is a left leg and false if this is a right leg. ...
Definition: gait_common_pose.h:110
Data struct that encompasses the abstract representation of a leg pose.
Definition: gait_abstract_pose.h:35
Data struct that encompasses the joint representation of a leg pose.
Definition: gait_joint_pose.h:36
Data struct that encompasses the inverse representation of a leg pose.
Definition: gait_inverse_pose.h:36
void setFromJointPose(const JointLegPose &pose)
Set the inverse leg pose to a given joint leg pose.
Definition: gait_inverse_pose.cpp:21
void reset()
Reset function.
Definition: gait_inverse_pose.h:198
InverseLegPose rightLeg
Inverse pose of the right leg.
Definition: gait_inverse_pose.h:263
void setLinkLength(double length)
Set the link length used for pose conversions.
Definition: gait_inverse_pose.h:77
Data struct that contains the information pertaining to a leg pose that should be common amongst all ...
Definition: gait_common_pose.h:20
void setPose()
Set the inverse pose (directly set the inverse pose parameters)
Definition: gait_inverse_pose.h:139
void setLinkLength(double length)
Set the link length used for pose conversions.
Definition: gait_common_pose.h:89
void reset(bool left=true)
Reset function.
Definition: gait_inverse_pose.h:46
InverseLegPose leftLeg
Inverse pose of the left leg.
Definition: gait_inverse_pose.h:262
void setPoseMirrored(const Eigen::Vector3d &footPosition, const Eigen::Quaterniond &footRotation=Eigen::Quaterniond::Identity())
Set the inverse pose in mirror mode (directly set the inverse pose parameters if this is the left leg...
Definition: gait_inverse_pose.h:64