1 """Test CoM admittance control as implemented in reference code."""
4 import matplotlib.pyplot
as plt
7 from dynamic_graph.sot_talos_balance.utils.gazebo_utils
import apply_force
8 from dynamic_graph.sot_talos_balance.utils.run_test_utils
import (
20 run_test(
"appli_dcmComZmpControl.py")
25 print(
"Connect ZMP reference")
26 runCommandClient(
"plug(robot.dcm_control.zmpRef,robot.com_admittance_control.zmpDes)")
28 "robot.com_admittance_control.setState(robot.dynamic.com.value,[0.0,0.0,0.0])"
36 print(
"Kick the robot...")
45 dcm_data = np.loadtxt(
49 zmpDes_data = np.loadtxt(
53 comDes_data = np.loadtxt(
54 "/tmp/dg_" +
evalCommandClient(
"robot.com_admittance_control.name") +
"-comRef.dat"
60 plt.plot(dcm_data[:, 1],
"b-")
61 plt.plot(dcm_data[:, 2],
"r-")
63 plt.legend([
"x",
"y"])
66 plt.plot(com_data[:, 1],
"b-")
67 plt.plot(comDes_data[:, 1],
"b--")
68 plt.plot(com_data[:, 2],
"r-")
69 plt.plot(comDes_data[:, 2],
"r--")
70 plt.plot(com_data[:, 3],
"g-")
71 plt.plot(comDes_data[:, 3],
"g--")
72 plt.title(
"COM real vs desired")
73 plt.legend([
"Real x",
"Desired x",
"Real y",
"Desired y",
"Real z",
"Desired z"])
76 plt.plot(zmp_data[:, 1],
"b-")
77 plt.plot(zmpDes_data[:, 1],
"b--")
78 plt.plot(zmp_data[:, 2],
"r-")
79 plt.plot(zmpDes_data[:, 2],
"r--")
80 plt.title(
"ZMP real vs desired")
81 plt.legend([
"Real x",
"Desired x",
"Real y",
"Desired y"])
84 plt.plot(zmp_data[:, 1] - zmpDes_data[:, 1],
"b-")
85 plt.plot(zmp_data[:, 2] - zmpDes_data[:, 2],
"r-")
86 plt.title(
"ZMP error")
87 plt.legend([
"Error on x",
"Error on y"])
89 input(
"Wait before leaving the simulation")