1 """Test CoM admittance control as described in paper."""
4 import matplotlib.pyplot
as plt
6 from dynamic_graph.sot_talos_balance.utils.run_test_utils
import (
23 print(
"Connect ZMP reference")
24 runCommandClient(
"plug(robot.dcm_control.zmpRef,robot.com_admittance_control.zmpDes)")
25 runCommandClient(
"robot.com_admittance_control.setState(comDes,[0.0,0.0,0.0])")
44 comDes_data = np.loadtxt(
48 comEst_data = np.loadtxt(
55 comRef_data = np.loadtxt(
56 "/tmp/dg_" +
evalCommandClient(
"robot.com_admittance_control.name") +
"-comRef.dat"
58 comSOT_data = np.loadtxt(
62 dcmDes_data = np.loadtxt(
65 dcmEst_data = np.loadtxt(
69 zmpDes_data = np.loadtxt(
72 zmpSOT_data = np.loadtxt(
75 zmpEst_data = np.loadtxt(
78 zmpRef_data = np.loadtxt(
85 plt.plot(comDes_data[:, 1],
"b--")
86 plt.plot(comEst_data[:, 1],
"b-")
87 plt.plot(comRef_data[:, 1],
"b:")
88 plt.plot(comSOT_data[:, 1],
"b-.")
89 plt.plot(comDes_data[:, 2],
"r--")
90 plt.plot(comEst_data[:, 2],
"r-")
91 plt.plot(comRef_data[:, 2],
"r:")
92 plt.plot(comSOT_data[:, 2],
"r-.")
93 plt.plot(comDes_data[:, 3],
"g--")
94 plt.plot(comEst_data[:, 3],
"g-")
95 plt.plot(comRef_data[:, 3],
"g:")
96 plt.plot(comSOT_data[:, 3],
"g-.")
116 plt.plot(dcmDes_data[:, 1],
"b--")
117 plt.plot(dcmEst_data[:, 1],
"b-")
118 plt.plot(dcmDes_data[:, 2],
"r--")
119 plt.plot(dcmEst_data[:, 2],
"r-")
121 plt.legend([
"Desired x",
"Estimated x",
"Desired y",
"Estimated y"])
124 plt.plot(zmpDes_data[:, 1],
"b--")
125 plt.plot(zmpSOT_data[:, 1],
"b-")
126 plt.plot(zmpRef_data[:, 1],
"b:")
127 plt.plot(zmpDes_data[:, 2],
"r--")
128 plt.plot(zmpSOT_data[:, 2],
"r-")
129 plt.plot(zmpRef_data[:, 2],
"r:")
131 plt.legend([
"Desired x",
"SOT x",
"Reference x",
"Desired y",
"SOT y",
"Reference y"])
133 zmpErrSOT = zmpSOT_data - zmpDes_data
136 plt.plot(zmpErrSOT[:, 1],
"b-")
137 plt.plot(zmpErrSOT[:, 2],
"r-")
138 plt.title(
"ZMP SOT error")
139 plt.legend([
"Error on x",
"Error on y"])
141 input(
"Wait before leaving the simulation")