:py:mod:`leads_emulation`
=========================

.. py:module:: leads_emulation

.. autodoc2-docstring:: leads_emulation
   :allowtitles:

Submodules
----------

.. toctree::
   :titlesonly:
   :maxdepth: 1

   leads_emulation.replay

Package Contents
----------------

Classes
~~~~~~~

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

   * - :py:obj:`_EmulatedController <leads_emulation._EmulatedController>`
     - .. autodoc2-docstring:: leads_emulation._EmulatedController
          :summary:
   * - :py:obj:`RandomController <leads_emulation.RandomController>`
     - .. autodoc2-docstring:: leads_emulation.RandomController
          :summary:
   * - :py:obj:`SinController <leads_emulation.SinController>`
     - .. autodoc2-docstring:: leads_emulation.SinController
          :summary:

API
~~~

.. py:class:: _EmulatedController(minimum: int = 30, maximum: int = 40, skid_possibility: float = 0.1)
   :canonical: leads_emulation._EmulatedController

   Bases: :py:obj:`leads.Controller`

   .. autodoc2-docstring:: leads_emulation._EmulatedController

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads_emulation._EmulatedController.__init__

   .. py:method:: generate_rear_wheel_speed(front_wheel_speed: float) -> float
      :canonical: leads_emulation._EmulatedController.generate_rear_wheel_speed

      .. autodoc2-docstring:: leads_emulation._EmulatedController.generate_rear_wheel_speed

   .. py:method:: generate_forward_acceleration(speed: float) -> float
      :canonical: leads_emulation._EmulatedController.generate_forward_acceleration

      .. autodoc2-docstring:: leads_emulation._EmulatedController.generate_forward_acceleration

   .. py:method:: generate_throttle(forward_acceleration: float) -> float
      :canonical: leads_emulation._EmulatedController.generate_throttle

      .. autodoc2-docstring:: leads_emulation._EmulatedController.generate_throttle

   .. py:method:: generate_brake(forward_acceleration: float) -> float
      :canonical: leads_emulation._EmulatedController.generate_brake

      .. autodoc2-docstring:: leads_emulation._EmulatedController.generate_brake

.. py:class:: RandomController(minimum: int = 30, maximum: int = 40, skid_possibility: float = 0.1)
   :canonical: leads_emulation.RandomController

   Bases: :py:obj:`leads_emulation._EmulatedController`

   .. autodoc2-docstring:: leads_emulation.RandomController

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads_emulation.RandomController.__init__

   .. py:method:: read() -> leads.DataContainer
      :canonical: leads_emulation.RandomController.read

      .. autodoc2-docstring:: leads_emulation.RandomController.read

.. py:class:: SinController(minimum: int = 30, maximum: int = 40, skid_possibility: float = 0.1, acceleration: float = 0.01)
   :canonical: leads_emulation.SinController

   Bases: :py:obj:`leads_emulation._EmulatedController`

   .. autodoc2-docstring:: leads_emulation.SinController

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads_emulation.SinController.__init__

   .. py:method:: read() -> leads.DataContainer
      :canonical: leads_emulation.SinController.read

      .. autodoc2-docstring:: leads_emulation.SinController.read
