ekf_cal  0.4.0
A Kalman filter-based sensor calibration package
TruthEngineCyclic Class Reference

Truth for simulation. More...

#include <truth_engine_cyclic.hpp>

Inheritance diagram for TruthEngineCyclic:
[legend]
Collaboration diagram for TruthEngineCyclic:
[legend]

Public Member Functions

 TruthEngineCyclic (Eigen::Vector3d pos_frequency, Eigen::Vector3d ang_frequency, Eigen::Vector3d pos_offset, Eigen::Vector3d ang_offset, double pos_amplitude, double ang_amplitude, double stationary_time, double max_time, std::shared_ptr< DebugLogger > logger)
 Setter for body cycle frequencies. More...
 
void SetBodyPosCycleFrequency (const Eigen::Vector3d &frequency)
 Setter for body position cycle frequency. More...
 
void SetBodyAngCycleFrequency (const Eigen::Vector3d &frequency)
 Setter for body euler angle cycle frequency. More...
 
Eigen::Vector3d GetBodyPosition (double time)
 True body position getter. More...
 
Eigen::Vector3d GetBodyVelocity (double time)
 True body velocity getter. More...
 
Eigen::Vector3d GetBodyAcceleration (double time)
 True body acceleration getter. More...
 
Eigen::Vector3d GetBodyRollPitchYaw (double time)
 True body Roll-Pitch-Yaw vector getter. More...
 
Eigen::Quaterniond GetBodyAngularPosition (double time)
 True body orientation quaternion getter. More...
 
Eigen::Vector3d GetBodyAngularRate (double time)
 True body angular rate getter. More...
 
Eigen::Vector3d GetBodyAngularAcceleration (double time)
 True body angular acceleration getter. More...
 
- Public Member Functions inherited from TruthEngine
 TruthEngine (double max_time, std::shared_ptr< DebugLogger > logger)
 TruthEngine constructor. More...
 
Eigen::Vector3d GetImuPosition (unsigned int sensor_id)
 True sensor position getter. More...
 
Eigen::Quaterniond GetImuAngularPosition (unsigned int sensor_id)
 True sensor orientation getter. More...
 
Eigen::Vector3d GetImuAccelerometerBias (unsigned int sensor_id)
 True sensor orientation getter. More...
 
Eigen::Vector3d GetImuGyroscopeBias (unsigned int sensor_id)
 True sensor orientation getter. More...
 
Eigen::Vector3d GetCameraPosition (unsigned int sensor_id)
 True sensor position getter. More...
 
Eigen::Quaterniond GetCameraAngularPosition (unsigned int sensor_id)
 True sensor orientation getter. More...
 
Intrinsics GetCameraIntrinsics (unsigned int sensor_id)
 True camera intrinsics getter. More...
 
Eigen::Vector3d GetGpsPosition (unsigned int sensor_id)
 GPS sensor position getter. More...
 
Eigen::Vector3d GetLocalPosition () const
 Local frame reference LLA getter. More...
 
double GetLocalHeading () const
 Local frame reference heading getter. More...
 
void SetImuPosition (unsigned int sensor_id, const Eigen::Vector3d &imu_pos)
 True sensor position setter. More...
 
void SetImuAngularPosition (unsigned int sensor_id, const Eigen::Quaterniond &imu_ang_pos)
 True sensor orientation setter. More...
 
void SetImuAccelerometerBias (unsigned int sensor_id, const Eigen::Vector3d &imu_acc_bias)
 True sensor orientation setter. More...
 
void SetImuGyroscopeBias (unsigned int sensor_id, const Eigen::Vector3d &imu_gyro_bias)
 True sensor orientation setter. More...
 
void SetCameraPosition (unsigned int sensor_id, const Eigen::Vector3d &cam_pos)
 True sensor position setter. More...
 
void SetCameraAngularPosition (unsigned int sensor_id, const Eigen::Quaterniond &cam_ang_pos)
 True sensor orientation setter. More...
 
void SetCameraIntrinsics (unsigned int sensor_id, const Intrinsics &intrinsics)
 True camera intrinsics setter. More...
 
void SetBoardPosition (unsigned int board_id, const Eigen::Vector3d &board_position)
 Fiducial board position setter. More...
 
void SetBoardOrientation (unsigned int board_id, const Eigen::Quaterniond &board_orientation)
 Fiducial board orientation setter. More...
 
void SetGpsPosition (unsigned int sensor_id, const Eigen::Vector3d &gps_position)
 GPS sensor position setter. More...
 
void SetLocalPosition (const Eigen::Vector3d &lla_reference)
 Local frame reference LLA setter. More...
 
void SetLocalHeading (double heading)
 Local frame reference heading setter. More...
 
Eigen::Vector3d GetBoardPosition (unsigned int board_id)
 Fiducial board position getter. More...
 
Eigen::Quaterniond GetBoardOrientation (unsigned int board_id)
 Fiducial board orientation getter. More...
 
void WriteTruthData (double data_log_rate, const std::string &log_directory)
 Write truth data to CSV files. More...
 
void GenerateGridFeatures ()
 Feature generation function.
 
std::vector< cv::Point3d > GenerateVisibleFeatures (double time, unsigned int camera_id, unsigned int new_feature_count)
 Generate new features that are visible. More...
 
std::vector< cv::Point3d > GetFeatures ()
 Getter function for features. More...
 
cv::Point3d GetFeature (int feature_id)
 Getter function for a specific feature. More...
 

Static Public Member Functions

static Eigen::Matrix3d EulerDerivativeTransform (const Eigen::Vector3d &rpy_vector)
 Calculate transformation matrix to convert RPY derivatives into final frame. More...
 

Additional Inherited Members

- Public Attributes inherited from TruthEngine
double m_max_time
 Maximum time for truth engine.
 
- Protected Attributes inherited from TruthEngine
std::shared_ptr< DebugLoggerm_logger
 Debug logger.
 

Detailed Description

Truth for simulation.

Constructor & Destructor Documentation

◆ TruthEngineCyclic()

TruthEngineCyclic::TruthEngineCyclic ( Eigen::Vector3d  pos_frequency,
Eigen::Vector3d  ang_frequency,
Eigen::Vector3d  pos_offset,
Eigen::Vector3d  ang_offset,
double  pos_amplitude,
double  ang_amplitude,
double  stationary_time,
double  max_time,
std::shared_ptr< DebugLogger logger 
)

Setter for body cycle frequencies.

Parameters
pos_frequencyVector of position frequencies
ang_frequencyVector of angular frequencies
pos_offsetInitial position offset in the local frame
ang_offsetInitial angular offset to the local frame rpy
pos_amplitudeAmplitude of position cycle
ang_amplitudeAmplitude of angular cycle
stationary_timeTime to be stationary before beginning motion
max_timeMaximum simulation time
loggerDebug logger pointer

Member Function Documentation

◆ EulerDerivativeTransform()

Eigen::Matrix3d TruthEngineCyclic::EulerDerivativeTransform ( const Eigen::Vector3d &  rpy_vector)
static

Calculate transformation matrix to convert RPY derivatives into final frame.

Parameters
rpy_vectorRoll-Pitch-Yaw vector

◆ GetBodyAcceleration()

Eigen::Vector3d TruthEngineCyclic::GetBodyAcceleration ( double  time)
virtual

True body acceleration getter.

Parameters
timeSimulation time

Implements TruthEngine.

◆ GetBodyAngularAcceleration()

Eigen::Vector3d TruthEngineCyclic::GetBodyAngularAcceleration ( double  time)
virtual

True body angular acceleration getter.

Parameters
timeSimulation time

Implements TruthEngine.

◆ GetBodyAngularPosition()

Eigen::Quaterniond TruthEngineCyclic::GetBodyAngularPosition ( double  time)
virtual

True body orientation quaternion getter.

Parameters
timeSimulation time

Implements TruthEngine.

◆ GetBodyAngularRate()

Eigen::Vector3d TruthEngineCyclic::GetBodyAngularRate ( double  time)
virtual

True body angular rate getter.

Parameters
timeSimulation time

Implements TruthEngine.

◆ GetBodyPosition()

Eigen::Vector3d TruthEngineCyclic::GetBodyPosition ( double  time)
virtual

True body position getter.

Parameters
timeSimulation time

Implements TruthEngine.

◆ GetBodyRollPitchYaw()

Eigen::Vector3d TruthEngineCyclic::GetBodyRollPitchYaw ( double  time)

True body Roll-Pitch-Yaw vector getter.

Parameters
timeSimulation time

◆ GetBodyVelocity()

Eigen::Vector3d TruthEngineCyclic::GetBodyVelocity ( double  time)
virtual

True body velocity getter.

Parameters
timeSimulation time

Implements TruthEngine.

◆ SetBodyAngCycleFrequency()

void TruthEngineCyclic::SetBodyAngCycleFrequency ( const Eigen::Vector3d &  frequency)

Setter for body euler angle cycle frequency.

Parameters
frequencyVector of frequencies to use

◆ SetBodyPosCycleFrequency()

void TruthEngineCyclic::SetBodyPosCycleFrequency ( const Eigen::Vector3d &  frequency)

Setter for body position cycle frequency.

Parameters
frequencyVector of frequencies to use

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