NASA Astrobee Robot Software  0.19.1
Flight software for the Astrobee robots operating inside the International Space Station.
pmc::Fam Class Reference

#include <fam.h>

Public Member Functions

void Step (const FamInput &in, uint8_t *speed_cmd, Eigen::Matrix< float, 12, 1 > &servo_pwm_cmd)
 
void UpdateCOM (const Eigen::Vector3f &com)
 

Protected Member Functions

void CalcThrustMatrices (const Eigen::Vector3f &force, const Eigen::Vector3f &torque, Eigen::Matrix< float, 6, 1 > &pmc1_nozzle_thrusts, Eigen::Matrix< float, 6, 1 > &pmc2_nozzle_thrusts)
 
float ComputePlenumDeltaPressure (float impeller_speed, Eigen::Matrix< float, 6, 1 > &discharge_coeff, const Eigen::Matrix< float, 6, 1 > &nozzle_thrusts)
 
void CalcPMServoCmd (bool is_pmc1, uint8_t speed_gain_cmd, const Eigen::Matrix< float, 6, 1 > &nozzle_thrusts, uint8_t &impeller_speed_cmd, Eigen::Matrix< float, 6, 1 > &servo_pwm_cmd, Eigen::Matrix< float, 6, 1 > &nozzle_theta_cmd, Eigen::Matrix< float, 6, 1 > &normalized_pressure_density, Eigen::Matrix< float, 6, 1 > &command_area_per_nozzle)
 

Protected Attributes

Eigen::Matrix< float, 3, 12 > thrust2force_
 
Eigen::Matrix< float, 3, 12 > thrust2torque_
 
Eigen::Matrix< float, 12, 6 > forcetorque2thrust_
 

Static Protected Attributes

static const float IMPELLER_SPEEDS [] = {2000 * 2 * M_PI / 60, 2500 * 2 * M_PI / 60, 2800 * 2 * M_PI / 60}
 
static constexpr int THRUST_LOOKUP_SIZE = 316
 
static const float THRUST_LOOKUP_BREAKPOINTS []
 
static const float THRUST_LOOKUP_CDP []
 

Member Function Documentation

◆ CalcPMServoCmd()

void pmc::Fam::CalcPMServoCmd ( bool  is_pmc1,
uint8_t  speed_gain_cmd,
const Eigen::Matrix< float, 6, 1 > &  nozzle_thrusts,
uint8_t &  impeller_speed_cmd,
Eigen::Matrix< float, 6, 1 > &  servo_pwm_cmd,
Eigen::Matrix< float, 6, 1 > &  nozzle_theta_cmd,
Eigen::Matrix< float, 6, 1 > &  normalized_pressure_density,
Eigen::Matrix< float, 6, 1 > &  command_area_per_nozzle 
)
protected

◆ CalcThrustMatrices()

void pmc::Fam::CalcThrustMatrices ( const Eigen::Vector3f &  force,
const Eigen::Vector3f &  torque,
Eigen::Matrix< float, 6, 1 > &  pmc1_nozzle_thrusts,
Eigen::Matrix< float, 6, 1 > &  pmc2_nozzle_thrusts 
)
protected

◆ ComputePlenumDeltaPressure()

float pmc::Fam::ComputePlenumDeltaPressure ( float  impeller_speed,
Eigen::Matrix< float, 6, 1 > &  discharge_coeff,
const Eigen::Matrix< float, 6, 1 > &  nozzle_thrusts 
)
protected

◆ Step()

void pmc::Fam::Step ( const FamInput in,
uint8_t *  speed_cmd,
Eigen::Matrix< float, 12, 1 > &  servo_pwm_cmd 
)

◆ UpdateCOM()

void pmc::Fam::UpdateCOM ( const Eigen::Vector3f &  com)

Member Data Documentation

◆ forcetorque2thrust_

Eigen::Matrix<float, 12, 6> pmc::Fam::forcetorque2thrust_
protected

◆ IMPELLER_SPEEDS

const float pmc::Fam::IMPELLER_SPEEDS = {2000 * 2 * M_PI / 60, 2500 * 2 * M_PI / 60, 2800 * 2 * M_PI / 60}
staticprotected

◆ thrust2force_

Eigen::Matrix<float, 3, 12> pmc::Fam::thrust2force_
protected

◆ thrust2torque_

Eigen::Matrix<float, 3, 12> pmc::Fam::thrust2torque_
protected

◆ THRUST_LOOKUP_BREAKPOINTS

const float pmc::Fam::THRUST_LOOKUP_BREAKPOINTS
staticprotected

◆ THRUST_LOOKUP_CDP

const float pmc::Fam::THRUST_LOOKUP_CDP
staticprotected

◆ THRUST_LOOKUP_SIZE

constexpr int pmc::Fam::THRUST_LOOKUP_SIZE = 316
staticconstexprprotected

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