NASA Astrobee Robot Software  0.19.1
Flight software for the Astrobee robots operating inside the International Space Station.
vive.h File Reference
#include <config_reader/config_reader.h>
#include <msg_conversions/msg_conversions.h>
#include <ff_common/ff_names.h>
#include <geometry_msgs/TransformStamped.h>
#include <ff_hw_msgs/ViveLighthouses.h>
#include <ff_hw_msgs/ViveTrackers.h>
#include <ff_hw_msgs/ViveLight.h>
#include <ff_msgs/CameraRegistration.h>
#include <ff_msgs/VisualLandmarks.h>
#include <opencv2/calib3d/calib3d.hpp>
#include <Eigen/Core>
#include <Eigen/Geometry>
#include <string>
#include <vector>
#include <map>
Include dependency graph for vive.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  vive_localization::Lighthouse
 
struct  vive_localization::Tracker
 
struct  vive_localization::Measurement
 

Namespaces

 vive_localization
 

Typedefs

typedef std::map< uint8_t, Lighthousevive_localization::LighthouseMap
 
typedef std::map< std::string, Trackervive_localization::TrackerMap
 
typedef std::map< ros::Time, Measurement > vive_localization::MeasurementMap
 
typedef std::map< ros::Time, geometry_msgs::TransformStamped > vive_localization::CorrectionMap
 

Enumerations

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

Functions

void vive_localization::SendStaticTransform (geometry_msgs::TransformStamped const &tfs)
 
void vive_localization::SendDynamicTransform (geometry_msgs::TransformStamped const &tfs)
 
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)
 
Eigen::Affine3d vive_localization::CeresToEigen (double ceres[6], bool invert)
 
Eigen::Quaterniond vive_localization::toQuaternion (double roll, double pitch, double yaw)
 
bool vive_localization::ReadModificationVector (config_reader::ConfigReader *config, Eigen::Vector3d &modification_vector, Eigen::Quaterniond &modification_quaternion)
 
bool vive_localization::ReadLighthouseConfig (config_reader::ConfigReader *config, std::map< std::string, Eigen::Affine3d > &lighthouses)
 
bool vive_localization::ReadTrackerConfig (config_reader::ConfigReader *config, std::map< std::string, Tracker > &trackers)
 
bool vive_localization::ReadRegistrationConfig (config_reader::ConfigReader *config, double T[6])
 
void vive_localization::LighthouseCallback (ff_hw_msgs::ViveLighthouses::ConstPtr const &msg, LighthouseMap &lighthouses)
 
void vive_localization::TrackerCallback (ff_hw_msgs::ViveTrackers::ConstPtr const &msg, TrackerMap &trackers)
 
bool vive_localization::SolvePnP (std::vector< cv::Point3f > const &obj, std::vector< cv::Point2f > const &img, Eigen::Affine3d &transform)
 
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)
 
template<typename T >
static void vive_localization::Predict (T const *params, T const *xyz, T *ang, bool correct)
 
template<typename T >
static void vive_localization::Correct (T const *params, T *angle, bool correct)
 

Variables

static constexpr size_t vive_localization::NUM_SENSORS = 32