1 """Test CoM admittance control without using the ZMP, with CoM computed as implemented
5 import matplotlib.pyplot
as plt
8 from dynamic_graph.sot_talos_balance.utils.gazebo_utils
import apply_force
9 from dynamic_graph.sot_talos_balance.utils.run_test_utils
import (
26 print(
"Connect CoM reference")
28 "robot.com_admittance_control.setState(robot.dynamic.com.value,[0.0,0.0,0.0])"
33 "plug(robot.dcm_control.ddcomRef,robot.com_admittance_control.ddcomDes)"
38 print(
"Kick the robot...")
47 dcm_data = np.loadtxt(
51 zmpDes_data = np.loadtxt(
55 comDes_data = np.loadtxt(
56 "/tmp/dg_" +
evalCommandClient(
"robot.com_admittance_control.name") +
"-comRef.dat"
62 plt.plot(dcm_data[:, 1],
"b-")
63 plt.plot(dcm_data[:, 2],
"r-")
65 plt.legend([
"x",
"y"])
68 plt.plot(com_data[:, 1],
"b-")
69 plt.plot(comDes_data[:, 1],
"b--")
70 plt.plot(com_data[:, 2],
"r-")
71 plt.plot(comDes_data[:, 2],
"r--")
72 plt.plot(com_data[:, 3],
"g-")
73 plt.plot(comDes_data[:, 3],
"g--")
74 plt.title(
"COM real vs desired")
75 plt.legend([
"Real x",
"Desired x",
"Real y",
"Desired y",
"Real z",
"Desired z"])
78 plt.plot(com_data[:, 1],
"b-")
79 plt.title(
"COM real x")
81 plt.plot(comDes_data[:, 1],
"b--")
82 plt.title(
"COM desired x")
85 plt.plot(com_data[:, 2],
"r-")
86 plt.title(
"COM real y")
88 plt.plot(comDes_data[:, 2],
"r--")
89 plt.title(
"COM desired y")
92 plt.plot(com_data[:, 3],
"g-")
93 plt.title(
"COM real z")
95 plt.plot(comDes_data[:, 3],
"g--")
96 plt.title(
"COM desired z")
99 plt.plot(zmp_data[:, 1],
"b-")
100 plt.plot(zmpDes_data[:, 1],
"b--")
101 plt.plot(zmp_data[:, 2],
"r-")
102 plt.plot(zmpDes_data[:, 2],
"r--")
103 plt.title(
"ZMP real vs desired")
104 plt.legend([
"Real x",
"Desired x",
"Real y",
"Desired y"])
107 plt.plot(zmp_data[:, 1] - zmpDes_data[:, 1],
"b-")
108 plt.plot(zmp_data[:, 2] - zmpDes_data[:, 2],
"r-")
109 plt.title(
"ZMP error")
110 plt.legend([
"Error on x",
"Error on y"])
112 input(
"Wait before leaving the simulation")