Skip to content
Snippets Groups Projects

Improve armar7 platform movement

Merged Tobias Gröger requested to merge feature/improve-armar7-platform-movement into master
All threads resolved!
Compare and Show latest version
2 files
+ 20
10
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -50,14 +50,13 @@ namespace armarx
void
NJointHolonomicPlatformVelocityControllerWithRamp::rtPreActivateController()
{
const float velX = velocitySensor->velocityX;
const float velY = velocitySensor->velocityY;
const float velRot = velocitySensor->velocityRotation;
activationVelocity(0) = velocitySensor->velocityX;
activationVelocity(1) = velocitySensor->velocityY;
activationVelocity(2) = velocitySensor->velocityRotation;
activationTime = IceUtil::Time::now();
// init velocity ramp
ramp.init(Eigen::Vector3f(velX, velY, velRot));
setVelocites(velX, velY, velRot);
ramp.init(activationVelocity);
}
void
@@ -79,11 +78,19 @@ namespace armarx
}
else
{
Eigen::Vector3f x(rtGetControlStruct().velocityX,
rtGetControlStruct().velocityY,
rtGetControlStruct().velocityRotation);
Eigen::Vector3f result;
if (activationTime > rtGetControlStruct().commandTimestamp)
{
result = ramp.update(activationVelocity, timeSinceLastIteration.toSecondsDouble());
}
else
{
Eigen::Vector3f x(rtGetControlStruct().velocityX,
rtGetControlStruct().velocityY,
rtGetControlStruct().velocityRotation);
result = ramp.update(x, timeSinceLastIteration.toSecondsDouble());
}
Eigen::VectorXf result = ramp.update(x, timeSinceLastIteration.toSecondsDouble());
target->velocityX = result(0);
target->velocityY = result(1);
target->velocityRotation = result(2);
Loading