NASA Astrobee Robot Software  0.19.1
Flight software for the Astrobee robots operating inside the International Space Station.
vive_localization Namespace Reference

Classes

struct  LightCost
 
struct  Lighthouse
 
struct  Measurement
 
struct  SmoothCost
 
class  Solver
 
struct  Tracker
 

Typedefs

typedef std::map< uint8_t, LighthouseLighthouseMap
 
typedef std::map< std::string, TrackerTrackerMap
 
typedef std::map< ros::Time, MeasurementMeasurementMap
 
typedef std::map< ros::Time, geometry_msgs::TransformStamped > CorrectionMap
 
typedef std::map< ros::Time, double[6]> Trajectory
 
typedef std::map< ros::Time, std::map< uint8_t, std::map< std::string, std::map< uint8_t, std::map< uint8_t, std::vector< double > > > > > > LightMeasurements
 

Enumerations

enum  Params {
  PARAM_PHASE, PARAM_TILT, PARAM_GIB_PHASE, PARAM_GIB_MAG,
  PARAM_CURVE, NUM_PARAMS
}
 
enum  Errors {
  ERROR_GYR_BIAS, ERROR_GYR_SCALE, ERROR_ACC_BIAS, ERROR_ACC_SCALE,
  NUM_ERRORS
}
 
enum  Motors { MOTOR_VERTICAL, MOTOR_HORIZONTAL, NUM_MOTORS }
 

Functions

void SendStaticTransform (geometry_msgs::TransformStamped const &tfs)
 
void SendDynamicTransform (geometry_msgs::TransformStamped const &tfs)
 
void SendTransforms (std::string const &frame_world, std::string const &frame_vive, std::string const &frame_body, double registration[6], LighthouseMap const &lighthouses, TrackerMap const &trackers)
 
Eigen::Affine3d CeresToEigen (double ceres[6], bool invert)
 
Eigen::Quaterniond toQuaternion (double roll, double pitch, double yaw)
 
bool ReadModificationVector (config_reader::ConfigReader *config, Eigen::Vector3d &modification_vector, Eigen::Quaterniond &modification_quaternion)
 
bool ReadLighthouseConfig (config_reader::ConfigReader *config, std::map< std::string, Eigen::Affine3d > &lighthouses)
 
bool ReadTrackerConfig (config_reader::ConfigReader *config, std::map< std::string, Tracker > &trackers)
 
bool ReadRegistrationConfig (config_reader::ConfigReader *config, double T[6])
 
void LighthouseCallback (ff_hw_msgs::ViveLighthouses::ConstPtr const &msg, LighthouseMap &lighthouses)
 
void TrackerCallback (ff_hw_msgs::ViveTrackers::ConstPtr const &msg, TrackerMap &trackers)
 
bool SolvePnP (std::vector< cv::Point3f > const &obj, std::vector< cv::Point2f > const &img, Eigen::Affine3d &transform)
 
template<typename T >
static bool Kabsch (Eigen::Matrix< T, 3, Eigen::Dynamic > in, Eigen::Matrix< T, 3, Eigen::Dynamic > out, Eigen::Transform< T, 3, Eigen::Affine > &A, bool allowScale)
 
template<typename T >
static void Predict (T const *params, T const *xyz, T *ang, bool correct)
 
template<typename T >
static void Correct (T const *params, T *angle, bool correct)
 
template<typename T >
void TransformInPlace (const T transform[6], T x[3])
 
template<typename T >
void InverseTransformInPlace (const T transform[6], T x[3])
 
template<typename T >
void CombineTransforms (const T b[6], const T a[6], T ba[6])
 
template<typename T >
void TransformError (const T a[6], const T b[6], T err[6])
 

Variables

static constexpr size_t NUM_SENSORS = 32
 

Typedef Documentation

◆ CorrectionMap

typedef std::map<ros::Time, geometry_msgs::TransformStamped> vive_localization::CorrectionMap

◆ LighthouseMap

typedef std::map<uint8_t, Lighthouse> vive_localization::LighthouseMap

◆ LightMeasurements

typedef std::map<ros::Time, std::map<uint8_t, std::map<std::string, std::map<uint8_t, std::map<uint8_t, std::vector<double> > > > > > vive_localization::LightMeasurements

◆ MeasurementMap

typedef std::map<ros::Time, Measurement> vive_localization::MeasurementMap

◆ TrackerMap

typedef std::map<std::string, Tracker> vive_localization::TrackerMap

◆ Trajectory

typedef std::map<ros::Time, double[6]> vive_localization::Trajectory

Enumeration Type Documentation

◆ Errors

Enumerator
ERROR_GYR_BIAS 
ERROR_GYR_SCALE 
ERROR_ACC_BIAS 
ERROR_ACC_SCALE 
NUM_ERRORS 

◆ Motors

Enumerator
MOTOR_VERTICAL 
MOTOR_HORIZONTAL 
NUM_MOTORS 

◆ Params

Enumerator
PARAM_PHASE 
PARAM_TILT 
PARAM_GIB_PHASE 
PARAM_GIB_MAG 
PARAM_CURVE 
NUM_PARAMS 

Function Documentation

◆ CeresToEigen()

Eigen::Affine3d vive_localization::CeresToEigen ( double  ceres[6],
bool  invert 
)

◆ CombineTransforms()

template<typename T >
void vive_localization::CombineTransforms ( const T  b[6],
const T  a[6],
ba[6] 
)
inline

◆ Correct()

template<typename T >
static void vive_localization::Correct ( T const *  params,
T *  angle,
bool  correct 
)
static

◆ InverseTransformInPlace()

template<typename T >
void vive_localization::InverseTransformInPlace ( const T  transform[6],
x[3] 
)
inline

◆ Kabsch()

template<typename T >
static bool vive_localization::Kabsch ( Eigen::Matrix< T, 3, Eigen::Dynamic >  in,
Eigen::Matrix< T, 3, Eigen::Dynamic >  out,
Eigen::Transform< T, 3, Eigen::Affine > &  A,
bool  allowScale 
)
static

◆ LighthouseCallback()

void vive_localization::LighthouseCallback ( ff_hw_msgs::ViveLighthouses::ConstPtr const &  msg,
LighthouseMap lighthouses 
)

◆ Predict()

template<typename T >
static void vive_localization::Predict ( T const *  params,
T const *  xyz,
T *  ang,
bool  correct 
)
static

◆ ReadLighthouseConfig()

bool vive_localization::ReadLighthouseConfig ( config_reader::ConfigReader config,
std::map< std::string, Eigen::Affine3d > &  lighthouses 
)

◆ ReadModificationVector()

bool vive_localization::ReadModificationVector ( config_reader::ConfigReader config,
Eigen::Vector3d &  modification_vector,
Eigen::Quaterniond &  modification_quaternion 
)

◆ ReadRegistrationConfig()

bool vive_localization::ReadRegistrationConfig ( config_reader::ConfigReader config,
double  T[6] 
)

◆ ReadTrackerConfig()

bool vive_localization::ReadTrackerConfig ( config_reader::ConfigReader config,
std::map< std::string, Tracker > &  trackers 
)

◆ SendDynamicTransform()

void vive_localization::SendDynamicTransform ( geometry_msgs::TransformStamped const &  tfs)

◆ SendStaticTransform()

void vive_localization::SendStaticTransform ( geometry_msgs::TransformStamped const &  tfs)

◆ SendTransforms()

void vive_localization::SendTransforms ( std::string const &  frame_world,
std::string const &  frame_vive,
std::string const &  frame_body,
double  registration[6],
LighthouseMap const &  lighthouses,
TrackerMap const &  trackers 
)

◆ SolvePnP()

bool vive_localization::SolvePnP ( std::vector< cv::Point3f > const &  obj,
std::vector< cv::Point2f > const &  img,
Eigen::Affine3d &  transform 
)

◆ toQuaternion()

Eigen::Quaterniond vive_localization::toQuaternion ( double  roll,
double  pitch,
double  yaw 
)

◆ TrackerCallback()

void vive_localization::TrackerCallback ( ff_hw_msgs::ViveTrackers::ConstPtr const &  msg,
TrackerMap trackers 
)

◆ TransformError()

template<typename T >
void vive_localization::TransformError ( const T  a[6],
const T  b[6],
err[6] 
)
inline

◆ TransformInPlace()

template<typename T >
void vive_localization::TransformInPlace ( const T  transform[6],
x[3] 
)
inline

Variable Documentation

◆ NUM_SENSORS

constexpr size_t vive_localization::NUM_SENSORS = 32
staticconstexpr