From 68a6112faed0449d82d0418287ff734320a2bb48 Mon Sep 17 00:00:00 2001 From: fbailly <fbailly@laas.fr> Date: Fri, 18 Jan 2019 14:39:01 +0100 Subject: [PATCH] [updated dcm_estimator] and changed the way to perform signal introspection in SOT --- .../talos/base_estimator_conf.py | 2 +- .../test/test_dcm_estimator.py | 14 +++++---- python/sot_talos_balance/utils/plot_utils.py | 29 +++++++++++++++---- 3 files changed, 34 insertions(+), 11 deletions(-) diff --git a/python/sot_talos_balance/talos/base_estimator_conf.py b/python/sot_talos_balance/talos/base_estimator_conf.py index 3b112cd..7152412 100644 --- a/python/sot_talos_balance/talos/base_estimator_conf.py +++ b/python/sot_talos_balance/talos/base_estimator_conf.py @@ -4,7 +4,7 @@ std_dev_zmp = 0.02 std_dev_fz = 50. normal_force_margin = 30. zmp_margin = 0.002 -w_imu = 1.0; +w_imu = 0.; beta = 0.00329 K_fb_feet_poses = 0.0; # gain used for updating foot positions RIGHT_FOOT_SIZES = (0.130, -0.100, 0.056, -0.075); # pos x, neg x, pos y, neg y size diff --git a/python/sot_talos_balance/test/test_dcm_estimator.py b/python/sot_talos_balance/test/test_dcm_estimator.py index 13c465a..a584712 100644 --- a/python/sot_talos_balance/test/test_dcm_estimator.py +++ b/python/sot_talos_balance/test/test_dcm_estimator.py @@ -9,6 +9,8 @@ from dynamic_graph.sot.core import SOT from time import sleep from IPython import embed import os +import numpy as np +import matplotlib.pyplot as plt def main(robot): dt = robot.timeStep; @@ -76,7 +78,7 @@ def main(robot): robot.device_tracer.start(); robot.base_estimator_tracer.start(); robot.dcm_estimator_tracer.start(); - sleep(10.0); + sleep(1.0); dump_tracer(robot.device_tracer); dump_tracer(robot.base_estimator_tracer); dump_tracer(robot.dcm_estimator_tracer); @@ -89,10 +91,12 @@ def main(robot): base_estimator_data, base_name = read_tracer_file('/tmp/dg_'+robot.base_estimator.name+'-q.dat') dcm_estimator_data, dcm_name = read_tracer_file('/tmp/dg_'+robot.dcm_estimator.name+'-c.dat') - plot_select_traj(device_data,[10,23,15], device_name) - plot_select_traj(base_estimator_data,[10,23,15], base_name) - plot_select_traj(dcm_estimator_data,[0,1,2], dcm_name) + # plot_select_traj(device_data,[10,23,15], device_name) + # plot_select_traj(base_estimator_data,[np.linspace(1,7,7,dtype=int)], base_name) + # plot_select_traj(dcm_estimator_data,[0,1,2], dcm_name) + + # plt.show() write_pdf_graph('/tmp/') -² embed() + diff --git a/python/sot_talos_balance/utils/plot_utils.py b/python/sot_talos_balance/utils/plot_utils.py index b5e1bd5..668210c 100644 --- a/python/sot_talos_balance/utils/plot_utils.py +++ b/python/sot_talos_balance/utils/plot_utils.py @@ -1,6 +1,9 @@ -import numpy as np -import matplotlib.pyplot as plt -from dynamic_graph import writeGraph +import numpy as np +import matplotlib.pyplot as plt +from dynamic_graph import writeGraph +from sot_talos_balance.create_entities_utils import create_tracer, dump_tracer +from time import sleep +from IPython import embed import os def read_tracer_file(filename): @@ -10,12 +13,11 @@ def read_tracer_file(filename): def plot_select_traj(traj,idxs,name): ''' plot selected idx of ND array''' + plt.figure() nb_plots = np.size(idxs) for idx in idxs: plt.plot(traj[:,idx]) plt.title(name) - plt.show() - return def write_pdf_graph(path): ''' outputs a pdf of the graph to the specified path ''' @@ -23,3 +25,20 @@ def write_pdf_graph(path): os.system('dot -Tpdf '+path+'graph.dot -o '+path+'graph.pdf') return +def dump_sot_sig(robot,entity,signal_name,duration): + '''dumps a sot signal in /tmp + ex: dump_sot_sig(robot,robot.entity,'signal_name',1.)''' + full_sig_name = entity.name +'.'+signal_name + robot.tmp_tracer = create_tracer(robot,entity,'tmp_tracer', [signal_name]) + robot.device.after.addSignal(full_sig_name) + robot.tmp_tracer.start() + sleep(duration) + dump_tracer(robot.tmp_tracer) + robot.tmp_tracer.clear() + +def plot_sot_sig(filename,idxs): + '''plots a dumped signal''' + filename = '/tmp/dg_'+filename+'.dat' + data, name = read_tracer_file(filename) + plot_select_traj(data,idxs,name) + return \ No newline at end of file -- GitLab