1 """Test CoM admittance control without using the ZMP, with CoM computed as implemented 
    6 import matplotlib.pyplot 
as plt
 
    9 from dynamic_graph.sot_talos_balance.utils.gazebo_utils 
import apply_force
 
   10 from dynamic_graph.sot_talos_balance.utils.run_test_utils 
import (
 
   27 print(
"Connect CoM reference")
 
   29     "robot.com_admittance_control.setState(robot.dynamic.com.value,[0.0,0.0,0.0])" 
   34     "plug(robot.dcm_control.ddcomRef,robot.com_admittance_control.ddcomDes)" 
   39 print(
"Kick the robot...")
 
   48 dcm_data = np.loadtxt(
 
   52 zmpDes_data = np.loadtxt(
 
   56 comDes_data = np.loadtxt(
 
   57     "/tmp/dg_" + 
evalCommandClient(
"robot.com_admittance_control.name") + 
"-comRef.dat" 
   63 plt.plot(dcm_data[:, 1], 
"b-")
 
   64 plt.plot(dcm_data[:, 2], 
"r-")
 
   66 plt.legend([
"x", 
"y"])
 
   69 plt.plot(com_data[:, 1], 
"b-")
 
   70 plt.plot(comDes_data[:, 1], 
"b--")
 
   71 plt.plot(com_data[:, 2], 
"r-")
 
   72 plt.plot(comDes_data[:, 2], 
"r--")
 
   73 plt.plot(com_data[:, 3], 
"g-")
 
   74 plt.plot(comDes_data[:, 3], 
"g--")
 
   75 plt.title(
"COM real vs desired")
 
   76 plt.legend([
"Real x", 
"Desired x", 
"Real y", 
"Desired y", 
"Real z", 
"Desired z"])
 
   79 plt.plot(com_data[:, 1], 
"b-")
 
   80 plt.title(
"COM real x")
 
   82 plt.plot(comDes_data[:, 1], 
"b--")
 
   83 plt.title(
"COM desired x")
 
   86 plt.plot(com_data[:, 2], 
"r-")
 
   87 plt.title(
"COM real y")
 
   89 plt.plot(comDes_data[:, 2], 
"r--")
 
   90 plt.title(
"COM desired y")
 
   93 plt.plot(com_data[:, 3], 
"g-")
 
   94 plt.title(
"COM real z")
 
   96 plt.plot(comDes_data[:, 3], 
"g--")
 
   97 plt.title(
"COM desired z")
 
  100 plt.plot(zmp_data[:, 1], 
"b-")
 
  101 plt.plot(zmpDes_data[:, 1], 
"b--")
 
  102 plt.plot(zmp_data[:, 2], 
"r-")
 
  103 plt.plot(zmpDes_data[:, 2], 
"r--")
 
  104 plt.title(
"ZMP real vs desired")
 
  105 plt.legend([
"Real x", 
"Desired x", 
"Real y", 
"Desired y"])
 
  108 plt.plot(zmp_data[:, 1] - zmpDes_data[:, 1], 
"b-")
 
  109 plt.plot(zmp_data[:, 2] - zmpDes_data[:, 2], 
"r-")
 
  110 plt.title(
"ZMP error")
 
  111 plt.legend([
"Error on x", 
"Error on y"])
 
  113 input(
"Wait before leaving the simulation")
 
def apply_force(force, duration, body_name="talos::torso_2_link")
 
def evalCommandClient(code)
 
def run_test(appli, verbosity=1, interactive=True)