Skip to content

Commit afba4c8

Browse files
committed
started passing in a use imu flag
1 parent a76a67f commit afba4c8

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

ihmc-state-estimation/src/main/java/us/ihmc/stateEstimation/humanoid/kinematicsBasedStateEstimation/PelvisKinematicsBasedLinearStateCalculator.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ public PelvisKinematicsBasedLinearStateCalculator(FullInverseDynamicsStructure i
107107
copFilterBreakFrequency = new DoubleParameter("CopFilterBreakFrequency", registry, stateEstimatorParameters.getCoPFilterFreqInHertz());
108108
correctTrustedFeetPositions = new BooleanParameter("correctTrustedFeetPositions", registry, stateEstimatorParameters.correctTrustedFeetPositions());
109109

110+
YoBoolean useFootIMUData = new YoBoolean("useFootIMUData", registry);
110111
YoDouble footAlphaLeakIMUOnly = new YoDouble("footIMUOnlyAlphaLeak", registry);
111112
YoDouble imuAgainstKinematicsForVelocityBreakFrequency = new YoDouble("footIMUAgainstKinematicsForVelocityBreakFrequency", registry);
112113
YoDouble imuAgainstKinematicsForPositionBreakFrequency = new YoDouble("footIMUAgainstKinematicsForPositionBreakFrequency", registry);
@@ -133,6 +134,7 @@ public PelvisKinematicsBasedLinearStateCalculator(FullInverseDynamicsStructure i
133134
centerOfPressureDataHolderFromController,
134135
cancelGravityFromAccelerationMeasurement,
135136
gravityVector,
137+
useFootIMUData,
136138
imuAgainstKinematicsForPositionBreakFrequency,
137139
imuAgainstKinematicsForVelocityBreakFrequency,
138140
footAlphaLeakIMUOnly,

ihmc-state-estimation/src/main/java/us/ihmc/stateEstimation/humanoid/kinematicsBasedStateEstimation/SingleFootEstimator.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,13 @@
4444

4545
class SingleFootEstimator implements SCS2YoGraphicHolder
4646
{
47-
private static boolean USE_IMU_DATA = true;
48-
4947
private final RigidBodyBasics foot;
5048

5149
private final ReferenceFrame rootJointFrame;
5250
private final ReferenceFrame soleFrame;
5351
private final ReferenceFrame worldFrame = ReferenceFrame.getWorldFrame();
5452

53+
private final BooleanProvider useIMUData;
5554
private final YoFrameVector3D footIKLinearVelocityInWorld;
5655
private final YoFrameVector3D footIKAngularVelocityInWorld;
5756
private final YoFrameVector3D footIMULinearVelocityInWorld;
@@ -99,6 +98,7 @@ public SingleFootEstimator(FloatingJointBasics rootJoint,
9998
CenterOfPressureDataHolder centerOfPressureDataHolderFromController,
10099
BooleanProvider cancelGravityFromAccelerationMeasurement,
101100
FrameVector3DReadOnly gravityVector,
101+
BooleanProvider useIMUData,
102102
DoubleProvider imuAgainstKinematicsForPositionBreakFrequency,
103103
DoubleProvider imuAgainstKinematicsForVelocityBreakFrequency,
104104
DoubleProvider footAlphaLeakIMUOnly,
@@ -112,6 +112,7 @@ public SingleFootEstimator(FloatingJointBasics rootJoint,
112112
this.centerOfPressureDataHolderFromController = centerOfPressureDataHolderFromController;
113113
this.cancelGravityFromAccelerationMeasurement = cancelGravityFromAccelerationMeasurement;
114114
this.gravityVector = gravityVector;
115+
this.useIMUData = useIMUData;
115116
this.imuAgainstKinematicsForPositionBreakFrequency = imuAgainstKinematicsForPositionBreakFrequency;
116117
this.imuAgainstKinematicsForVelocityBreakFrequency = imuAgainstKinematicsForVelocityBreakFrequency;
117118
this.footAlphaLeakIMUOnly = footAlphaLeakIMUOnly;
@@ -204,7 +205,7 @@ public void updateKinematics(TwistReadOnly rootBodyTwist)
204205
footToRootJointPosition.update(tempFrameVector);
205206

206207
// FIXME remove magic parameters
207-
if (USE_IMU_DATA)
208+
if (useIMUData.getValue() && footIMU != null)
208209
footIsMoving.set(getFootLinearVelocityInWorld().norm() > 0.5 || getFootAngularVelocityInWorld().norm() > 1.0);
209210
else
210211
footIsMoving.set(false);
@@ -380,7 +381,7 @@ private void updateCoPPosition(boolean trustCoPAsNonSlippingContactPoint, boolea
380381
copIKPositionInWorld.setFromReferenceFrame(soleFrame);
381382
}
382383

383-
if (USE_IMU_DATA)
384+
if (useIMUData.getValue() && footIMU != null)
384385
{
385386
// Integrate the fused position using the velocity, which is from the kinematics and the IMU.
386387
computeLinearVelocityAtPointInWorld(copFusedPositionInWorld, tempFrameVector);
@@ -418,7 +419,7 @@ private void computeFootTwistInWorld(TwistReadOnly rootBodyTwist)
418419
footTwistInWorld.setBodyFrame(soleFrame);
419420
footTwistInWorld.changeFrame(worldFrame);
420421

421-
if (USE_IMU_DATA)
422+
if (useIMUData.getValue() && footIMU != null)
422423
{
423424
// Record the kinematic data
424425
footIKLinearVelocityInWorld.set(footTwistInWorld.getLinearPart());

0 commit comments

Comments
 (0)