pose_estimation
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
pose_estimation::OrientationInitialization Class Reference

The task context provides and requires services. It uses an ExecutionEngine to perform its functions. Essential interfaces are operations, data flow ports and properties. These interfaces have been defined using the oroGen specification. In order to modify the interfaces you should (re)use oroGen and rely on the associated workflow. More...

#include <OrientationInitialization.hpp>

Inheritance diagram for pose_estimation::OrientationInitialization:

Public Member Functions

 OrientationInitialization (std::string const &name="pose_estimation::OrientationInitialization")
 
 OrientationInitialization (std::string const &name, RTT::ExecutionEngine *engine)
 
 ~OrientationInitialization ()
 
bool configureHook ()
 The following lines are template definitions for the various state machine. More...
 
bool startHook ()
 
void updateHook ()
 
void errorHook ()
 
void stopHook ()
 
void cleanupHook ()
 

Protected Member Functions

virtual void imu_sensor_samplesTransformerCallback (const base::Time &ts, const ::base::samples::IMUSensors &imu_sensor_samples_sample)
 
virtual void velocity_samplesTransformerCallback (const base::Time &ts, const ::base::samples::RigidBodyState &velocity_samples_sample)
 
virtual void predictionStep (const base::Time &sample_time)
 
bool initializeFilter (boost::shared_ptr< pose_estimation::OrientationUKF > &filter, const Eigen::Quaterniond &orientation, const Eigen::Matrix3d &orientation_cov, const OrientationUKFConfig &filter_config)
 
bool setProcessNoise (boost::shared_ptr< pose_estimation::OrientationUKF > &filter, const OrientationUKFConfig &filter_config, double sensor_delta_t)
 

Protected Attributes

boost::shared_ptr< pose_estimation::OrientationUKF > orientation_estimators [estimator_count]
 
boost::shared_ptr< pose_estimation::StreamAlignmentVerifier > verifier
 
Eigen::Affine3d imu_in_body_translation
 
Eigen::Quaterniond imu_in_body_rotation
 
Eigen::Matrix3d cov_angular_velocity
 
Eigen::Matrix3d cov_acceleration
 
Eigen::Matrix3d cov_velocity_unknown
 
base::Time last_velocity_sample_time
 
bool velocity_unknown
 
States last_state
 
States new_state
 

Friends

class OrientationInitializationBase
 

Detailed Description

The task context provides and requires services. It uses an ExecutionEngine to perform its functions. Essential interfaces are operations, data flow ports and properties. These interfaces have been defined using the oroGen specification. In order to modify the interfaces you should (re)use oroGen and rely on the associated workflow.

The name of a TaskContext is primarily defined via:

deployment 'deployment_name'
    task('custom_task_name','pose_estimation::OrientationInitialization')
end

It can be dynamically adapted when the deployment is called with a prefix argument.

Constructor & Destructor Documentation

◆ OrientationInitialization() [1/2]

OrientationInitialization::OrientationInitialization ( std::string const &  name = "pose_estimation::OrientationInitialization")

TaskContext constructor for OrientationInitialization

Parameters
nameName of the task. This name needs to be unique to make it identifiable via nameservices.
initial_stateThe initial TaskState of the TaskContext. Default is Stopped state.

◆ OrientationInitialization() [2/2]

OrientationInitialization::OrientationInitialization ( std::string const &  name,
RTT::ExecutionEngine *  engine 
)

TaskContext constructor for OrientationInitialization

Parameters
nameName of the task. This name needs to be unique to make it identifiable for nameservices.
engineThe RTT Execution engine to be used for this task, which serialises the execution of all commands, programs, state machines and incoming events for a task.

◆ ~OrientationInitialization()

OrientationInitialization::~OrientationInitialization ( )

Default deconstructor of OrientationInitialization

Member Function Documentation

◆ cleanupHook()

void OrientationInitialization::cleanupHook ( )

This hook is called by Orocos when the state machine transitions from Stopped to PreOperational, requiring the call to configureHook() before calling start() again.

◆ configureHook()

bool OrientationInitialization::configureHook ( )

The following lines are template definitions for the various state machine.

This hook is called by Orocos when the state machine transitions from PreOperational to Stopped. If it returns false, then the component will stay in PreOperational. Otherwise, it goes into Stopped.

It is meaningful only if the #needs_configuration has been specified in the task context definition with (for example):

task_context "TaskName" do
  needs_configuration
  ...
end

◆ errorHook()

void OrientationInitialization::errorHook ( )

This hook is called by Orocos when the component is in the RunTimeError state, at each activity step. See the discussion in updateHook() about triggering options.

Call recover() to go back in the Runtime state.

◆ imu_sensor_samplesTransformerCallback()

void OrientationInitialization::imu_sensor_samplesTransformerCallback ( const base::Time &  ts,
const ::base::samples::IMUSensors &  imu_sensor_samples_sample 
)
protectedvirtual

◆ initializeFilter()

bool OrientationInitialization::initializeFilter ( boost::shared_ptr< pose_estimation::OrientationUKF > &  filter,
const Eigen::Quaterniond &  orientation,
const Eigen::Matrix3d &  orientation_cov,
const OrientationUKFConfig &  filter_config 
)
protected

◆ predictionStep()

void OrientationInitialization::predictionStep ( const base::Time &  sample_time)
protectedvirtual

Applies a prediction step of the filter with a given current sample time. The delta time step is the difference between the last sample time and the current one.

◆ setProcessNoise()

bool OrientationInitialization::setProcessNoise ( boost::shared_ptr< pose_estimation::OrientationUKF > &  filter,
const OrientationUKFConfig &  filter_config,
double  sensor_delta_t 
)
protected

◆ startHook()

bool OrientationInitialization::startHook ( )

This hook is called by Orocos when the state machine transitions from Stopped to Running. If it returns false, then the component will stay in Stopped. Otherwise, it goes into Running and updateHook() will be called.

◆ stopHook()

void OrientationInitialization::stopHook ( )

This hook is called by Orocos when the state machine transitions from Running to Stopped after stop() has been called.

◆ updateHook()

void OrientationInitialization::updateHook ( )

This hook is called by Orocos when the component is in the Running state, at each activity step. Here, the activity gives the "ticks" when the hook should be called.

The error(), exception() and fatal() calls, when called in this hook, allow to get into the associated RunTimeError, Exception and FatalError states.

In the first case, updateHook() is still called, and recover() allows you to go back into the Running state. In the second case, the errorHook() will be called instead of updateHook(). In Exception, the component is stopped and recover() needs to be called before starting it again. Finally, FatalError cannot be recovered.

◆ velocity_samplesTransformerCallback()

void OrientationInitialization::velocity_samplesTransformerCallback ( const base::Time &  ts,
const ::base::samples::RigidBodyState &  velocity_samples_sample 
)
protectedvirtual

Friends And Related Function Documentation

◆ OrientationInitializationBase

friend class OrientationInitializationBase
friend

Member Data Documentation

◆ cov_acceleration

Eigen::Matrix3d pose_estimation::OrientationInitialization::cov_acceleration
protected

◆ cov_angular_velocity

Eigen::Matrix3d pose_estimation::OrientationInitialization::cov_angular_velocity
protected

◆ cov_velocity_unknown

Eigen::Matrix3d pose_estimation::OrientationInitialization::cov_velocity_unknown
protected

◆ imu_in_body_rotation

Eigen::Quaterniond pose_estimation::OrientationInitialization::imu_in_body_rotation
protected

◆ imu_in_body_translation

Eigen::Affine3d pose_estimation::OrientationInitialization::imu_in_body_translation
protected

◆ last_state

States pose_estimation::OrientationInitialization::last_state
protected

◆ last_velocity_sample_time

base::Time pose_estimation::OrientationInitialization::last_velocity_sample_time
protected

◆ new_state

States pose_estimation::OrientationInitialization::new_state
protected

◆ orientation_estimators

boost::shared_ptr<pose_estimation::OrientationUKF> pose_estimation::OrientationInitialization::orientation_estimators[estimator_count]
protected

◆ velocity_unknown

bool pose_estimation::OrientationInitialization::velocity_unknown
protected

◆ verifier

boost::shared_ptr<pose_estimation::StreamAlignmentVerifier> pose_estimation::OrientationInitialization::verifier
protected

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