
.. DO NOT EDIT.
.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY.
.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE:
.. "examples/learning_ml/example_tpgmmbi.py"
.. LINE NUMBERS ARE GIVEN BELOW.

.. only:: html

    .. note::
        :class: sphx-glr-download-link-note

        :ref:`Go to the end <sphx_glr_download_examples_learning_ml_example_tpgmmbi.py>`
        to download the full example code

.. rst-class:: sphx-glr-example-title

.. _sphx_glr_examples_learning_ml_example_tpgmmbi.py:


TP-GMM for bimanual setting
=================

This example shows how to use the TP-GMM in bimanual setting (without coordination).

.. GENERATED FROM PYTHON SOURCE LINES 7-39

.. code-block:: default

    import numpy as np
    import rofunc as rf

    left_raw_demo = np.load('../data/LFD_ML/LeftHand.npy')
    right_raw_demo = np.load('../data/LFD_ML/RightHand.npy')
    demos_left_x = [left_raw_demo[500:635, :], left_raw_demo[635:770, :], left_raw_demo[770:905, :]]
    demos_right_x = [right_raw_demo[500:635, :], right_raw_demo[635:770, :], right_raw_demo[770:905, :]]

    # --- TP-GMMBi ---
    # Define the task parameters
    start_xdx_l = [demos_left_x[i][0] for i in range(len(demos_left_x))]  # TODO: change to xdx
    end_xdx_l = [demos_left_x[i][-1] for i in range(len(demos_left_x))]
    start_xdx_r = [demos_right_x[i][0] for i in range(len(demos_right_x))]
    end_xdx_r = [demos_right_x[i][-1] for i in range(len(demos_right_x))]
    task_params = {'left': {'frame_origins': [start_xdx_l, end_xdx_l], 'frame_names': ['start', 'end']},
                   'right': {'frame_origins': [start_xdx_r, end_xdx_r], 'frame_names': ['start', 'end']}}
    # Fit the model
    Repr = rf.ml.TPGMMBi(demos_left_x, demos_right_x, task_params, plot=True)
    model_l, model_r = Repr.fit()

    # Reproductions for the same situations
    traj_l, traj_r, _, _ = Repr.reproduce([model_l, model_r], show_demo_idx=2)

    # Reproductions for new situations
    ref_demo_idx = 2
    start_xdx_l = [Repr.repr_l.demos_xdx[ref_demo_idx][0]]
    end_xdx_l = [Repr.repr_l.demos_xdx[ref_demo_idx][0]]
    start_xdx_r = [Repr.repr_r.demos_xdx[ref_demo_idx][0]]
    end_xdx_r = [Repr.repr_r.demos_xdx[ref_demo_idx][0]]
    Repr.task_params = {'left': {'frame_origins': [start_xdx_l, end_xdx_l], 'frame_names': ['start', 'end']},
                        'right': {'frame_origins': [start_xdx_r, end_xdx_r], 'frame_names': ['start', 'end']}}
    traj_l, traj_r, _, _ = Repr.generate([model_l, model_r], ref_demo_idx)


.. rst-class:: sphx-glr-timing

   **Total running time of the script:** (0 minutes 0.000 seconds)


.. _sphx_glr_download_examples_learning_ml_example_tpgmmbi.py:

.. only:: html

  .. container:: sphx-glr-footer sphx-glr-footer-example




    .. container:: sphx-glr-download sphx-glr-download-python

      :download:`Download Python source code: example_tpgmmbi.py <example_tpgmmbi.py>`

    .. container:: sphx-glr-download sphx-glr-download-jupyter

      :download:`Download Jupyter notebook: example_tpgmmbi.ipynb <example_tpgmmbi.ipynb>`


.. only:: html

 .. rst-class:: sphx-glr-signature

    `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.github.io>`_
