RobotReader Class Reference

The RobotReader class. More...

#include <RobotAPI/libraries/armem_robot_state/client/common/RobotReader.h>

+ Inheritance diagram for RobotReader:

Public Types

enum class  Hand { Left , Right }
 
using JointTrajectory = std::map<armem::Time, RobotState::JointMap>
 

Public Member Functions

virtual void connect (armem::client::MemoryNameSystem &memoryNameSystem)
 
Robot get (const description::RobotDescription &description, const armem::Time &timestamp) const override
 
std::optional< Robot > get (const std::string &name, const armem::Time &timestamp) const override
 
std::optional< description::RobotDescription > queryDescription (const std::string &name, const armem::Time &timestamp) const
 
std::vector< description::RobotDescription > queryDescriptions (const armem::Time &timestamp) const
 
std::optional< std::map< Hand, proprioception::ForceTorque > > queryForceTorque (const std::string &robotName, const armem::Time &timestamp) const
 
std::optional< std::map< RobotReader::Hand, std::map< armem::Time, proprioception::ForceTorque > > > queryForceTorques (const std::string &robotName, const armem::Time &start, const armem::Time &end) const
 
std::optional< RobotState::Pose > queryGlobalPose (const std::string &robotName, const armem::Time &timestamp) const
 
std::optional< RobotState > queryJointState (const std::string &robotName, const armem::Time &timestamp) const
 
JointTrajectory queryJointStates (const std::string &robotName, const armem::Time &begin, const armem::Time &end) const
 
std::optional<::armarx::armem::robot_state::localization::Transform > queryOdometryPose (const std::string &robotName, const armem::Time &timestamp) const
 retrieve the robot's pose in the odometry frame.
 
std::optional< PlatformState > queryPlatformState (const std::string &robotName, const armem::Time &timestamp) const
 
std::optional< armarx::armem::arondto::Proprioception > queryProprioception (const std::string &robotName, const armem::Time &timestamp, armem::Time *referencedTime=nullptr) const
 
std::optional< RobotState > queryState (const std::string &robotName, const armem::Time &timestamp) const
 
std::optional< std::map< Hand, exteroception::ToF > > queryToF (const std::string &robotName, const armem::Time &timestamp) const
 
virtual void registerPropertyDefinitions (::armarx::PropertyDefinitionsPtr &def)
 
 RobotReader ()=default
 
 RobotReader (const RobotReader &)
 
void setSleepAfterSyncFailure (const armem::Duration &duration)
 
void setSyncTimeout (const armem::Duration &duration)
 
bool synchronize (Robot &obj, const armem::Time &timestamp) const override
 
virtual ~RobotReader ()=default
 
- Public Member Functions inherited from ReaderInterface
virtual ~ReaderInterface ()=default
 

Protected Member Functions

std::optional< armarx::armem::arondto::Proprioception > getRobotProprioception (const armarx::armem::wm::Memory &memory, const std::string &name, armem::Time *referencedTime=nullptr) const
 Protected rather than private so the referenced-time reporting can be exercised directly: everything above it needs a live memory server, this needs only a wm::Memory.
 

Protected Attributes

armem::Duration sleepAfterFailure = armem::Duration::MicroSeconds(0)
 
armem::Duration syncTimeout = armem::Duration::MicroSeconds(0)
 

Detailed Description

The RobotReader class.

The purpose of this class is to synchronize the armem data structure armem::Robot with the memory.

Member Typedef Documentation

◆ JointTrajectory

Member Enumeration Documentation

◆ Hand

enum class Hand
strong
Enumerator
Left 
Right 

Constructor & Destructor Documentation

◆ RobotReader() [1/2]

RobotReader ( )
default

◆ RobotReader() [2/2]

RobotReader ( const RobotReader & r)

◆ ~RobotReader()

virtual ~RobotReader ( )
virtualdefault

Member Function Documentation

◆ connect()

void connect ( armem::client::MemoryNameSystem & memoryNameSystem)
virtual

◆ get() [1/2]

Robot get ( const description::RobotDescription & description,
const armem::Time & timestamp ) const
overridevirtual

Implements ReaderInterface.

◆ get() [2/2]

std::optional< Robot > get ( const std::string & name,
const armem::Time & timestamp ) const
overridevirtual

Implements ReaderInterface.

◆ getRobotProprioception()

std::optional< armarx::armem::arondto::Proprioception > getRobotProprioception ( const armarx::armem::wm::Memory & memory,
const std::string & name,
armem::Time * referencedTime = nullptr ) const
protected

Protected rather than private so the referenced-time reporting can be exercised directly: everything above it needs a live memory server, this needs only a wm::Memory.

◆ queryDescription()

std::optional< description::RobotDescription > queryDescription ( const std::string & name,
const armem::Time & timestamp ) const

◆ queryDescriptions()

std::vector< description::RobotDescription > queryDescriptions ( const armem::Time & timestamp) const

◆ queryForceTorque()

std::optional< std::map< RobotReader::Hand, proprioception::ForceTorque > > queryForceTorque ( const std::string & robotName,
const armem::Time & timestamp ) const

◆ queryForceTorques()

std::optional< std::map< RobotReader::Hand, std::map< armem::Time, proprioception::ForceTorque > > > queryForceTorques ( const std::string & robotName,
const armem::Time & start,
const armem::Time & end ) const

◆ queryGlobalPose()

std::optional< RobotState::Pose > queryGlobalPose ( const std::string & robotName,
const armem::Time & timestamp ) const

◆ queryJointState()

std::optional< RobotState > queryJointState ( const std::string & robotName,
const armem::Time & timestamp ) const

◆ queryJointStates()

RobotReader::JointTrajectory queryJointStates ( const std::string & robotName,
const armem::Time & begin,
const armem::Time & end ) const

◆ queryOdometryPose()

std::optional<::armarx::armem::robot_state::localization::Transform > queryOdometryPose ( const std::string & robotName,
const armem::Time & timestamp ) const

retrieve the robot's pose in the odometry frame.

This pose is an integration of the robot's platform velocity and undergoes a significant drift.

Parameters
description
timestamp
Returns
std::optional<RobotState::Pose>

◆ queryPlatformState()

std::optional< PlatformState > queryPlatformState ( const std::string & robotName,
const armem::Time & timestamp ) const

◆ queryProprioception()

std::optional< armarx::armem::arondto::Proprioception > queryProprioception ( const std::string & robotName,
const armem::Time & timestamp,
armem::Time * referencedTime = nullptr ) const
Parameters
referencedTimeIf given, receives the time the returned data actually refers to, which is the newest snapshot at or before timestamp and may be arbitrarily older than it.

◆ queryState()

std::optional< RobotState > queryState ( const std::string & robotName,
const armem::Time & timestamp ) const

◆ queryToF()

std::optional< std::map< RobotReader::Hand, exteroception::ToF > > queryToF ( const std::string & robotName,
const armem::Time & timestamp ) const

◆ registerPropertyDefinitions()

void registerPropertyDefinitions ( ::armarx::PropertyDefinitionsPtr & def)
virtual

◆ setSleepAfterSyncFailure()

void setSleepAfterSyncFailure ( const armem::Duration & duration)

◆ setSyncTimeout()

void setSyncTimeout ( const armem::Duration & duration)

◆ synchronize()

bool synchronize ( Robot & obj,
const armem::Time & timestamp ) const
nodiscardoverridevirtual

Implements ReaderInterface.

Member Data Documentation

◆ sleepAfterFailure

armem::Duration sleepAfterFailure = armem::Duration::MicroSeconds(0)
protected

◆ syncTimeout

armem::Duration syncTimeout = armem::Duration::MicroSeconds(0)
protected

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