Metadata-Version: 2.1
Name: ftprci
Version: 0.2.11
Summary: Cross platform fast time python robot interface controller
Author-email: Ekter <ektermoi1@proton.me>
Project-URL: Homepage, https://github.com/Ekter/ftprci
Project-URL: Issues, https://github.com/Ekter/ftprci/issues
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: Implementation :: MicroPython
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Requires-Dist: numpy
Requires-Dist: smbus
Requires-Dist: pretlog


# FTPRCI

Fast Time Python Robot Controller Interface

## Description

This library is a collection of classes and functions to help with the development
of robot controllers in Python. It is designed to be fast and easy to use, with a
focus on real-time control.
Works on CPython and MicroPython.


## Installation

To install the library, simply run:

    ```bash
    pip install ftprci
    ```

## Usage

The library is divided into several modules, each with a specific purpose:
* `interface`: Contains the `Interface` class, which is an abstract base class for
all interfaces.
* `actuators`: Contains the `Actuator` class, which is an abstract base class for
all actuators.
* `estimator`: Contains the `Estimator` class, which is an abstract base class for
all estimators.
* `controller`: Contains the `Controller` class, which is an abstract base class
for all controllers.
* `sensor`: Contains the `Sensor` class, which is an abstract base class for all
sensors.
* `logger`: Contains the `Logger` class, which is used for logging.
* `main`: Contains the `RunnerThread` class, which is used to run the controller
with precise timings.

Here is an example of how to use the library:

    ```python
    import ftprci as fci
    sensor = fci.LSM6()
    controller = fci.PIDController()
    estimator = fci.KalmanFilter()
    actuator = fci.DCMotor()
    th = fci.RunnerThread()
    th.callback | sensor.read | estimator.estimate | controller.steer | actuator.command
    th.run()
