Go to the documentation of this file.
28 #include <SimoxUtility/math/convert/mat3f_to_rpy.h>
29 #include <SimoxUtility/math/convert/mat4f_to_rpy.h>
30 #include <SimoxUtility/math/periodic/periodic_clamp.h>
39 NJointControllerRegistration<NJointHolonomicPlatformGlobalPositionController>
41 "NJointHolonomicPlatformGlobalPositionController");
46 const NJointHolonomicPlatformGlobalPositionControllerConfigPtr& cfg,
48 pid(cfg->p, cfg->i, cfg->d, cfg->maxVelocity, cfg->maxAcceleration),
52 cfg->maxRotationVelocity,
53 cfg->maxRotationAcceleration,
77 const Eigen::Vector3f rpy = simox::math::mat4f_to_rpy(global_T_robot);
78 const float global_orientation = rpy.z();
79 const Eigen::Vector2f global_P_robot = global_T_robot.block<2, 1>(0, 3);
125 const float measuredOrientation = global_orientation;
129 opid.
update(timeSinceLastIteration.toSecondsDouble(),
130 static_cast<double>(measuredOrientation),
133 const Eigen::Rotation2Df global_R_local(-measuredOrientation);
153 float translationAccuracy,
154 float rotationAccuracy)
162 simox::math::periodic_clamp(
static_cast<double>(yaw), -
M_PI,
M_PI);
const NJointHolonomicPlatformGlobalPositionControllerTarget & rtGetControlStruct() const
The SensorValueBase class.
static std::string DeviceName()
ControlTargetBase * useControlTarget(const std::string &deviceName, const std::string &controlMode)
Declares to calculate the ControlTarget for the given ControlDevice in the given ControlMode when rtR...
void update(const double deltaSec, const PIDVectorX &measuredValue, const PIDVectorX &targetValue)
void preallocate(size_t size)
NJointHolonomicPlatformGlobalPositionControllerTarget & getWriterControlStruct()
double getControlValue() const
Transformation global_T_root
void update(double deltaSec, double measuredValue, double targetValue)
void writeControlStruct()
MutexType controlDataMutex
armarx::core::time::DateTime Time
NJointControllerRegistration< NJointHolonomicPlatformGlobalPositionController > registrationNJointHolonomicPlatformGlobalPositionController("NJointHolonomicPlatformGlobalPositionController")
const PIDVectorX & getControlValue() const
The RobotUnit class manages a robot and its controllers.
This file offers overloads of toIce() and fromIce() functions for STL container types.
const SensorValueBase * useSensorValue(const std::string &sensorDeviceName) const
Get a const ptr to the given SensorDevice's SensorValue.
std::shared_ptr< class Robot > RobotPtr