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

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

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

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

Classes
~~~~~~~

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

   * - :py:obj:`HumanoidTask <rofunc.learning.RofuncRL.tasks.isaacgymenv.humanoid.HumanoidTask>`
     -

Functions
~~~~~~~~~

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

   * - :py:obj:`compute_humanoid_reward <rofunc.learning.RofuncRL.tasks.isaacgymenv.humanoid.compute_humanoid_reward>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.humanoid.compute_humanoid_reward
          :summary:
   * - :py:obj:`compute_humanoid_observations <rofunc.learning.RofuncRL.tasks.isaacgymenv.humanoid.compute_humanoid_observations>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.humanoid.compute_humanoid_observations
          :summary:

API
~~~

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

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

   .. py:method:: create_sim()
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.humanoid.HumanoidTask.create_sim

   .. py:method:: compute_reward(actions)
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.humanoid.HumanoidTask.compute_reward

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.humanoid.HumanoidTask.compute_reward

   .. py:method:: compute_observations()
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.humanoid.HumanoidTask.compute_observations

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.humanoid.HumanoidTask.compute_observations

   .. py:method:: reset_idx(env_ids)
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.humanoid.HumanoidTask.reset_idx

   .. py:method:: pre_physics_step(actions)
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.humanoid.HumanoidTask.pre_physics_step

   .. py:method:: post_physics_step()
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.humanoid.HumanoidTask.post_physics_step

.. py:function:: compute_humanoid_reward(obs_buf: Tensor, reset_buf: Tensor, progress_buf: Tensor, actions: Tensor, up_weight: float, heading_weight: float, potentials: Tensor, prev_potentials: Tensor, actions_cost_scale: float, energy_cost_scale: float, joints_at_limit_cost_scale: float, max_motor_effort: float, motor_efforts: Tensor, termination_height: float, death_cost: float, max_episode_length: float) -> Tuple[Tensor, Tensor]
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.humanoid.compute_humanoid_reward

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

.. py:function:: compute_humanoid_observations(obs_buf: Tensor, root_states: Tensor, targets: Tensor, potentials: Tensor, inv_start_rot: Tensor, dof_pos: Tensor, dof_vel: Tensor, dof_force: Tensor, dof_limits_lower: Tensor, dof_limits_upper: Tensor, dof_vel_scale: float, sensor_force_torques: Tensor, actions: Tensor, dt: float, contact_force_scale: float, angular_velocity_scale: float, basis_vec0: Tensor, basis_vec1: Tensor) -> Tuple[Tensor, Tensor, Tensor, Tensor, Tensor]
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.humanoid.compute_humanoid_observations

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.humanoid.compute_humanoid_observations
