diff --git a/include/bodydynamics/sensor/sensor_force_torque_inertial.h b/include/bodydynamics/sensor/sensor_force_torque_inertial.h
index 21f42957039fea53471e2cef9eb60ef67d96e7ad..d4df23af22a063f61e7434cd5ecb1ca3da11a012 100644
--- a/include/bodydynamics/sensor/sensor_force_torque_inertial.h
+++ b/include/bodydynamics/sensor/sensor_force_torque_inertial.h
@@ -43,6 +43,7 @@ struct ParamsSensorForceTorqueInertial : public ParamsSensorBase
     double   gyro_drift_std;
     double   force_noise_std;
     double   torque_noise_std;
+    Vector3d acc_bias, gyro_bias;
     Vector3d com;
     Vector3d inertia;
     double   mass;
@@ -58,15 +59,27 @@ struct ParamsSensorForceTorqueInertial : public ParamsSensorBase
         gyrob_initial_std = _server.getParam<double>(prefix + _unique_name + "/gyrob_initial_std");
         acc_drift_std     = _server.getParam<double>(prefix + _unique_name + "/acc_drift_std");
         gyro_drift_std    = _server.getParam<double>(prefix + _unique_name + "/gyro_drift_std");
+        
         force_noise_std   = _server.getParam<double>(prefix + _unique_name + "/force_noise_std");
         torque_noise_std  = _server.getParam<double>(prefix + _unique_name + "/torque_noise_std");
-        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");
+        
+        if (_server.hasParam(prefix + _unique_name + "/acc_bias"))
+            acc_bias = _server.getParam<Vector3d>(prefix + _unique_name + "/acc_bias");
+        else
+            acc_bias.setZero();
+        if (_server.hasParam(prefix + _unique_name + "/gyro_bias"))
+            gyro_bias = _server.getParam<Vector3d>(prefix + _unique_name + "/gyro_bias");
+        else
+            gyro_bias.setZero();
+        
+        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 0c3a35d31d95e34543339bfe1e706264df19e287..569cb24a0249d9e8ea1f04a97b8d057241885903 100644
--- a/src/sensor/sensor_force_torque_inertial.cpp
+++ b/src/sensor/sensor_force_torque_inertial.cpp
@@ -41,6 +41,10 @@ SensorForceTorqueInertial::SensorForceTorqueInertial(const VectorXd&
                  false),
       params_fti_(_params)
 {
+    // set IMU bias here (it's complicated to do in the constructor above)
+    Vector6d imu_bias; imu_bias << params_fti_->acc_bias, params_fti_->gyro_bias;
+    getStateBlock('I')->setState(imu_bias);
+
     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
@@ -58,6 +62,7 @@ SensorForceTorqueInertial::SensorForceTorqueInertial(const VectorXd&
     setNoiseStd(noise_std_vector);
 }
 
+
 // TODO: Adapt this API to that of MR !448
 SensorForceTorqueInertial::SensorForceTorqueInertial(const VectorComposite&             _states,
                                                      ParamsSensorForceTorqueInertialPtr _params)