rofunc.learning.RofuncML.utils
#
1. Module Contents#
1.1. Functions#
Return quaternion from rotation matrix. |
|
Finite difference transform matrix |
|
|
|
Given a linear system with white noise, as in LQG, |
|
Given a linear system |
|
|
|
|
|
Return homogeneous rotation matrix from quaternion. |
|
1.2. API#
- rofunc.learning.RofuncML.utils.quaternion_from_homo_matrix(matrix, isprecise=False)[source]#
Return quaternion from rotation matrix.
If isprecise is True, the input matrix is assumed to be a precise rotation matrix and a faster algorithm is used.
- rofunc.learning.RofuncML.utils.fd_transform(d, xi_dim, nb_past, dt=0.1)[source]#
Finite difference transform matrix
- Parameters:
d –
xi_dim –
nb_past –
dt –
- Returns:
- rofunc.learning.RofuncML.utils.multi_timestep_fd_q(rs, xi_dim, dt)[source]#
- Parameters:
rs – list of std deviations of derivatives
xi_dim –
nb_past –
dt –
- Returns:
- rofunc.learning.RofuncML.utils.lifted_noise_matrix(A=None, B=None, nb_dim=3, dt=0.01, horizon=50)[source]#
Given a linear system with white noise, as in LQG,
\[\xi_{t+1} = \mathbf{A} (\xi_t + w_i) + \mathbf{B} u_t + v_i\]returns the lifted form for noise addition, s_v, s_w,
\[\mathbf{\xi} = \mathbf{S}_{\xi} \xi_0 + \mathbf{S}_u \mathbf{u} + \mathbf{S}_v + \mathbf{S}_w\]- Returns:
s_u
- rofunc.learning.RofuncML.utils.lifted_transfer_matrix(A=None, B=None, nb_dim=3, dt=0.01, horizon=50, sparse=False)[source]#
Given a linear system
\[\xi_{t+1} = \mathbf{A} \xi_t + \mathbf{B} u_t\]returns the lifted form for T timesteps
\[\mathbf{\xi} = \mathbf{S}_{\xi} \xi_0 + \mathbf{S}_u \mathbf{u}\]
- rofunc.learning.RofuncML.utils.create_relative_time(q, start=-1.0)[source]#
- Parameters:
q – [list of int] List of state indicator. ex: [0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 0, 0, 0, 1, 1, …]
- Return time:
[np.array(nb_timestep,)] Phase for each of the timestep
- rofunc.learning.RofuncML.utils.align_trajectories(data, additional_data=[], hsmm=True, nb_states=5)[source]#
- Parameters:
data – [list of np.array([nb_timestep, M, N, …])]
- Returns:
- rofunc.learning.RofuncML.utils.feature_to_slice(nb_dim=2, nb_frames=None, nb_attractor=2, features=None)[source]#
- rofunc.learning.RofuncML.utils.plot_model_time(model, demos, figsize=(10, 2), dim_idx=[1], demo_idx=0)[source]#
- rofunc.learning.RofuncML.utils.homo_matrix_from_quaternion(quaternion)[source]#
Return homogeneous rotation matrix from quaternion.
>>> M = homo_matrix_from_quaternion([0.99810947, 0.06146124, 0, 0]) >>> np.allclose(M, rotation_matrix(0.123, [1, 0, 0])) True >>> M = homo_matrix_from_quaternion([1, 0, 0, 0]) >>> np.allclose(M, np.identity(4)) True >>> M = homo_matrix_from_quaternion([0, 1, 0, 0]) >>> np.allclose(M, np.diag([1, -1, -1, 1])) True
- rofunc.learning.RofuncML.utils.repro_plot(model, demos, save=False, tp_list=[], figsize=(3.5, 5))[source]#
- rofunc.learning.RofuncML.utils.plot_model(model, demos, figsize=(8, 3.5), skill_name='temp', save=False)[source]#