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

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

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

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

Classes
~~~~~~~

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

   * - :py:obj:`TrifingerDimensions <rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.TrifingerDimensions>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.TrifingerDimensions
          :summary:
   * - :py:obj:`CuboidalObject <rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.CuboidalObject>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.CuboidalObject
          :summary:
   * - :py:obj:`Trifinger <rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.Trifinger>`
     -

Functions
~~~~~~~~~

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

   * - :py:obj:`lgsk_kernel <rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.lgsk_kernel>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.lgsk_kernel
          :summary:
   * - :py:obj:`gen_keypoints <rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.gen_keypoints>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.gen_keypoints
          :summary:
   * - :py:obj:`compute_trifinger_reward <rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.compute_trifinger_reward>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.compute_trifinger_reward
          :summary:
   * - :py:obj:`compute_trifinger_observations_states <rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.compute_trifinger_observations_states>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.compute_trifinger_observations_states
          :summary:
   * - :py:obj:`random_xy <rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.random_xy>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.random_xy
          :summary:
   * - :py:obj:`random_z <rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.random_z>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.random_z
          :summary:
   * - :py:obj:`default_orientation <rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.default_orientation>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.default_orientation
          :summary:
   * - :py:obj:`random_orientation <rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.random_orientation>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.random_orientation
          :summary:
   * - :py:obj:`random_orientation_within_angle <rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.random_orientation_within_angle>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.random_orientation_within_angle
          :summary:
   * - :py:obj:`random_angular_vel <rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.random_angular_vel>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.random_angular_vel
          :summary:
   * - :py:obj:`random_yaw_orientation <rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.random_yaw_orientation>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.random_yaw_orientation
          :summary:

Data
~~~~

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

   * - :py:obj:`project_dir <rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.project_dir>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.project_dir
          :summary:
   * - :py:obj:`ARENA_RADIUS <rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.ARENA_RADIUS>`
     - .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.ARENA_RADIUS
          :summary:

API
~~~

.. py:data:: project_dir
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.project_dir
   :value: None

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.project_dir

.. py:class:: TrifingerDimensions
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.TrifingerDimensions

   Bases: :py:obj:`enum.Enum`

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.TrifingerDimensions

   .. py:attribute:: PoseDim
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.TrifingerDimensions.PoseDim
      :value: (7,)

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.TrifingerDimensions.PoseDim

   .. py:attribute:: VelocityDim
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.TrifingerDimensions.VelocityDim
      :value: 6

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.TrifingerDimensions.VelocityDim

   .. py:attribute:: StateDim
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.TrifingerDimensions.StateDim
      :value: 13

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.TrifingerDimensions.StateDim

   .. py:attribute:: WrenchDim
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.TrifingerDimensions.WrenchDim
      :value: 6

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.TrifingerDimensions.WrenchDim

   .. py:attribute:: NumFingers
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.TrifingerDimensions.NumFingers
      :value: 3

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.TrifingerDimensions.NumFingers

   .. py:attribute:: JointPositionDim
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.TrifingerDimensions.JointPositionDim
      :value: 9

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.TrifingerDimensions.JointPositionDim

   .. py:attribute:: JointVelocityDim
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.TrifingerDimensions.JointVelocityDim
      :value: 9

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.TrifingerDimensions.JointVelocityDim

   .. py:attribute:: JointTorqueDim
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.TrifingerDimensions.JointTorqueDim
      :value: 9

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.TrifingerDimensions.JointTorqueDim

   .. py:attribute:: GeneralizedCoordinatesDim
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.TrifingerDimensions.GeneralizedCoordinatesDim
      :value: None

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.TrifingerDimensions.GeneralizedCoordinatesDim

   .. py:attribute:: GeneralizedVelocityDim
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.TrifingerDimensions.GeneralizedVelocityDim
      :value: None

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.TrifingerDimensions.GeneralizedVelocityDim

   .. py:attribute:: ObjectPoseDim
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.TrifingerDimensions.ObjectPoseDim
      :value: 7

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.TrifingerDimensions.ObjectPoseDim

   .. py:attribute:: ObjectVelocityDim
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.TrifingerDimensions.ObjectVelocityDim
      :value: 6

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.TrifingerDimensions.ObjectVelocityDim

.. py:data:: ARENA_RADIUS
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.ARENA_RADIUS
   :value: 0.195

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.ARENA_RADIUS

.. py:class:: CuboidalObject(size: typing.Union[float, typing.Tuple[float, float, float]])
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.CuboidalObject

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.CuboidalObject

   .. rubric:: Initialization

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.CuboidalObject.__init__

   .. py:attribute:: radius_3d
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.CuboidalObject.radius_3d
      :type: float
      :value: None

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.CuboidalObject.radius_3d

   .. py:attribute:: max_com_distance_to_center
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.CuboidalObject.max_com_distance_to_center
      :type: float
      :value: None

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.CuboidalObject.max_com_distance_to_center

   .. py:attribute:: min_height
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.CuboidalObject.min_height
      :type: float
      :value: None

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.CuboidalObject.min_height

   .. py:attribute:: max_height
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.CuboidalObject.max_height
      :value: 0.1

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.CuboidalObject.max_height

   .. py:attribute:: NumKeypoints
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.CuboidalObject.NumKeypoints
      :value: 8

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.CuboidalObject.NumKeypoints

   .. py:attribute:: ObjectPositionDim
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.CuboidalObject.ObjectPositionDim
      :value: 3

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.CuboidalObject.ObjectPositionDim

   .. py:attribute:: KeypointsCoordsDim
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.CuboidalObject.KeypointsCoordsDim
      :value: None

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.CuboidalObject.KeypointsCoordsDim

   .. py:property:: size
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.CuboidalObject.size
      :type: typing.Tuple[float, float, float]

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.CuboidalObject.size

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

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

   .. py:attribute:: action_dim
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.Trifinger.action_dim
      :value: None

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.Trifinger.action_dim

   .. py:method:: create_sim()
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.Trifinger.create_sim

   .. py:method:: compute_reward(actions)
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.Trifinger.compute_reward

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.Trifinger.compute_reward

   .. py:method:: compute_observations()
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.Trifinger.compute_observations

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.Trifinger.compute_observations

   .. py:method:: reset_idx(env_ids)
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.Trifinger.reset_idx

   .. py:method:: pre_physics_step(actions)
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.Trifinger.pre_physics_step

   .. py:method:: post_physics_step()
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.Trifinger.post_physics_step

   .. py:property:: env_steps_count
      :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.Trifinger.env_steps_count
      :type: int

      .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.Trifinger.env_steps_count

.. py:function:: lgsk_kernel(x: rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.Tensor, scale: float = 50.0, eps: float = 2) -> rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.Tensor
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.lgsk_kernel

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.lgsk_kernel

.. py:function:: gen_keypoints(pose: rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.Tensor, num_keypoints: int = 8, size: typing.Tuple[float, float, float] = (0.065, 0.065, 0.065))
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.gen_keypoints

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.gen_keypoints

.. py:function:: compute_trifinger_reward(obs_buf: rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.Tensor, reset_buf: rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.Tensor, progress_buf: rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.Tensor, episode_length: int, dt: float, finger_move_penalty_weight: float, finger_reach_object_weight: float, object_dist_weight: float, object_rot_weight: float, env_steps_count: int, object_goal_poses_buf: rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.Tensor, object_state: rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.Tensor, last_object_state: rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.Tensor, fingertip_state: rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.Tensor, last_fingertip_state: rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.Tensor, use_keypoints: bool) -> typing.Tuple[rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.Tensor, rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.Tensor, typing.Dict[str, rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.Tensor]]
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.compute_trifinger_reward

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.compute_trifinger_reward

.. py:function:: compute_trifinger_observations_states(asymmetric_obs: bool, dof_position: rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.Tensor, dof_velocity: rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.Tensor, object_state: rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.Tensor, object_goal_poses: rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.Tensor, actions: rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.Tensor, fingertip_state: rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.Tensor, joint_torques: rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.Tensor, tip_wrenches: rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.Tensor)
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.compute_trifinger_observations_states

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.compute_trifinger_observations_states

.. py:function:: random_xy(num: int, max_com_distance_to_center: float, device: str) -> typing.Tuple[rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.Tensor, rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.Tensor]
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.random_xy

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.random_xy

.. py:function:: random_z(num: int, min_height: float, max_height: float, device: str) -> rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.Tensor
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.random_z

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.random_z

.. py:function:: default_orientation(num: int, device: str) -> rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.Tensor
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.default_orientation

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.default_orientation

.. py:function:: random_orientation(num: int, device: str) -> rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.Tensor
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.random_orientation

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.random_orientation

.. py:function:: random_orientation_within_angle(num: int, device: str, base: rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.Tensor, max_angle: float)
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.random_orientation_within_angle

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.random_orientation_within_angle

.. py:function:: random_angular_vel(num: int, device: str, magnitude_stdev: float) -> rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.Tensor
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.random_angular_vel

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.random_angular_vel

.. py:function:: random_yaw_orientation(num: int, device: str) -> rofunc.learning.RofuncRL.tasks.utils.torch_jit_utils.torch.Tensor
   :canonical: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.random_yaw_orientation

   .. autodoc2-docstring:: rofunc.learning.RofuncRL.tasks.isaacgymenv.trifinger.random_yaw_orientation
