From 24e1ee952780ec014e2a76ba4136f251b1c95768 Mon Sep 17 00:00:00 2001 From: Carlos Mastalli <carlos.mastalli@laas.fr> Date: Sat, 7 Sep 2019 12:40:20 +0200 Subject: [PATCH] [python] Added logger callback --- bindings/python/crocoddyl/__init__.py | 31 ++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/bindings/python/crocoddyl/__init__.py b/bindings/python/crocoddyl/__init__.py index 42e6c2bb..908fcad3 100644 --- a/bindings/python/crocoddyl/__init__.py +++ b/bindings/python/crocoddyl/__init__.py @@ -50,4 +50,33 @@ class CallbackSolverDisplay(libcrocoddyl_pywrap.CallbackAbstract): if (solver.iter + 1) % self.freq: return dt = solver.models()[0].dt - displayTrajectory(self.robotwrapper, solver.xs, dt, self.rate, self.cameraTF) \ No newline at end of file + displayTrajectory(self.robotwrapper, solver.xs, dt, self.rate, self.cameraTF) + + +class CallbackSolverLogger(libcrocoddyl_pywrap.CallbackAbstract): + def __init__(self): + libcrocoddyl_pywrap.CallbackAbstract.__init__(self) + self.steps = [] + self.iters = [] + self.costs = [] + self.control_regs = [] + self.state_regs = [] + self.th_stops = [] + self.gm_stops = [] + self.xs = [] + self.us = [] + self.gaps = [] + + def __call__(self, solver): + import copy + import numpy as np + self.xs = copy.copy(solver.xs) + self.us = copy.copy(solver.us) + self.steps.append(solver.stepLength) + self.iters.append(solver.iter) + self.costs.append(solver.cost) + self.control_regs.append(solver.u_reg) + self.state_regs.append(solver.x_reg) + self.th_stops.append(solver.stoppingCriteria) + self.gm_stops.append(-np.asscalar(solver.expectedImprovement()[1])) + self.gaps.append(copy.copy(solver.gaps)) \ No newline at end of file -- GitLab