Skip to content
Snippets Groups Projects
Commit 01fd33f8 authored by Mirko Wächter's avatar Mirko Wächter
Browse files

added config struct for controller

parent 0c797b03
No related branches found
No related tags found
No related merge requests found
......@@ -27,6 +27,7 @@
#include <ArmarXCore/core/util/algorithm.h>
#include <RobotAPI/libraries/core/math/MathUtils.h>
#include <RobotAPI/libraries/core/PIDController.h>
#include <ArmarXCore/core/rapidxml/wrapper/DefaultRapidXmlReader.h>
// #define DEBUG_POS_CTRL
#ifdef DEBUG_POS_CTRL
#include <boost/circular_buffer.hpp>
......@@ -178,20 +179,52 @@ namespace armarx
double acceleration;
double jerk;
};
float dt;
// config
float maxDt;
float currentV;
float currentAcc;
float targetV;
float maxV;
float jerk;
float directSetVLimit;
// state
float dt;
float currentV;
float currentAcc;
float targetV;
bool validParameters() const;
Output run() const;
};
typedef std::shared_ptr<class RampedAccelerationVelocityControllerConfiguration> RampedAccelerationVelocityControllerConfigurationPtr;
typedef std::shared_ptr<const RampedAccelerationVelocityControllerConfiguration> RampedAccelerationVelocityControllerConfigurationCPtr;
class RampedAccelerationVelocityControllerConfiguration
{
public:
RampedAccelerationVelocityControllerConfiguration() = default;
static RampedAccelerationVelocityControllerConfigurationPtr CreateFromXml(DefaultRapidXmlReaderNode node)
{
RampedAccelerationVelocityControllerConfigurationPtr config(new RampedAccelerationVelocityControllerConfiguration());
FillFromXml(*config, node);
return config;
}
static void FillFromXml(RampedAccelerationVelocityControllerConfiguration& config, DefaultRapidXmlReaderNode node)
{
config.maxVelocityRad = node.first_node("maxVelocityRad").value_as_float();
config.maxDecelerationRad = node.first_node("maxDecelerationRad").value_as_float();
config.jerk = node.first_node("jerk").value_as_float();
config.maxDt = node.first_node("maxDt").value_as_float();
config.directSetVLimit = node.first_node("directSetVLimit").value_as_float();
}
float maxVelocityRad;
float maxDecelerationRad;
float jerk;
float maxDt;
float directSetVLimit;
};
struct VelocityControllerWithRampedAccelerationAndPositionBounds: VelocityControllerWithRampedAcceleration
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment