Classes | |
class | AllegroCommandReceiver |
Handles lcmt_allegro_command messages from a LcmSubscriberSystem. More... | |
class | AllegroHandMotionState |
Detecting the state of the fingers: whether the joints are moving, or reached the destination, or got stuck by external collisions in the midway. More... | |
class | AllegroStatusSender |
Creates and outputs lcmt_allegro_status messages. More... | |
Functions | |
void | SetPositionControlledGains (double pid_frequency, double Ieff, Eigen::VectorXd *Kp, Eigen::VectorXd *Ki, Eigen::VectorXd *Kd) |
Set the feedback gains for the simulated position control. More... | |
void | GetControlPortMapping (const multibody::MultibodyPlant< double > &plant, MatrixX< double > *Sx, MatrixX< double > *Sy) |
Creates selector matrices which extract state xₛ in a known order from the plant's full x (xₛ = Sx⋅x ) and promote the controller's ordered yₛ into the full plant's input actuation (u = Su⋅uₛ ). More... | |
std::vector< std::string > | GetPreferredJointOrdering () |
Defines the desired ordering of the finger joints by name. More... | |
Variables | |
constexpr int | kAllegroNumJoints = 16 |
const double | kHardwareStatusPeriod = 0.003 |
void drake::examples::allegro_hand::GetControlPortMapping | ( | const multibody::MultibodyPlant< double > & | plant, |
MatrixX< double > * | Sx, | ||
MatrixX< double > * | Sy | ||
) |
Creates selector matrices which extract state xₛ in a known order from the plant's full x (xₛ = Sx⋅x
) and promote the controller's ordered yₛ into the full plant's input actuation (u = Su⋅uₛ
).
The matrices are used to initialize the PID controller for the hand.
Sx | the matrix to match the output state of the plant into the state of the finger joints in the desired order. |
Sy | the matrix to match the output torque for the hand joint actuators in the desired order into the input actuation of the plant. |
std::vector<std::string> drake::examples::allegro_hand::GetPreferredJointOrdering | ( | ) |
Defines the desired ordering of the finger joints by name.
The fingers are ordered as [thumb, index, middle, ring] and the joints of each finger are ordered from most proximal to most distal (relative to the palm).
void drake::examples::allegro_hand::SetPositionControlledGains | ( | double | pid_frequency, |
double | Ieff, | ||
Eigen::VectorXd * | Kp, | ||
Eigen::VectorXd * | Ki, | ||
Eigen::VectorXd * | Kd | ||
) |
Set the feedback gains for the simulated position control.
constexpr int kAllegroNumJoints = 16 |
const double kHardwareStatusPeriod = 0.003 |