:py:mod:`leads.plugin.abs`
==========================

.. py:module:: leads.plugin.abs

.. autodoc2-docstring:: leads.plugin.abs
   :allowtitles:

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

Classes
~~~~~~~

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

   * - :py:obj:`ABS <leads.plugin.abs.ABS>`
     - .. autodoc2-docstring:: leads.plugin.abs.ABS
          :summary:

Functions
~~~~~~~~~

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

   * - :py:obj:`do_abs <leads.plugin.abs.do_abs>`
     - .. autodoc2-docstring:: leads.plugin.abs.do_abs
          :summary:

Data
~~~~

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

   * - :py:obj:`_CALIBRATIONS <leads.plugin.abs._CALIBRATIONS>`
     - .. autodoc2-docstring:: leads.plugin.abs._CALIBRATIONS
          :summary:

API
~~~

.. py:data:: _CALIBRATIONS
   :canonical: leads.plugin.abs._CALIBRATIONS
   :type: dict[leads.constant.ESCMode, tuple[float | None, float | None]]
   :value: None

   .. autodoc2-docstring:: leads.plugin.abs._CALIBRATIONS

.. py:function:: do_abs(context: leads.context.Context, front_wheel_speed: float, rear_wheel_speed: float) -> leads.event.InterventionEvent
   :canonical: leads.plugin.abs.do_abs

   .. autodoc2-docstring:: leads.plugin.abs.do_abs

.. py:class:: ABS()
   :canonical: leads.plugin.abs.ABS

   Bases: :py:obj:`leads.plugin.plugin.ESCPlugin`

   .. autodoc2-docstring:: leads.plugin.abs.ABS

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.plugin.abs.ABS.__init__

   .. py:method:: pre_update(context: leads.context.Context, kwargs: dict[str, typing.Any]) -> None
      :canonical: leads.plugin.abs.ABS.pre_update
