From 95ce7dae4153f6bcae32b5411e29c1018be5765c Mon Sep 17 00:00:00 2001 From: Ale <alessandroassirell98@gmail.com> Date: Wed, 27 Jul 2022 11:27:20 +0200 Subject: [PATCH] 1KHz mpc (reduced model) Closed loop EndEff tracking cost Impedance + Feedforward control --- .../main_solo12_control.py | 14 ++++++++++---- .../tools/LoggerControl.py | 13 +++++++------ 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/python/quadruped_reactive_walking/main_solo12_control.py b/python/quadruped_reactive_walking/main_solo12_control.py index 57a054bc..ba51a625 100644 --- a/python/quadruped_reactive_walking/main_solo12_control.py +++ b/python/quadruped_reactive_walking/main_solo12_control.py @@ -3,6 +3,7 @@ import time from pathlib import Path import numpy as np import git +from datetime import datetime import quadruped_reactive_walking as qrw from .Controller import Controller @@ -18,7 +19,7 @@ target.update(0) repo = git.Repo(search_parent_directories=True) sha = repo.head.object.hexsha -msg = repo.head.object.message +msg = repo.head.object.message + "\nCommit: " + sha if params.SIMULATION: from .tools.PyBulletSimulator import PyBulletSimulator @@ -227,11 +228,16 @@ def control_loop(): print("Masterboard timeout detected.") if params.LOGGING: - log_path = Path("/tmp") / "logs" + date_str = datetime.now().strftime("%Y_%m_%d_%H_%M") + log_path = Path("/tmp") / "logs" / date_str + log_path.mkdir(parents=True) loggerControl.save(str(log_path)) + with open(str(log_path / 'readme.txt') , 'w') as f: + f.write(msg) - if params.PLOTTING: - loggerControl.plot() + if params.PLOTTING: + loggerControl.plot(save=True, fileName=str(log_path)) + print("Plots saved in ", str(log_path) + "/") if params.SIMULATION and params.enable_pyb_GUI: device.Stop() diff --git a/python/quadruped_reactive_walking/tools/LoggerControl.py b/python/quadruped_reactive_walking/tools/LoggerControl.py index 4258d900..4270e6ee 100644 --- a/python/quadruped_reactive_walking/tools/LoggerControl.py +++ b/python/quadruped_reactive_walking/tools/LoggerControl.py @@ -202,7 +202,7 @@ class LoggerControl: plt.legend(legend) plt.draw() if save: - plt.savefig(fileName + "_joint_positions") + plt.savefig(fileName + "/joint_positions") plt.figure(figsize=(12, 6), dpi=90) i = 0 @@ -218,7 +218,7 @@ class LoggerControl: plt.legend(legend) plt.draw() if save: - plt.savefig(fileName + "_joint_velocities") + plt.savefig(fileName + "/joint_velocities") plt.figure(figsize=(12, 6), dpi=90) i = 0 @@ -234,7 +234,7 @@ class LoggerControl: plt.legend(legend) plt.draw() if save: - plt.savefig(fileName + "_joint_torques") + plt.savefig(fileName + "/joint_torques") legend = ["x", "y", "z"] plt.figure(figsize=(12, 18), dpi = 90) @@ -245,6 +245,8 @@ class LoggerControl: plt.plot(m_feet_p_log[self.pd.rfFootId][:, p]) plt.plot(feet_p_log[self.pd.rfFootId][:, p]) plt.legend(["Target", "Measured", "Predicted"]) + if save: + plt.savefig(fileName + "/target") self.plot_controller_times() self.plot_OCP_times() @@ -307,8 +309,7 @@ class LoggerControl: plt.ylabel("Time [s]") def save(self, fileName="data"): - date_str = datetime.now().strftime("_%Y_%m_%d_%H_%M") - name = fileName + date_str + ".npz" + name = fileName + "/data.npz" np.savez_compressed( name, @@ -349,7 +350,7 @@ class LoggerControl: voltage=self.voltage, energy=self.energy, ) - print("Logs and plots saved in " + name) + print("Logs saved in " + name) def load(self): if self.data is None: -- GitLab