diff --git a/include/bodydynamics/sensor/sensor_force_torque_inertial.h b/include/bodydynamics/sensor/sensor_force_torque_inertial.h
index d9cff87b4f4d8e57588e1b71ec9e9b22e90f7146..21f42957039fea53471e2cef9eb60ef67d96e7ad 100644
--- a/include/bodydynamics/sensor/sensor_force_torque_inertial.h
+++ b/include/bodydynamics/sensor/sensor_force_torque_inertial.h
@@ -46,6 +46,7 @@ struct ParamsSensorForceTorqueInertial : public ParamsSensorBase
     Vector3d com;
     Vector3d inertia;
     double   mass;
+    bool     imu_bias_fix, com_fix, inertia_fix, mass_fix;
 
     ParamsSensorForceTorqueInertial() = default;
     ParamsSensorForceTorqueInertial(std::string _unique_name, const ParamsServer& _server)
@@ -62,6 +63,10 @@ struct ParamsSensorForceTorqueInertial : public ParamsSensorBase
         com               = _server.getParam<Vector3d>(prefix + _unique_name + "/com");
         inertia           = _server.getParam<Vector3d>(prefix + _unique_name + "/inertia");
         mass              = _server.getParam<double>(prefix + _unique_name + "/mass");
+        imu_bias_fix      = _server.getParam<bool>  (prefix + _unique_name + "/imu_bias_fix");
+        com_fix           = _server.getParam<bool>  (prefix + _unique_name + "/com_fix");
+        inertia_fix       = _server.getParam<bool>  (prefix + _unique_name + "/inertia_fix");
+        mass_fix          = _server.getParam<bool>  (prefix + _unique_name + "/mass_fix");
     }
     ~ParamsSensorForceTorqueInertial() override = default;
     std::string print() const override
diff --git a/src/sensor/sensor_force_torque_inertial.cpp b/src/sensor/sensor_force_torque_inertial.cpp
index 2540ece69712c747c2fd1c30fec703f40ec227b5..0c3a35d31d95e34543339bfe1e706264df19e287 100644
--- a/src/sensor/sensor_force_torque_inertial.cpp
+++ b/src/sensor/sensor_force_torque_inertial.cpp
@@ -34,16 +34,16 @@ SensorForceTorqueInertial::SensorForceTorqueInertial(const VectorXd&
     : SensorBase("SensorForceTorqueInertial",
                  FactoryStateBlock::create("StatePoint3d", _extrinsics.head(3), true),
                  FactoryStateBlock::create("StateQuaternion", _extrinsics.tail(4), true),
-                 FactoryStateBlock::create("StateParams6", Vector6d::Zero(), false),  // IMU bias
+                 FactoryStateBlock::create("StateParams6", Vector6d::Zero(), _params->imu_bias_fix),  // IMU bias
                  12,
                  false,
                  false,
                  false),
       params_fti_(_params)
 {
-    addStateBlock('C', FactoryStateBlock::create("StateParams3", params_fti_->com, true));      // centre of mass
-    addStateBlock('i', FactoryStateBlock::create("StateParams3", params_fti_->inertia, true));  // inertial vector
-    addStateBlock('m', FactoryStateBlock::create("StateParams1", Vector1d(params_fti_->mass), true));  // total mass
+    addStateBlock('C', FactoryStateBlock::create("StateParams3", params_fti_->com, params_fti_->com_fix));      // centre of mass
+    addStateBlock('i', FactoryStateBlock::create("StateParams3", params_fti_->inertia, params_fti_->inertia_fix));  // inertial vector
+    addStateBlock('m', FactoryStateBlock::create("StateParams1", Vector1d(params_fti_->mass), params_fti_->mass_fix));  // total mass
     setStateBlockDynamic('I', false);
     setStateBlockDynamic('C', false);
     setStateBlockDynamic('i', false);