SensorValueHolonomicPlatform.h
Go to the documentation of this file.
1/*
2 * This file is part of ArmarX.
3 *
4 * ArmarX is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 *
8 * ArmarX is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * @package RobotAPI
17 * @author Raphael ( raphael dot grimm at kit dot edu )
18 * @date 2017
19 * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
20 * GNU General Public License
21 */
22#pragma once
23
25
26#include "SensorValueBase.h"
27
28namespace armarx
29{
48
77
78 /**
79 * @brief The robot's position relative to its initial pose when starting the robot unit based on odometry information.
80 *
81 * Note: The relative position undergoes a significant drift over time.
82 */
106
107 // The following class is deprecated: if the absolute position is provided, it will become inconsistent with the relative position.
108 // Therefore, SensorValueHolonomicPlatformRelativePosition + SensorValueHolonomicPlatformGlobalPositionCorrection should be used instead.
109
110 // class SensorValueHolonomicPlatformAbsolutePosition : virtual public SensorValueBase
111 // {
112 // public:
113 // DETAIL_SensorValueBase_DEFAULT_METHOD_IMPLEMENTATION
114 // float absolutePositionX;
115 // float absolutePositionY;
116 // float absolutePositionRotation;
117 // static SensorValueInfo<SensorValueHolonomicPlatformAbsolutePosition> GetClassMemberInfo()
118 // {
119 // SensorValueInfo<SensorValueHolonomicPlatformAbsolutePosition> svi;
120 // svi.addMemberVariable(&SensorValueHolonomicPlatformAbsolutePosition::absolutePositionX, "absolutePositionX");
121 // svi.addMemberVariable(&SensorValueHolonomicPlatformAbsolutePosition::absolutePositionY, "absolutePositionY");
122 // svi.addMemberVariable(&SensorValueHolonomicPlatformAbsolutePosition::absolutePositionRotation, "absolutePositionRotation");
123 // return svi;
124 // }
125 // };
126
127
156
157 // The following class is deprecated: if the absolute position is provided, it will become inconsistent with the relative position.
158 // Therefore, SensorValueHolonomicPlatformRelativePosition + SensorValueHolonomicPlatformGlobalPositionCorrection should be used instead.
159
160 // class SensorValueHolonomicPlatformWithAbsolutePosition : virtual public SensorValueHolonomicPlatform, virtual public SensorValueHolonomicPlatformAbsolutePosition
161 // {
162 // public:
163 // DETAIL_SensorValueBase_DEFAULT_METHOD_IMPLEMENTATION
164 // static SensorValueInfo<SensorValueHolonomicPlatformWithAbsolutePosition> GetClassMemberInfo()
165 // {
166 // SensorValueInfo<SensorValueHolonomicPlatformWithAbsolutePosition> svi;
167 // svi.addBaseClass<SensorValueHolonomicPlatform>();
168 // svi.addBaseClass<SensorValueHolonomicPlatformAbsolutePosition>();
169 // return svi;
170 // }
171 // };
172} // namespace armarx
#define DETAIL_SensorValueBase_DEFAULT_METHOD_IMPLEMENTATION
constexpr T dt
The SensorValueBase class.
introspection::ClassMemberInfo< SensorValueBase, DerivedClass > SensorValueInfo
static SensorValueInfo< SensorValueHolonomicPlatformAcceleration > GetClassMemberInfo()
DETAIL_SensorValueBase_DEFAULT_METHOD_IMPLEMENTATION float accelerationX
void deriveAccelerationFromVelocityDelta(float dvx, float dvy, float dvrot, float dt)
The robot's position relative to its initial pose when starting the robot unit based on odometry info...
DETAIL_SensorValueBase_DEFAULT_METHOD_IMPLEMENTATION float relativePositionX
static SensorValueInfo< SensorValueHolonomicPlatformRelativePosition > GetClassMemberInfo()
DETAIL_SensorValueBase_DEFAULT_METHOD_IMPLEMENTATION float velocityX
static SensorValueInfo< SensorValueHolonomicPlatformVelocity > GetClassMemberInfo()
static SensorValueInfo< SensorValueHolonomicPlatform > GetClassMemberInfo()
DETAIL_SensorValueBase_DEFAULT_METHOD_IMPLEMENTATION void setVelocitiesAndDeriveAcceleration(float vx, float vy, float vrot, float dt)
This file offers overloads of toIce() and fromIce() functions for STL container types.
void addBaseClass()
add all variables of a base class of the current class
EntryConfigurator< ClassType > addMemberVariable(MemberType ClassType::*ptr, const std::string &name)
add a member variable of the current class