PPL API Reference
Overview Core Algorithm Abstractions Utilities Parallel Methods
Modules Class Hierarchy Classes Functions
Todo List Bug List Dead Code
List of all members
SensorInterface Class Referenceabstract

Public Member Functions

Construction
virtual ~SensorInterface ()
 
 HardwareInterface (const std::string &_name, const std::string &_ip, const unsigned short _port, const double _communicationTime)
 
Hardware Properties
virtual HardwareType GetHardwareType () const noexcept override
 
Sensor Interface
virtual SensorType GetType () const noexcept=0
 
virtual void SendCommand (const SensorCommand &_c)=0
 Instruct the sensor to take a measurement. More...
 
bool IsReady () const noexcept
 
size_t GetLastTimestamp () const noexcept
 Get the timestep when the last measurement was completed.
 
virtual std::vector< mathtool::Transformation > GetLastTransformations ()
 Get the last transformation measurements. More...
 
virtual std::vector< std::vector< double > > GetLastJointAngles ()
 Get the last joint angle measurements.
 
virtual std::vector< double > GetUncertainty ()=0
 
Hardware Properties

Get and set the robot's name, IP, port, and communication time.

const std::string & GetName () const noexcept
 Get robot's name.
 
void SetName (const std::string &_name) noexcept
 Set robot's name.
 
const std::string & GetIP () const noexcept
 Get IP address for hardware controller.
 
void SetIP (const std::string &_ip) noexcept
 Set IP address for hardware controller.
 
unsigned short GetPort () const noexcept
 Get IP port for connection.
 
void SetPort (const unsigned short _port) noexcept
 Set IP port for connection.
 
double GetCommunicationTime () const noexcept
 Get minimum time in seconds to send command.
 
void SetCommunicationTime (const double _t) noexcept
 Set minimum time in seconds to send command.
 

Static Public Member Functions

Construction
static std::unique_ptr< HardwareInterfaceFactory (class XMLNode &_node)
 

Public Types

Local Types
enum  SensorType { Transformation , JointAngle }
 The supported sensor types.
 
enum  HardwareType
 The types of supported hardware.
 

Protected Attributes

Internal State

Get the measurement transformation matrix H such that a configuration c produces a measurement y = Hc.

Todo:
We need a dynamically sizable matrix for this, either dlib or eigen will probably be the choice.
std::atomic< bool > m_ready {false}
 Is the measurement is ready to read?
 
std::atomic< size_t > m_timestamp {0}
 Timestep of last completed measurement.
 
Internal State
std::string m_name
 The hardware type.
 
std::string m_ip
 The IP address for the hardware's controller.
 
unsigned short m_port
 The IP port for the controller connection.
 
double m_communicationTime {0.}
 The minimum time in seconds needed to send a command to the hardware.
 

Detailed Description

An abstract interface for a hardware sensor that measures the robot's world state (either base transformation and/or joint angles).

Member Function Documentation

◆ GetHardwareType()

HardwareInterface::HardwareType SensorInterface::GetHardwareType ( ) const
overridevirtualnoexcept

Implements HardwareInterface.

◆ GetType()

virtual SensorType SensorInterface::GetType ( ) const
pure virtualnoexcept

Indicates the type of sensor.

Returns
The sensor type.

Implemented in ArucoDetectorInterface.

◆ SendCommand()

virtual void SensorInterface::SendCommand ( const SensorCommand _c)
pure virtual

Instruct the sensor to take a measurement.

Implemented in ArucoDetectorInterface.

◆ IsReady()

bool SensorInterface::IsReady ( ) const
noexcept

Check if the sensor has completed its measurement.

Returns
True if measurement ready to read

◆ GetLastTransformations()

std::vector< mathtool::Transformation > SensorInterface::GetLastTransformations ( )
virtual

Get the last transformation measurements.

Reimplemented in ArucoDetectorInterface.

◆ GetUncertainty()

virtual std::vector< double > SensorInterface::GetUncertainty ( )
pure virtual

Get the measurement uncertainty.

Todo:
This should maybe be a covariance matrix instead of an uncertainty in each measured dimension.

Implemented in ArucoDetectorInterface.

◆ HardwareInterface()

HardwareInterface::HardwareInterface ( const std::string &  _name,
const std::string &  _ip,
const unsigned short  _port,
const double  _communicationTime 
)

Construct a hardware interface.

Parameters
_nameThe name of the hardware, such as 'iCreate'.
_ipThe IP address for the on-board controller.
_portThe IP port.
_communicationTimeThe minimum time needed to send a command to the robot.

◆ Factory()

std::unique_ptr< HardwareInterface > HardwareInterface::Factory ( class XMLNode _node)
staticinherited

Create an interface from an XML node.

Parameters
_node
Returns
A dynamically allocated interface.

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