diff --git a/python/quadruped_reactive_walking/WB_MPC/CasadiOCP.py b/python/quadruped_reactive_walking/WB_MPC/CasadiOCP.py
index 0d30c307424d19bb45eed9921ce9018d7b5e9a03..cb1ac42bcdff50f7d5e3579340ec2d11d39face6 100644
--- a/python/quadruped_reactive_walking/WB_MPC/CasadiOCP.py
+++ b/python/quadruped_reactive_walking/WB_MPC/CasadiOCP.py
@@ -71,6 +71,7 @@ class OCP:
         datas (list of NodeData): list of node data, one for each node of the OCP
         opti (casadi.Opti): optimization problem wrapper
         xs (vector): State trajectory (q + dq)
+        dxs (vector): Derivative of state trajectory
         a (vector): Acceleration slack trajectory
         us (vector): Control trajectory (tau)
         fs (vector): Contact forces trajectories
@@ -203,6 +204,10 @@ class OCP:
         self.opti = opti
 
         # Optimization variables
+        self.dxs = [
+            opti.variable(self.pd.ndx)
+            for _ in self.runningModels + [self.terminalModel]
+        ]
         self.acs = [opti.variable(self.pd.nv) for _ in self.runningModels]
         self.us = [opti.variable(self.pd.nu) for _ in self.runningModels]
         self.xs = [opti.variable(self.pd.nx) for _ in (self.runningModels + [self.terminalModel])]