GlobalRobotPoseSensorDevice.h
Go to the documentation of this file.
1
2#pragma once
3
4#include <Eigen/Core>
5
8
13
14namespace 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:
29 using Transformation = Eigen::Matrix4f;
30 Transformation global_T_odom = Transformation::Identity();
31
32 // TODO add timestamp
33
35
36 bool isAvailable() const;
37
39 };
40
42 {
43 public:
44 using Transformation = Eigen::Matrix4f;
45 Transformation global_T_root = Transformation::Identity();
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
#define TYPEDEF_PTRS_SHARED(T)
#define DETAIL_SensorValueBase_DEFAULT_METHOD_IMPLEMENTATION
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.
const SensorValueGlobalPoseCorrection * sensorGlobalPositionCorrection
const SensorValueHolonomicPlatformRelativePosition * sensorRelativePosition
void updateGlobalPositionCorrection(const SensorValueType::Transformation &global_T_odom)
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.
const SensorValueBase * getSensorValue() const override
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.
const SensorValueBase * getSensorValue() const override
SensorDevice(const std::string &name)
Create a SensorDevice with the given name.
The SensorValueBase class.
introspection::ClassMemberInfo< SensorValueBase, DerivedClass > SensorValueInfo
The pose correction to obtain the robot's global pose.
static SensorValueInfo< SensorValueGlobalPoseCorrection > GetClassMemberInfo()
static SensorValueInfo< SensorValueGlobalRobotPose > GetClassMemberInfo()
The robot's position relative to its initial pose when starting the robot unit based on odometry info...
A simple triple buffer for lockfree comunication between a single writer and a single reader.
This file offers overloads of toIce() and fromIce() functions for STL container types.