HQPData = invdyn.computeProblemData(t, q + noise_q, v + noise_v)
            sol = solver.solve_local(HQPData, delayed_sol)
            data.local_time = time.time() - local_start
            tau = invdyn.getActuatorForces(sol)
            dv = invdyn.getAccelerations(sol)
        else:
            solver.compute_slack(HQPData, delayed_sol)
            sol = delayed_sol
            tau = delayed_data.tau_fullqp
            dv = delayed_data.dv_fullqp
            data.local_time = 0

        data.slack = sol.slack
        data.tau = tau
        data.dv = dv
        data.activeset = sol.activeSet

        # data logging from noiseless measurements
        HQPData = invdyn.computeProblemData(t, q, v)
        data.com.pos = robot.com(invdyn.data())
        data.com.pos_ref = sampleCom.pos()
        data.left_foot.pos = left_foot.pos(t, q, v).translation
        data.left_foot.pos_ref = left_foot.motion_ref.pos()[:3]
        data.right_foot.pos = right_foot.pos(t, q, v).translation
        data.right_foot.pos_ref = right_foot.motion_ref.pos()[:3]

        # pinocchio
        v_mean = v + 0.5 * dt * dv
        v += dt * dv
        q = se3.integrate(robot.model(), q, dt * v_mean)
        pbwrapper.reset_state(q, v)