trajectory_generation
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
trajectory_generation::RMLTask Class Referenceabstract

#include <RMLTask.hpp>

Inheritance diagram for trajectory_generation::RMLTask:

Public Member Functions

 RMLTask (std::string const &name="trajectory_generation::RMLTask")
 
 RMLTask (std::string const &name, RTT::ExecutionEngine *engine)
 
 ~RMLTask ()
 
bool configureHook ()
 
bool startHook ()
 
void updateHook ()
 
void errorHook ()
 
void stopHook ()
 
void cleanupHook ()
 

Protected Member Functions

virtual void updateMotionConstraints (const MotionConstraint &constraint, const size_t idx, RMLInputParameters *new_input_parameters)=0
 
virtual RTT::FlowStatus updateCurrentState (RMLInputParameters *new_input_parameters)=0
 
virtual RTT::FlowStatus updateTarget (RMLInputParameters *new_input_parameters)=0
 
virtual ReflexxesResultValue performOTG (RMLInputParameters *new_input_parameters, RMLOutputParameters *new_output_parameters, RMLFlags *rml_flags)=0
 
virtual void writeCommand (const RMLOutputParameters &new_output_parameters)=0
 
virtual void printParams (const RMLInputParameters &in, const RMLOutputParameters &out)=0
 
virtual const ReflexxesInputParametersconvertRMLInputParams (const RMLInputParameters &in, ReflexxesInputParameters &out)=0
 
virtual const ReflexxesOutputParametersconvertRMLOutputParams (const RMLOutputParameters &in, ReflexxesOutputParameters &out)=0
 
void handleResultValue (ReflexxesResultValue result_value)
 

Protected Attributes

MotionConstraints motion_constraints
 
ReflexxesAPI * rml_api
 
RMLInputParameters * rml_input_parameters
 
RMLOutputParameters * rml_output_parameters
 
RMLFlags * rml_flags
 
ReflexxesResultValue rml_result_value
 
ReflexxesInputParameters input_parameters
 
ReflexxesOutputParameters output_parameters
 
base::Time timestamp
 
double cycle_time
 

Friends

class RMLTaskBase
 

Detailed Description

This task generates a feasible, time-stamped trajectory to a given a target (position/velocity, depending on the subclass used). "Feasible" means here that the output trajectory (command port) will respect the motion constraints defined by the motion_constraints-property, that is maximum/minimum position (only Reflexxes TypeIV), maximum speed, maximum acceleration and maximum jerk (derivative of acceleration). The motion constraints structure is define in trajectory_generationTypes.hpp.

Constructor & Destructor Documentation

◆ RMLTask() [1/2]

RMLTask::RMLTask ( std::string const &  name = "trajectory_generation::RMLTask")

◆ RMLTask() [2/2]

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

◆ ~RMLTask()

RMLTask::~RMLTask ( )

Member Function Documentation

◆ cleanupHook()

void RMLTask::cleanupHook ( )

◆ configureHook()

bool RMLTask::configureHook ( )

◆ convertRMLInputParams()

virtual const ReflexxesInputParameters& trajectory_generation::RMLTask::convertRMLInputParams ( const RMLInputParameters &  in,
ReflexxesInputParameters out 
)
protectedpure virtual

Convert from RMLInputParameters to orogen type

◆ convertRMLOutputParams()

virtual const ReflexxesOutputParameters& trajectory_generation::RMLTask::convertRMLOutputParams ( const RMLOutputParameters &  in,
ReflexxesOutputParameters out 
)
protectedpure virtual

Convert from RMLOutputParameters to orogen type

◆ errorHook()

void RMLTask::errorHook ( )

◆ handleResultValue()

void RMLTask::handleResultValue ( ReflexxesResultValue  result_value)
protected

Handle result of the OTG algorithm. Handle errors.

◆ performOTG()

virtual ReflexxesResultValue trajectory_generation::RMLTask::performOTG ( RMLInputParameters *  new_input_parameters,
RMLOutputParameters *  new_output_parameters,
RMLFlags *  rml_flags 
)
protectedpure virtual

Perform one step of online trajectory generation (call the RML algorithm with the given parameters). Return the RML result value

◆ printParams()

virtual void trajectory_generation::RMLTask::printParams ( const RMLInputParameters &  in,
const RMLOutputParameters &  out 
)
protectedpure virtual

Call echo() method for rml input and output parameters

◆ startHook()

bool RMLTask::startHook ( )

◆ stopHook()

void RMLTask::stopHook ( )

◆ updateCurrentState()

virtual RTT::FlowStatus trajectory_generation::RMLTask::updateCurrentState ( RMLInputParameters *  new_input_parameters)
protectedpure virtual

Read the current state from port and return position and flow status

◆ updateHook()

void RMLTask::updateHook ( )

◆ updateMotionConstraints()

virtual void trajectory_generation::RMLTask::updateMotionConstraints ( const MotionConstraint constraint,
const size_t  idx,
RMLInputParameters *  new_input_parameters 
)
protectedpure virtual

Cycle time for interpolation Update the motion constraints of a particular element

◆ updateTarget()

virtual RTT::FlowStatus trajectory_generation::RMLTask::updateTarget ( RMLInputParameters *  new_input_parameters)
protectedpure virtual

Update the RML input parameters with the new target

◆ writeCommand()

virtual void trajectory_generation::RMLTask::writeCommand ( const RMLOutputParameters &  new_output_parameters)
protectedpure virtual

Write the generated trajectory to port

Friends And Related Function Documentation

◆ RMLTaskBase

friend class RMLTaskBase
friend

Member Data Documentation

◆ cycle_time

double trajectory_generation::RMLTask::cycle_time
protected

Timestamp if updateHook();

◆ input_parameters

ReflexxesInputParameters trajectory_generation::RMLTask::input_parameters
protected

Current result value of RML, will be RML_NOT_INITIALIZED in the beginning

◆ motion_constraints

MotionConstraints trajectory_generation::RMLTask::motion_constraints
protected

◆ output_parameters

ReflexxesOutputParameters trajectory_generation::RMLTask::output_parameters
protected

RMLInputParameters do not work with orogen, so use own type

◆ rml_api

ReflexxesAPI* trajectory_generation::RMLTask::rml_api
protected

Motion constraints that define the properties of the output trajectory

◆ rml_flags

RMLFlags* trajectory_generation::RMLTask::rml_flags
protected

Output parameters of the OTG algorithm (new states, errors, ...).

◆ rml_input_parameters

RMLInputParameters* trajectory_generation::RMLTask::rml_input_parameters
protected

Interface to the Online Trajectory Generation algorithms of the Reflexxes Motion Libraries

◆ rml_output_parameters

RMLOutputParameters* trajectory_generation::RMLTask::rml_output_parameters
protected

Input parameters for the OTG algorithm (target, constraints, flags, ...).

◆ rml_result_value

ReflexxesResultValue trajectory_generation::RMLTask::rml_result_value
protected

Input flags for the RML algorithm.

◆ timestamp

base::Time trajectory_generation::RMLTask::timestamp
protected

RMLOutputParameters do not work with orogen, so use own type


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