:py:mod:`rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base`
==========================================================================

.. py:module:: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base

.. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base
   :allowtitles:

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

Classes
~~~~~~~

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

   * - :py:obj:`HumanoidAMPBase <rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.HumanoidAMPBase>`
     -

Functions
~~~~~~~~~

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

   * - :py:obj:`dof_to_obs <rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.dof_to_obs>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.dof_to_obs
          :summary:
   * - :py:obj:`compute_humanoid_observations <rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.compute_humanoid_observations>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.compute_humanoid_observations
          :summary:
   * - :py:obj:`compute_humanoid_reward <rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.compute_humanoid_reward>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.compute_humanoid_reward
          :summary:
   * - :py:obj:`compute_humanoid_reset <rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.compute_humanoid_reset>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.compute_humanoid_reset
          :summary:

Data
~~~~

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

   * - :py:obj:`DOF_BODY_IDS <rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.DOF_BODY_IDS>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.DOF_BODY_IDS
          :summary:
   * - :py:obj:`DOF_OFFSETS <rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.DOF_OFFSETS>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.DOF_OFFSETS
          :summary:
   * - :py:obj:`NUM_OBS <rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.NUM_OBS>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.NUM_OBS
          :summary:
   * - :py:obj:`NUM_ACTIONS <rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.NUM_ACTIONS>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.NUM_ACTIONS
          :summary:
   * - :py:obj:`KEY_BODY_NAMES <rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.KEY_BODY_NAMES>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.KEY_BODY_NAMES
          :summary:

API
~~~

.. py:data:: DOF_BODY_IDS
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.DOF_BODY_IDS
   :value: [1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 13, 14]

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.DOF_BODY_IDS

.. py:data:: DOF_OFFSETS
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.DOF_OFFSETS
   :value: [0, 3, 6, 9, 10, 13, 14, 17, 18, 21, 24, 25, 28]

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.DOF_OFFSETS

.. py:data:: NUM_OBS
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.NUM_OBS
   :value: None

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.NUM_OBS

.. py:data:: NUM_ACTIONS
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.NUM_ACTIONS
   :value: 28

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.NUM_ACTIONS

.. py:data:: KEY_BODY_NAMES
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.KEY_BODY_NAMES
   :value: ['right_hand', 'left_hand', 'right_foot', 'left_foot']

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.KEY_BODY_NAMES

.. py:class:: HumanoidAMPBase(config, rl_device, sim_device, graphics_device_id, headless, virtual_screen_capture, force_render)
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.HumanoidAMPBase

   Bases: :py:obj:`rofunc.learning.RofuncRL.tasks.isaacgymenv.base.vec_task.VecTask`

   .. py:method:: get_obs_size()
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.HumanoidAMPBase.get_obs_size

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.HumanoidAMPBase.get_obs_size

   .. py:method:: get_action_size()
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.HumanoidAMPBase.get_action_size

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.HumanoidAMPBase.get_action_size

   .. py:method:: create_sim()
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.HumanoidAMPBase.create_sim

   .. py:method:: reset_idx(env_ids)
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.HumanoidAMPBase.reset_idx

   .. py:method:: set_char_color(col)
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.HumanoidAMPBase.set_char_color

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.HumanoidAMPBase.set_char_color

   .. py:method:: pre_physics_step(actions)
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.HumanoidAMPBase.pre_physics_step

   .. py:method:: post_physics_step()
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.HumanoidAMPBase.post_physics_step

   .. py:method:: render()
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.HumanoidAMPBase.render

.. py:function:: dof_to_obs(pose: Tensor) -> Tensor
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.dof_to_obs

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.dof_to_obs

.. py:function:: compute_humanoid_observations(root_states: Tensor, dof_pos: Tensor, dof_vel: Tensor, key_body_pos: Tensor, local_root_obs: bool) -> Tensor
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.compute_humanoid_observations

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.compute_humanoid_observations

.. py:function:: compute_humanoid_reward(obs_buf: Tensor) -> Tensor
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.compute_humanoid_reward

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.compute_humanoid_reward

.. py:function:: compute_humanoid_reset(reset_buf: Tensor, progress_buf: Tensor, contact_buf: Tensor, contact_body_ids: Tensor, rigid_body_pos: Tensor, max_episode_length: float, enable_early_termination: bool, termination_height: float) -> Tuple[Tensor, Tensor]
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.compute_humanoid_reset

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.amp.humanoid_amp_base.compute_humanoid_reset
