adam.parametric.model.parametric_factories.parametric_link
==========================================================

.. py:module:: adam.parametric.model.parametric_factories.parametric_link


Classes
-------

.. autoapisummary::

   adam.parametric.model.parametric_factories.parametric_link.Geometry
   adam.parametric.model.parametric_factories.parametric_link.Side
   adam.parametric.model.parametric_factories.parametric_link.ParametricLink


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

.. py:class:: Geometry(*args, **kwds)

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


   The different types of geometries that constitute the URDF


   .. py:attribute:: BOX
      :value: 1



   .. py:attribute:: CYLINDER
      :value: 2



   .. py:attribute:: SPHERE
      :value: 3



.. py:class:: Side(*args, **kwds)

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


   The possible sides of a box geometry


   .. py:attribute:: WIDTH
      :value: 1



   .. py:attribute:: HEIGHT
      :value: 2



   .. py:attribute:: DEPTH
      :value: 3



.. py:class:: ParametricLink(link: urdf_parser_py.urdf.Link, math: adam.core.spatial_math.SpatialMath, length_multiplier, densities)

   Bases: :py:obj:`adam.model.Link`


   Parametric Link class


   .. py:attribute:: math


   .. py:attribute:: name


   .. py:attribute:: length_multiplier


   .. py:attribute:: densities


   .. py:attribute:: original_visual


   .. py:attribute:: visuals


   .. py:attribute:: original_density


   .. py:attribute:: link_offset


   .. py:attribute:: mass


   .. py:attribute:: inertial


   .. py:method:: get_principal_length()

      Method computing the principal link length, i.e. the dimension in which the kinematic chain grows



   .. py:method:: get_principal_length_parametric()

      Method computing the principal link length parametric, i.e. the dimension in which the kinematic chain grows



   .. py:method:: compute_offset()

      :returns: link offset
      :rtype: npt.ArrayLike



   .. py:method:: compute_joint_offset(joint_i, parent_offset)

      :returns: the child joint offset
      :rtype: npt.ArrayLike



   .. py:method:: get_geometry(visual_obj)
      :staticmethod:


      :returns: the geometry of the link and the related urdf object
      :rtype: (Geometry, urdf geometry)



   .. py:method:: compute_volume(length_multiplier)

      :returns: the volume and the dimension parametric
      :rtype: (npt.ArrayLike, npt.ArrayLike)



   .. py:method:: compute_mass()

      Function that computes the mass starting from the densities, and the link volume
      :returns: the link mass
      :rtype: (npt.ArrayLike)



   .. py:method:: modify_origin()

      :returns: the link origin parametrized
      :rtype: (npt.ArrayLike)



   .. py:method:: compute_inertia_parametric()

      :returns: inertia (ixx, iyy and izz) with the formula that corresponds to the geometry
      :rtype: Inertia Parametric

      Formulas retrieved from https://en.wikipedia.org/wiki/List_of_moments_of_inertia



   .. py:method:: spatial_inertia() -> numpy.typing.ArrayLike

      :returns:

                the 6x6 inertia matrix expressed at the
                               origin of the link (with rotation)
      :rtype: npt.ArrayLike



   .. py:method:: homogeneous() -> numpy.typing.ArrayLike

      :returns: the homogeneous transform of the link
      :rtype: npt.ArrayLike



   .. py:method:: update_visuals()


