:py:mod:`rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors`
===============================================================================

.. py:module:: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors

.. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors
   :allowtitles:

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

Classes
~~~~~~~

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

   * - :py:obj:`ShadowHandScissorsTask <rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask
          :summary:

Functions
~~~~~~~~~

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

   * - :py:obj:`depth_image_to_point_cloud_GPU <rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.depth_image_to_point_cloud_GPU>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.depth_image_to_point_cloud_GPU
          :summary:
   * - :py:obj:`compute_hand_reward <rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.compute_hand_reward>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.compute_hand_reward
          :summary:
   * - :py:obj:`randomize_rotation <rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.randomize_rotation>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.randomize_rotation
          :summary:
   * - :py:obj:`randomize_rotation_pen <rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.randomize_rotation_pen>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.randomize_rotation_pen
          :summary:

API
~~~

.. py:class:: ShadowHandScissorsTask(cfg, rl_device, sim_device, graphics_device_id, headless, virtual_screen_capture, force_render, agent_index=[[[0, 1, 2, 3, 4, 5]], [[0, 1, 2, 3, 4, 5]]], is_multi_agent=False)
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask

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

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask

   .. rubric:: Initialization

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask.__init__

   .. py:method:: create_sim()
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask.create_sim

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask.create_sim

   .. py:method:: compute_reward(actions)
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask.compute_reward

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask.compute_reward

   .. py:method:: compute_observations()
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask.compute_observations

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask.compute_observations

   .. py:method:: compute_full_state(asymm_obs=False)
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask.compute_full_state

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask.compute_full_state

   .. py:method:: compute_point_cloud_observation(collect_demonstration=False)
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask.compute_point_cloud_observation

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask.compute_point_cloud_observation

   .. py:method:: reset_target_pose(env_ids, apply_reset=False)
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask.reset_target_pose

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask.reset_target_pose

   .. py:method:: reset_idx(env_ids, goal_env_ids)
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask.reset_idx

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask.reset_idx

   .. py:method:: pre_physics_step(actions)
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask.pre_physics_step

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask.pre_physics_step

   .. py:method:: post_physics_step()
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask.post_physics_step

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask.post_physics_step

   .. py:method:: add_debug_lines(env, pos, rot)
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask.add_debug_lines

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask.add_debug_lines

   .. py:method:: rand_row(tensor, dim_needed)
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask.rand_row

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask.rand_row

   .. py:method:: sample_points(points, sample_num=1000, sample_mathed='furthest')
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask.sample_points

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask.sample_points

   .. py:method:: camera_visulization(is_depth_image=False)
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask.camera_visulization

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.ShadowHandScissorsTask.camera_visulization

.. py:function:: depth_image_to_point_cloud_GPU(camera_tensor, camera_view_matrix_inv, camera_proj_matrix, u, v, width: float, height: float, depth_bar: float, device: rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.device)
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.depth_image_to_point_cloud_GPU

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.depth_image_to_point_cloud_GPU

.. py:function:: compute_hand_reward(rew_buf, reset_buf, reset_goal_buf, progress_buf, successes, consecutive_successes, max_episode_length: float, object_pos, object_rot, target_pos, target_rot, scissors_right_handle_pos, scissors_left_handle_pos, object_dof_pos, left_hand_pos, right_hand_pos, right_hand_ff_pos, right_hand_mf_pos, right_hand_rf_pos, right_hand_lf_pos, right_hand_th_pos, left_hand_ff_pos, left_hand_mf_pos, left_hand_rf_pos, left_hand_lf_pos, left_hand_th_pos, dist_reward_scale: float, rot_reward_scale: float, rot_eps: float, actions, action_penalty_scale: float, success_tolerance: float, reach_goal_bonus: float, fall_dist: float, fall_penalty: float, max_consecutive_successes: int, av_factor: float, ignore_z_rot: bool)
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.compute_hand_reward

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.compute_hand_reward

.. py:function:: randomize_rotation(rand0, rand1, x_unit_tensor, y_unit_tensor)
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.randomize_rotation

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.randomize_rotation

.. py:function:: randomize_rotation_pen(rand0, rand1, max_angle, x_unit_tensor, y_unit_tensor, z_unit_tensor)
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.randomize_rotation_pen

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.hands.shadow_hand_scissors.randomize_rotation_pen
