5 from __future__
import print_function, division
10 import numpy.linalg
as npl
12 from .
import pinocchio_pywrap_default
as pin
13 from .pinocchio_pywrap_default.rpy
import matrixToRpy, rpyToMatrix, rotate
18 for i
in range(len(L)):
25 return tuple(M.tolist())
27 return tuple(M.tolist()[0])
29 return tuple(M.T.tolist()[0])
43 return np.random.rand(n)
if isinstance(n, int)
else np.random.rand(n[0], n[1])
47 if "np" in a.__class__.__dict__:
49 if "np" in b.__class__.__dict__:
51 if isinstance(a, (np.ndarray, list))
and isinstance(b, (np.ndarray, list)):
52 a = np.squeeze(np.array(a))
53 b = np.squeeze(np.array(b))
54 return np.allclose(a, b, epsilon)
55 return abs(a - b) < epsilon
58 def mprint(M, name="ans", eps=1e-15):
60 Matlab-style pretty matrix print.
62 if isinstance(M, pin.SE3):
65 M = np.expand_dims(M, axis=0)
71 Mmin =
lambda M: M.min()
72 Mmax =
lambda M: M.max()
73 Mm = Mmin(abs(M[np.nonzero(M)]))
74 MM = Mmax(abs(M[np.nonzero(M)]))
76 fmt =
"% 10.3e" if Mm < 1e-5
or MM > 1e6
or MM / Mm > 1e3
else "% 1.5f"
78 for i
in range((ncol - 1) // NC + 1):
81 cmax = ncol
if ncol < cmax
else cmax
82 print(
"Columns %s through %s" % (cmin, cmax - 1))
84 for r
in range(M.shape[0]):
86 for c
in range(cmin, cmax):
87 if abs(M[r, c]) > eps:
88 sys.stdout.write(fmt % M[r, c] +
" ")
90 sys.stdout.write(
" 0" +
" " * 9)
96 vector = pin.StdVec_StdString()
97 vector.extend(item
for item
in items)
114 "fromListToVectorOfString",