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
1 file
+ 16
5
Compare changes
  • Side-by-side
  • Inline
@@ -39,9 +39,11 @@ namespace armarx
<< "The actuator " << cfg->platformName << " has no control mode "
<< ControlModes::HolonomicPlatformVelocity;
velocitySensor =
useSensorValue(cfg->platformName + "asdf")->asA<SensorValueHolonomicPlatformVelocity>();
ARMARX_CHECK_EXPRESSION(velocitySensor) << "No sensor value for " << cfg->platformName;
const auto sensor = useSensorValue(cfg->platformName);
ARMARX_CHECK_EXPRESSION(sensor) << "No sensor value for " << cfg->platformName;
velocitySensor = sensor->asA<SensorValueHolonomicPlatformVelocity>();
ARMARX_CHECK_EXPRESSION(velocitySensor)
<< "Sensor value for " << cfg->platformName << " has invalid type";
ramp.setMaxPositionAcceleration(cfg->maxPositionAcceleration);
ramp.setMaxOrientationAcceleration(cfg->maxOrientationAcceleration);
@@ -50,11 +52,20 @@ namespace armarx
void
NJointHolonomicPlatformVelocityControllerWithRamp::rtPreActivateController()
{
const float velX = velocitySensor->velocityX;
const float velY = velocitySensor->velocityY;
const float velRot = velocitySensor->velocityRotation;
// init velocity ramp
Eigen::VectorXf state(6);
state << velocitySensor->velocityX, velocitySensor->velocityY, 0, 0, 0,
velocitySensor->velocityRotation;
state << velX, velY, 0, 0, 0, velRot;
ramp.setState(state, VirtualRobot::IKSolver::CartesianSelection::All);
NJointHolonomicPlatformVelocityControllerControlData data;
data.velocityX = velX;
data.velocityY = velY;
data.velocityRotation = velRot;
reinitTripleBuffer(data);
}
void
Loading