SurgSim::Devices::PoseIntegrator Class Reference

A device filter that integrates the pose, turning a relative device into an absolute one. More...

`#include <SurgSim/Devices/DeviceFilters/PoseIntegrator.h>`

Inheritance diagram for SurgSim::Devices::PoseIntegrator:

## Public Types

typedef Math::RigidTransform3d | PoseType
| The type used for poses. More...
Public Types inherited from SurgSim::Framework::Accessible
typedef std::function< boost::any(void)> | GetterType
typedef std::function< void(boost::any)> | SetterType
typedef std::function< YAML::Node(void)> | EncoderType
typedef std::function< void(const YAML::Node *)> | DecoderType
Public Types inherited from SurgSim::Framework::FactoryBase1< DeviceInterface, std::string >
typedef ObjectFactory1< DeviceInterface, std::string > | FactoryType

## Public Member Functions

| PoseIntegrator (const std::string &name)
| Constructor. More...
| SURGSIM_CLASSNAME (SurgSim::Devices::PoseIntegrator)
const PoseType & | integrate (const PoseType &pose)
| Integrates the pose. More...
void | initializeInput (const std::string &device, const DataStructures::DataGroup &inputData) override
| Set the initial input data group. More...
void | handleInput (const std::string &device, const DataStructures::DataGroup &inputData) override
| Notifies the consumer that the application input coming from the device has been updated. More...
void | setReset (const std::string &name)
| Sets the string name of the boolean entry that will reset the pose to its initial value. More...
Public Member Functions inherited from SurgSim::Devices::DeviceFilter
| DeviceFilter (const std::string &name)
| Constructor. More...
| SURGSIM_CLASSNAME (SurgSim::Devices::DeviceFilter)
bool | initialize () override
| Fully initialize the device. More...
bool | isInitialized () const override
bool | requestOutput (const std::string &device, DataStructures::DataGroup *outputData) override
| Asks the producer to provide output state to the device. More...
Public Member Functions inherited from SurgSim::Input::CommonDevice
| CommonDevice (const std::string &name)
| Constructor. More...
| CommonDevice (const std::string &name, const DataStructures::DataGroup &inputData)
| Constructor. More...
| CommonDevice (const std::string &name, DataStructures::DataGroup &&inputData)
| Constructor. More...
virtual | ~CommonDevice ()
| Destructor. More...
std::string | getName () const override
| Return a (hopefully unique) device name. More...
std::string | getClassName () const override
| The class name for this class. More...
void | setNameForCallback (const std::string &name)
| Set the name used for calling the input consumers and output producer. More...
std::string | getNameForCallback () const
| Get the name used for calling the input consumers and output producer. More...
bool | addInputConsumer (std::shared_ptr< InputConsumerInterface > inputConsumer) override
| Adds an input consumer that will be notified when the application input state is updated. More...
bool | removeInputConsumer (std::shared_ptr< InputConsumerInterface > inputConsumer) override
| Removes an input consumer previously added via addInputConsumer. More...
void | clearInputConsumers () override
| Removes all InputConsumers. More...
bool | setOutputProducer (std::shared_ptr< OutputProducerInterface > outputProducer) override
| Sets an output producer that will be asked for application output state when the device needs it. More...
bool | removeOutputProducer (std::shared_ptr< OutputProducerInterface > outputProducer) override
| Removes an output producer previously added via setOutputProducer. More...
bool | hasOutputProducer () override
| Query if this object has output producer. More...
void | clearOutputProducer () override
| Removes any OutputProducer. More...
Public Member Functions inherited from SurgSim::Input::DeviceInterface
virtual | ~DeviceInterface ()
| Virtual destructor (empty). More...
Public Member Functions inherited from SurgSim::Framework::Accessible
| Accessible ()
| Default Constructor. More...
| ~Accessible ()
| Destructor. More...
template<class T >
T | getValue (const std::string &name) const
| Retrieves the value with the name by executing the getter if it is found and tries to convert it to the given type. More...
boost::any | getValue (const std::string &name) const
| Retrieves the value with the name by executing the getter if it is found. More...
template<class T >
bool | getValue (const std::string &name, T *value) const
| Retrieves the value with the name by executing the getter if it is found, and converts it to the type of the output parameter. More...
void | setValue (const std::string &name, const boost::any &value)
| Sets a value of a property that has setter. More...
bool | isReadable (const std::string &name) const
| Check whether a property is readable. More...
bool | isWriteable (const std::string &name) const
| Check whether a property is writable. More...
void | setGetter (const std::string &name, GetterType func)
| Sets a getter for a given property. More...
void | setSetter (const std::string &name, SetterType func)
| Sets a setter for a given property. More...
void | setAccessors (const std::string &name, GetterType getter, SetterType setter)
| Sets the accessors getter and setter in one function. More...
void | removeAccessors (const std::string &name)
| Removes all the accessors (getter and setter) for a given property. More...
void | forwardProperty (const std::string &name, const Accessible &target, const std::string &targetProperty)
| Adds a property with the given name that uses the targets accessors, in effect forwarding the value to the target. More...
void | setSerializable (const std::string &name, EncoderType encoder, DecoderType decoder)
| Sets the functions used to convert data from and to a YAML::Node. More...
void | setDecoder (const std::string &name, DecoderType decoder)
| Sets the functions used to convert data from a YAML::Node. More...
YAML::Node | encode () const
| Encode this Accessible to a YAML::Node. More...
void | decode (const YAML::Node &node, const std::vector< std::string > &ignoredProperties=std::vector< std::string >())
| Decode this Accessible from a YAML::Node, will throw an exception if the data type cannot be converted. More...
template<>
boost::any | getValue (const std::string &name) const
Public Member Functions inherited from SurgSim::Input::InputConsumerInterface
virtual | ~InputConsumerInterface ()
| Virtual destructor (empty). More...
Public Member Functions inherited from SurgSim::Input::OutputProducerInterface
virtual | ~OutputProducerInterface ()
| Virtual destructor (empty). More...

## Private Attributes

PoseType | m_poseResult
| The result of integrating the input poses. More...
Framework::Timer | m_timer
| A timer for the update rate needed for calculating velocity. More...
std::shared_ptr< DataStructures::DataGroupCopier > | m_copier
| A copier into the input DataGroup, if needed. More...
std::string | m_resetName
| The name of the reset boolean (if any). More...

## Additional Inherited Members

Static Public Member Functions inherited from SurgSim::Framework::FactoryBase1< DeviceInterface, std::string >
static FactoryType & | getFactory ()
Protected Member Functions inherited from SurgSim::Devices::DeviceFilter
virtual void | filterInput (const std::string &device, const DataStructures::DataGroup &dataToFilter, DataStructures::DataGroup *result)
| Filter the input data. More...
virtual void | filterOutput (const std::string &device, const DataStructures::DataGroup &dataToFilter, DataStructures::DataGroup *result)
| Filter the output data. More...
bool | finalize () override
| Finalize (de-initialize) the device. More...
Protected Member Functions inherited from SurgSim::Input::CommonDevice
virtual void | pushInput ()
| Push application input to consumers. More...
virtual bool | pullOutput ()
| Pull application output from a producer. More...
DataStructures::DataGroup & | getInputData ()
| Getter for the input data DataGroup. More...
const DataStructures::DataGroup & | getOutputData () const
| Getter for the output data DataGroup. More...
Protected Attributes inherited from SurgSim::Devices::DeviceFilter
bool | m_initialized
| true if initialized and not finalized. More...

## Detailed Description

A device filter that integrates the pose, turning a relative device into an absolute one.

Also provides the instantaneous linear and angular velocities.

See also
  SurgSim::Input::CommonDevice
  SurgSim::Input::InputConsumerInterface
  SurgSim::Input::OutputProducerInterface

## Member Typedef Documentation

## PoseType

typedef Math::RigidTransform3d SurgSim::Devices::PoseIntegrator::PoseType

The type used for poses.

## Constructor & Destructor Documentation

## PoseIntegrator()

SurgSim::Devices::PoseIntegrator::PoseIntegrator | ( | const std::string & | name | ) |

explicit

Constructor.

Parameters

  name | Name of this device filter.

## Member Function Documentation

## handleInput()

void SurgSim::Devices::PoseIntegrator::handleInput | ( | const std::string & | device,
|  | const DataStructures::DataGroup & | inputData
| ) |  |

override virtual

Notifies the consumer that the application input coming from the device has been updated.

Treats the pose coming from the input device as a delta pose and integrates it to get the output pose.

Parameters

  device | The name of the device that is producing the input. This should only be used to identify the device (e.g. if the consumer is listening to several devices at once).
  inputData | The application input state coming from the device.

Reimplemented from SurgSim::Devices::DeviceFilter.

## initializeInput()

void SurgSim::Devices::PoseIntegrator::initializeInput | ( | const std::string & | device,
|  | const DataStructures::DataGroup & | inputData
| ) |  |

override virtual

Set the initial input data group.

Parameters

  device | The name of the device that is producing the input. This should only be used to identify the device (e.g. if the consumer is listening to several devices at once).
  inputData | The application input state coming from the device.

Reimplemented from SurgSim::Devices::DeviceFilter.

## integrate()

const PoseIntegrator::PoseType & SurgSim::Devices::PoseIntegrator::integrate | ( | const PoseType & | pose | ) |

Integrates the pose.

Parameters

  pose | The latest differential pose.

Returns
  The integrated pose.

## setReset()

void SurgSim::Devices::PoseIntegrator::setReset | ( | const std::string & | name | ) |

Sets the string name of the boolean entry that will reset the pose to its initial value.

Such a reset can be useful if the integrated pose is used to position an object and the integration takes the object out of view.

Parameters

  name | The name of the NamedData<bool> entry.

Warning
  A pose reset may generate high velocities, and if the pose is the input to a VirtualToolCoupler then large forces will likely be generated.

Exceptions

  Asserts | if called after initialize.

## SURGSIM_CLASSNAME()

SurgSim::Devices::PoseIntegrator::SURGSIM_CLASSNAME | ( | SurgSim::Devices::PoseIntegrator |  | ) |

## Member Data Documentation

## m_copier

std::shared_ptr<DataStructures::DataGroupCopier> SurgSim::Devices::PoseIntegrator::m_copier

private

A copier into the input DataGroup, if needed.

## m_poseResult

PoseType SurgSim::Devices::PoseIntegrator::m_poseResult

private

The result of integrating the input poses.

## m_resetName

std::string SurgSim::Devices::PoseIntegrator::m_resetName

private

The name of the reset boolean (if any).

## m_timer

Framework::Timer SurgSim::Devices::PoseIntegrator::m_timer

private

A timer for the update rate needed for calculating velocity.

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

- SurgSim/Devices/DeviceFilters/PoseIntegrator.h
- SurgSim/Devices/DeviceFilters/PoseIntegrator.cpp