:py:mod:`rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion`
==========================================================================

.. py:module:: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion

.. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion
   :allowtitles:

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

Classes
~~~~~~~

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

   * - :py:obj:`LocomotionTask <rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.LocomotionTask>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.LocomotionTask
          :summary:

Functions
~~~~~~~~~

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

   * - :py:obj:`normalize_angle <rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.normalize_angle>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.normalize_angle
          :summary:
   * - :py:obj:`get_observations <rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.get_observations>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.get_observations
          :summary:
   * - :py:obj:`is_done <rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.is_done>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.is_done
          :summary:
   * - :py:obj:`calculate_metrics <rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.calculate_metrics>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.calculate_metrics
          :summary:

API
~~~

.. py:class:: LocomotionTask(name, env, offset=None)
   :canonical: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.LocomotionTask

   Bases: :py:obj:`rofunc.learning.RofuncRL.tasks.omniisaacgym.base.rl_task.RLTask`

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.LocomotionTask

   .. rubric:: Initialization

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.LocomotionTask.__init__

   .. py:method:: set_up_scene(scene) -> None
      :canonical: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.LocomotionTask.set_up_scene
      :abstractmethod:

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.LocomotionTask.set_up_scene

   .. py:method:: get_robot()
      :canonical: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.LocomotionTask.get_robot
      :abstractmethod:

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.LocomotionTask.get_robot

   .. py:method:: get_observations() -> dict
      :canonical: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.LocomotionTask.get_observations

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.LocomotionTask.get_observations

   .. py:method:: pre_physics_step(actions) -> None
      :canonical: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.LocomotionTask.pre_physics_step

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.LocomotionTask.pre_physics_step

   .. py:method:: reset_idx(env_ids)
      :canonical: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.LocomotionTask.reset_idx

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.LocomotionTask.reset_idx

   .. py:method:: post_reset()
      :canonical: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.LocomotionTask.post_reset

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.LocomotionTask.post_reset

   .. py:method:: calculate_metrics() -> None
      :canonical: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.LocomotionTask.calculate_metrics

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.LocomotionTask.calculate_metrics

   .. py:method:: is_done() -> None
      :canonical: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.LocomotionTask.is_done

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.LocomotionTask.is_done

.. py:function:: normalize_angle(x)
   :canonical: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.normalize_angle

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.normalize_angle

.. py:function:: get_observations(torso_position: Tensor, torso_rotation: Tensor, velocity: Tensor, ang_velocity: Tensor, dof_pos: Tensor, dof_vel: Tensor, targets: Tensor, potentials: Tensor, dt: float, inv_start_rot: Tensor, basis_vec0: Tensor, basis_vec1: Tensor, dof_limits_lower: Tensor, dof_limits_upper: Tensor, dof_vel_scale: float, sensor_force_torques: Tensor, num_envs: int, contact_force_scale: float, actions: Tensor, angular_velocity_scale: float) -> Tuple[Tensor, Tensor, Tensor, Tensor, Tensor]
   :canonical: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.get_observations

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.get_observations

.. py:function:: is_done(obs_buf: Tensor, termination_height: float, reset_buf: Tensor, progress_buf: Tensor, max_episode_length: float) -> Tensor
   :canonical: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.is_done

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.is_done

.. py:function:: calculate_metrics(obs_buf: Tensor, actions: Tensor, up_weight: float, heading_weight: float, potentials: Tensor, prev_potentials: Tensor, actions_cost_scale: float, energy_cost_scale: float, termination_height: float, death_cost: float, num_dof: int, dof_at_limit_cost: Tensor, alive_reward_scale: float, motor_effort_ratio: Tensor) -> Tensor
   :canonical: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.calculate_metrics

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.omniisaacgymenv.shared.locomotion.calculate_metrics
