GlobalRobotPoseSensorDevice.h
Go to the documentation of this file.
1 
2 #pragma once
3 
4 #include <Eigen/Core>
5 
8 
13 
14 namespace armarx
15 {
16 
17  /**
18  * @brief The pose correction to obtain the robot's global pose.
19  *
20  * In conjunction with the SensorValueHolonomicPlatformRelativePosition
21  * information, the global robot pose can be obtained which
22  * - provides the robot's initial localization within the map
23  * - compensates odometry drift over time.
24  *
25  */
27  {
28  public:
31 
32  // TODO add timestamp
33 
35 
36  bool isAvailable() const;
37 
39  };
40 
42  {
43  public:
46 
48 
49  bool isAvailable() const;
50 
52  };
53 
55 
57  {
58  public:
60 
61  static std::string DeviceName();
62 
64 
65  const SensorValueBase* getSensorValue() const override;
66 
67  std::string getReportingFrame() const override;
68 
69  void rtReadSensorValues(const IceUtil::Time& sensorValuesTimestamp,
70  const IceUtil::Time& timeSinceLastIteration) override;
71 
73 
74  private:
75  SensorValueType sensor;
76 
78  };
79 
81 
83  {
84  public:
86 
87  static std::string DeviceName();
88 
90 
91  const SensorValueBase* getSensorValue() const override;
92 
93  std::string getReportingFrame() const override;
94 
95  void rtReadSensorValues(const IceUtil::Time& sensorValuesTimestamp,
96  const IceUtil::Time& timeSinceLastIteration) override;
97 
98  protected:
100  };
101 
103 
105  {
106  public:
107  static std::string DeviceName();
108 
110 
111  void rtReadSensorValues(const IceUtil::Time& sensorValuesTimestamp,
112  const IceUtil::Time& timeSinceLastIteration) override;
113 
116  };
117 
118 
119 } // namespace armarx
armarx::SensorValueGlobalRobotPose::isAvailable
bool isAvailable() const
Definition: GlobalRobotPoseSensorDevice.cpp:34
armarx::SensorValueGlobalRobotPose
Definition: GlobalRobotPoseSensorDevice.h:41
armarx::GlobalRobotPoseSensorDevice
Definition: GlobalRobotPoseSensorDevice.h:82
armarx::GlobalRobotPoseSensorDevice::DeviceName
static std::string DeviceName()
Definition: GlobalRobotPoseSensorDevice.cpp:80
armarx::SensorValueHolonomicPlatformRelativePosition
The robot's position relative to its initial pose when starting the robot unit based on odometry info...
Definition: SensorValueHolonomicPlatform.h:83
SensorDevice.h
armarx::SensorValueBase
The SensorValueBase class.
Definition: SensorValueBase.h:40
SensorValueHolonomicPlatform.h
armarx::GlobalRobotPoseCorrectionSensorDevice::getReportingFrame
std::string getReportingFrame() const override
Definition: GlobalRobotPoseSensorDevice.cpp:58
armarx::GlobalRobotLocalizationSensorDevice::DeviceName
static std::string DeviceName()
Definition: GlobalRobotPoseSensorDevice.cpp:109
armarx::introspection::ClassMemberInfo
Definition: ClassMemberInfo.h:34
armarx::GlobalRobotLocalizationSensorDevice::rtReadSensorValues
void rtReadSensorValues(const IceUtil::Time &sensorValuesTimestamp, const IceUtil::Time &timeSinceLastIteration) override
This is a hook for implementations to read the sensor value from a bus.
Definition: GlobalRobotPoseSensorDevice.cpp:120
armarx::GlobalRobotPoseSensorDevice::GlobalRobotPoseSensorDevice
GlobalRobotPoseSensorDevice()
Definition: GlobalRobotPoseSensorDevice.cpp:85
armarx::SensorValueGlobalRobotPose::global_T_root
Transformation global_T_root
Definition: GlobalRobotPoseSensorDevice.h:45
armarx::TYPEDEF_PTRS_SHARED
TYPEDEF_PTRS_SHARED(ControlDevice)
armarx::SensorValueGlobalPoseCorrection::GetClassMemberInfo
static SensorValueInfo< SensorValueGlobalPoseCorrection > GetClassMemberInfo()
Definition: GlobalRobotPoseSensorDevice.cpp:10
armarx::SensorValueGlobalPoseCorrection::Transformation
Eigen::Matrix4f Transformation
Definition: GlobalRobotPoseSensorDevice.h:29
armarx::GlobalRobotLocalizationSensorDevice::GlobalRobotLocalizationSensorDevice
GlobalRobotLocalizationSensorDevice()
Definition: GlobalRobotPoseSensorDevice.cpp:114
armarx::GlobalRobotPoseCorrectionSensorDevice::updateGlobalPositionCorrection
void updateGlobalPositionCorrection(const SensorValueType::Transformation &global_T_odom)
Definition: GlobalRobotPoseSensorDevice.cpp:72
GfxTL::Identity
void Identity(MatrixXX< N, N, T > *a)
Definition: MatrixXX.h:523
SensorValueBase.h
armarx::SensorDevice
This class represents some part of the robot providing sensor values.
Definition: SensorDevice.h:59
armarx::GlobalRobotLocalizationSensorDevice
Definition: GlobalRobotPoseSensorDevice.h:104
FramedPose.h
armarx::GlobalRobotPoseCorrectionSensorDevice::DeviceName
static std::string DeviceName()
Definition: GlobalRobotPoseSensorDevice.cpp:40
armarx::GlobalRobotPoseSensorDevice::sensor
SensorValueType sensor
Definition: GlobalRobotPoseSensorDevice.h:99
DETAIL_SensorValueBase_DEFAULT_METHOD_IMPLEMENTATION
#define DETAIL_SensorValueBase_DEFAULT_METHOD_IMPLEMENTATION
Definition: SensorValueBase.h:139
armarx::GlobalRobotPoseCorrectionSensorDevice::getSensorValue
const SensorValueBase * getSensorValue() const override
Definition: GlobalRobotPoseSensorDevice.cpp:52
armarx::armem::Time
armarx::core::time::DateTime Time
Definition: forward_declarations.h:13
armarx::SensorValueGlobalPoseCorrection
The pose correction to obtain the robot's global pose.
Definition: GlobalRobotPoseSensorDevice.h:26
armarx::GlobalRobotPoseSensorDevice::getSensorValue
const SensorValueBase * getSensorValue() const override
Definition: GlobalRobotPoseSensorDevice.cpp:91
armarx::GlobalRobotPoseSensorDevice::rtReadSensorValues
void rtReadSensorValues(const IceUtil::Time &sensorValuesTimestamp, const IceUtil::Time &timeSinceLastIteration) override
This is a hook for implementations to read the sensor value from a bus.
Definition: GlobalRobotPoseSensorDevice.cpp:103
TripleBuffer.h
armarx::GlobalRobotPoseCorrectionSensorDevice
Definition: GlobalRobotPoseSensorDevice.h:56
GfxTL::Matrix4f
MatrixXX< 4, 4, float > Matrix4f
Definition: MatrixXX.h:601
armarx::SensorValueGlobalPoseCorrection::isAvailable
bool isAvailable() const
Definition: GlobalRobotPoseSensorDevice.cpp:19
armarx::GlobalRobotPoseCorrectionSensorDevice::GlobalRobotPoseCorrectionSensorDevice
GlobalRobotPoseCorrectionSensorDevice()
Definition: GlobalRobotPoseSensorDevice.cpp:45
armarx::SensorValueGlobalRobotPose::GetClassMemberInfo
static SensorValueInfo< SensorValueGlobalRobotPose > GetClassMemberInfo()
Definition: GlobalRobotPoseSensorDevice.cpp:25
armarx::SensorValueGlobalPoseCorrection::global_T_odom
Transformation global_T_odom
Definition: GlobalRobotPoseSensorDevice.h:30
armarx::GlobalRobotLocalizationSensorDevice::sensorGlobalPositionCorrection
const SensorValueGlobalPoseCorrection * sensorGlobalPositionCorrection
Definition: GlobalRobotPoseSensorDevice.h:114
Logging.h
armarx::SensorValueGlobalRobotPose::Transformation
Eigen::Matrix4f Transformation
Definition: GlobalRobotPoseSensorDevice.h:44
armarx::GlobalRobotLocalizationSensorDevice::sensorRelativePosition
const SensorValueHolonomicPlatformRelativePosition * sensorRelativePosition
Definition: GlobalRobotPoseSensorDevice.h:115
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition: ArmarXTimeserver.cpp:28
armarx::GlobalRobotPoseCorrectionSensorDevice::rtReadSensorValues
void rtReadSensorValues(const IceUtil::Time &sensorValuesTimestamp, const IceUtil::Time &timeSinceLastIteration) override
This is a hook for implementations to read the sensor value from a bus.
Definition: GlobalRobotPoseSensorDevice.cpp:64
armarx::GlobalRobotPoseSensorDevice::getReportingFrame
std::string getReportingFrame() const override
Definition: GlobalRobotPoseSensorDevice.cpp:97
armarx::TripleBuffer< SensorValueType::Transformation >