:py:mod:`rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi`
====================================================================

.. py:module:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi

.. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi
   :allowtitles:

Module Contents
---------------

Classes
~~~~~~~

.. list-table::
   :class: autosummary longtable
   :align: left

   * - :py:obj:`Humanoid_SMPLX <rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.Humanoid_SMPLX>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.Humanoid_SMPLX
          :summary:
   * - :py:obj:`PhysHOI_BallPlay <rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.PhysHOI_BallPlay>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.PhysHOI_BallPlay
          :summary:

Functions
~~~~~~~~~

.. list-table::
   :class: autosummary longtable
   :align: left

   * - :py:obj:`build_hoi_observations <rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.build_hoi_observations>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.build_hoi_observations
          :summary:
   * - :py:obj:`compute_obj_observations <rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.compute_obj_observations>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.compute_obj_observations
          :summary:
   * - :py:obj:`compute_humanoid_observations_max <rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.compute_humanoid_observations_max>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.compute_humanoid_observations_max
          :summary:
   * - :py:obj:`compute_humanoid_reward <rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.compute_humanoid_reward>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.compute_humanoid_reward
          :summary:
   * - :py:obj:`compute_humanoid_reset <rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.compute_humanoid_reset>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.compute_humanoid_reset
          :summary:

Data
~~~~

.. list-table::
   :class: autosummary longtable
   :align: left

   * - :py:obj:`PERTURB_OBJS <rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.PERTURB_OBJS>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.PERTURB_OBJS
          :summary:

API
~~~

.. py:data:: PERTURB_OBJS
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.PERTURB_OBJS
   :value: [['small', 60]]

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.PERTURB_OBJS

.. py:class:: Humanoid_SMPLX(cfg, sim_params, physics_engine, device_type, device_id, headless)
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.Humanoid_SMPLX

   Bases: :py:obj:`rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.base_task.BaseTask`

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.Humanoid_SMPLX

   .. rubric:: Initialization

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.Humanoid_SMPLX.__init__

   .. py:method:: get_obs_size()
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.Humanoid_SMPLX.get_obs_size

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.Humanoid_SMPLX.get_obs_size

   .. py:method:: get_action_size()
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.Humanoid_SMPLX.get_action_size

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.Humanoid_SMPLX.get_action_size

   .. py:method:: get_num_actors_per_env()
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.Humanoid_SMPLX.get_num_actors_per_env

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.Humanoid_SMPLX.get_num_actors_per_env

   .. py:method:: create_sim()
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.Humanoid_SMPLX.create_sim

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.Humanoid_SMPLX.create_sim

   .. py:method:: reset()
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.Humanoid_SMPLX.reset

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.Humanoid_SMPLX.reset

   .. py:method:: set_char_color(col, env_ids)
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.Humanoid_SMPLX.set_char_color

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.Humanoid_SMPLX.set_char_color

   .. py:method:: reset_idx(env_ids)
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.Humanoid_SMPLX.reset_idx

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.Humanoid_SMPLX.reset_idx

   .. py:method:: get_num_amp_obs()
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.Humanoid_SMPLX.get_num_amp_obs

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.Humanoid_SMPLX.get_num_amp_obs

   .. py:method:: pre_physics_step(actions)
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.Humanoid_SMPLX.pre_physics_step

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.Humanoid_SMPLX.pre_physics_step

   .. py:method:: post_physics_step()
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.Humanoid_SMPLX.post_physics_step

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.Humanoid_SMPLX.post_physics_step

   .. py:method:: render(sync_frame_time=False)
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.Humanoid_SMPLX.render

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.Humanoid_SMPLX.render

.. py:class:: PhysHOI_BallPlay(cfg, rl_device, sim_device, graphics_device_id, headless, virtual_screen_capture, force_render)
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.PhysHOI_BallPlay

   Bases: :py:obj:`rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.Humanoid_SMPLX`

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.PhysHOI_BallPlay

   .. rubric:: Initialization

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.PhysHOI_BallPlay.__init__

   .. py:class:: StateInit
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.PhysHOI_BallPlay.StateInit

      Bases: :py:obj:`enum.Enum`

      .. py:attribute:: Default
         :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.PhysHOI_BallPlay.StateInit.Default
         :value: 0

         .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.PhysHOI_BallPlay.StateInit.Default

      .. py:attribute:: Start
         :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.PhysHOI_BallPlay.StateInit.Start
         :value: 1

         .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.PhysHOI_BallPlay.StateInit.Start

      .. py:attribute:: Random
         :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.PhysHOI_BallPlay.StateInit.Random
         :value: 2

         .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.PhysHOI_BallPlay.StateInit.Random

      .. py:attribute:: Hybrid
         :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.PhysHOI_BallPlay.StateInit.Hybrid
         :value: 3

         .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.PhysHOI_BallPlay.StateInit.Hybrid

   .. py:method:: post_physics_step()
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.PhysHOI_BallPlay.post_physics_step

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.PhysHOI_BallPlay.post_physics_step

   .. py:method:: reset_idx(env_ids)
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.PhysHOI_BallPlay.reset_idx

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.PhysHOI_BallPlay.reset_idx

   .. py:method:: play_dataset_step(time)
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.PhysHOI_BallPlay.play_dataset_step

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.PhysHOI_BallPlay.play_dataset_step

   .. py:method:: get_dataset_step(time)
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.PhysHOI_BallPlay.get_dataset_step

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.PhysHOI_BallPlay.get_dataset_step

   .. py:method:: render(sync_frame_time=False, t=0)
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.PhysHOI_BallPlay.render

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.PhysHOI_BallPlay.render

.. py:function:: build_hoi_observations(root_pos, root_rot, root_vel, root_ang_vel, dof_pos, dof_vel, key_body_pos, local_root_obs, root_height_obs, dof_obs_size, target_states, dof_diffvel)
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.build_hoi_observations

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.build_hoi_observations

.. py:function:: compute_obj_observations(root_states: Tensor, tar_states: Tensor) -> Tensor
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.compute_obj_observations

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.compute_obj_observations

.. py:function:: compute_humanoid_observations_max(body_pos: Tensor, body_rot: Tensor, body_vel: Tensor, body_ang_vel: Tensor, local_root_obs: bool, root_height_obs: bool, contact_forces: Tensor, contact_body_ids: Tensor) -> Tensor
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.compute_humanoid_observations_max

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.compute_humanoid_observations_max

.. py:function:: compute_humanoid_reward(hoi_ref: Tensor, hoi_obs: Tensor, contact_buf: Tensor, tar_contact_forces: Tensor, len_keypos: Int, w: float) -> Tensor
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.compute_humanoid_reward

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.compute_humanoid_reward

.. py:function:: compute_humanoid_reset(reset_buf: Tensor, progress_buf: Tensor, contact_buf: Tensor, rigid_body_pos: Tensor, max_episode_length: float, enable_early_termination: bool, termination_heights: Tensor, hoi_ref: Tensor, hoi_obs: Tensor) -> Tuple[Tensor, Tensor]
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.compute_humanoid_reset

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.physhoi.physhoi.compute_humanoid_reset
