Skip to main content

Adaptive Oscillator

Coverage Status Docker Image CI

AOs can be described as a mathematical tool able to synchronize with a rhythmic and periodic signal by continuously estimating its fundamental features (i.e. frequency, amplitude, phase, and offset). For their properties, AOs found applications in gait pattern estimation strategies, where they are used to mimic the dynamics of the neuromechanical oscillators in charge of the rhythmical human locomotion. In addition, as gait periodicity can be captured by sensors recording joint kinematics, their application does not require a complex sensory network.

Install

To install the library run: pip install adaptive-oscillator

Development

  1. Install Poetry
  2. make init to create the virtual environment and install dependencies
  3. make format to format the code and check for errors
  4. make test to run the test suite
  5. make clean to delete the temporary files and directories
  6. poetry publish --build to build and publish to https://pypi.org/project/adaptive-oscillator

Usage

"""Basic usage for the adaptive oscillator."""

def main() -> None:
    """Run a simple demonstration."""
    # Initialize system
    controller = AOController(show_plots=True)

    while True:
        t, x_axis_angle, x_axis_vel = read_from_sensor()
        th = np.deg2rad(x_axis_angle)
        dth = np.deg2rad(x_axis_vel)
        controller.step(t=t, x=th, x_dot=dth)

    controller.plot_results()

if __name__ == "__main__":
    main()

Results

The plot below shows the results being plotted in real time.

Repo Structure

The files and folders below are used for development purposes. This repo tree can be updated with make tree.

├── docs
│   ├── adaptive oscillators.pdf
│   └── results.png
├── src
│   └── adaptive_oscillator
│       ├── log_files
│       │   ├── __init__.py
│       │   ├── main.py
│       │   └── parser.py
│       ├── utils
│       │   ├── __init__.py
│       │   ├── log_utils.py
│       │   ├── plot_utils.py
│       │   └── time_utils.py
│       ├── __init__.py
│       ├── __main__.py
│       ├── base_classes.py
│       ├── controller.py
│       ├── definitions.py
│       └── oscillator.py
├── tests
│   ├── __init__.py
│   ├── adaptive_oscillator_test.py
│   ├── base_classes_test.py
│   ├── conftest.py
│   ├── controller_test.py
│   ├── parser_utils_test.py
│   ├── plot_utils_test.py
│   ├── time_utils_test.py
│   └── utils_for_test.py
├── .gitignore
├── .pre-commit-config.yaml
├── CONTRIBUTING.md
├── LICENSE
├── Makefile
├── README.md
├── poetry.lock
├── pyproject.toml
└── repo_tree.py

Metadata

Release files for adaptive-oscillator 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for adaptive-oscillator 0.2.1
File Size Uploaded
adaptive_oscillator-0.2.1.tar.gz 19.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for adaptive-oscillator 0.2.1
File Interpreter ABI Platform
adaptive_oscillator-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 41.8 kB

Release files / adaptive_oscillator-0.2.1.tar.gz

Download URL adaptive_oscillator-0.2.1.tar.gz
Size 19.2 kB
Tags Source
SHA-256 checksum
How to use checksums
f4503e171ce74bcd45d513191425d2404a72eb05bfeccc8ba8c9947f94981ad5
BLAKE2b-256 checksum
How to use checksums
cd92426ae138ce7d3c31c00e9613d34de389399b929f3d207d7caa98a4738e0e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.2.1 CPython/3.14.2 Darwin/25.2.0

Release files / adaptive_oscillator-0.2.1-py3-none-any.whl

Download URL adaptive_oscillator-0.2.1-py3-none-any.whl
Size 22.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4c5f13ce4eebb670c5ed17da8c1ea4ab2fca5d8821214ea483a1e1e79a01f2d0
BLAKE2b-256 checksum
How to use checksums
1d779b8a61fa0227deb3076b996f3c3f551e94b925e721eb1fe0255367972a08
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.2.1 CPython/3.14.2 Darwin/25.2.0
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page