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

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

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

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

Classes
~~~~~~~

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

   * - :py:obj:`FrankaCubeStackTask <rofunc.learning.RofuncRL.tasks.isaacgymenv.franka_cube_stack.FrankaCubeStackTask>`
     -

Functions
~~~~~~~~~

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

   * - :py:obj:`axisangle2quat <rofunc.learning.RofuncRL.tasks.isaacgymenv.franka_cube_stack.axisangle2quat>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.franka_cube_stack.axisangle2quat
          :summary:
   * - :py:obj:`compute_franka_reward <rofunc.learning.RofuncRL.tasks.isaacgymenv.franka_cube_stack.compute_franka_reward>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.franka_cube_stack.compute_franka_reward
          :summary:

API
~~~

.. py:function:: axisangle2quat(vec: Tensor, eps: float = 1e-06) -> Tensor
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.franka_cube_stack.axisangle2quat

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.franka_cube_stack.axisangle2quat

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

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

   .. py:method:: create_sim()
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.franka_cube_stack.FrankaCubeStackTask.create_sim

   .. py:method:: init_data()
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.franka_cube_stack.FrankaCubeStackTask.init_data

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.franka_cube_stack.FrankaCubeStackTask.init_data

   .. py:method:: compute_reward(actions)
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.franka_cube_stack.FrankaCubeStackTask.compute_reward

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.franka_cube_stack.FrankaCubeStackTask.compute_reward

   .. py:method:: compute_observations()
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.franka_cube_stack.FrankaCubeStackTask.compute_observations

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.franka_cube_stack.FrankaCubeStackTask.compute_observations

   .. py:method:: reset_idx(env_ids)
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.franka_cube_stack.FrankaCubeStackTask.reset_idx

   .. py:method:: pre_physics_step(actions)
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.franka_cube_stack.FrankaCubeStackTask.pre_physics_step

   .. py:method:: post_physics_step()
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.franka_cube_stack.FrankaCubeStackTask.post_physics_step

.. py:function:: compute_franka_reward(reset_buf: Tensor, progress_buf: Tensor, actions: Tensor, states: Dict[str, Tensor], reward_settings: Dict[str, float], max_episode_length: float) -> Tuple[Tensor, Tensor]
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.franka_cube_stack.compute_franka_reward

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.franka_cube_stack.compute_franka_reward
