Catalog PyPI
Back to packageRELEASE DETAILS

0.2.1

PyPI

adaptive-oscillator

Adaptive oscillator for gait phase identification.

Published16 Jan 2026
Direct dependencies12
Transitive dependenciesNot calculated

README

Version 0.2.1 documentation

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

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 12

Native requirements
12 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
numpy
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "<3.13,>=3.11",
  "evaluation": "NOT_EVALUATED"
}
numpy<3.0.0,>=2.2.3runtime
pytest
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "<3.13,>=3.11",
  "evaluation": "NOT_EVALUATED"
}
pytest<9.0.0,>=8.3.5runtime
pytest-cov
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "<3.13,>=3.11",
  "evaluation": "NOT_EVALUATED"
}
pytest-cov<7.0.0,>=6.0.0runtime
loguru
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "<3.13,>=3.11",
  "evaluation": "NOT_EVALUATED"
}
loguru<0.8.0,>=0.7.3runtime
pre-commit
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "<3.13,>=3.11",
  "evaluation": "NOT_EVALUATED"
}
pre-commit<5.0.0,>=4.1.0runtime
poetry-core
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "<3.13,>=3.11",
  "evaluation": "NOT_EVALUATED"
}
poetry-core<3.0.0,>=2.1.2runtime
pandas
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "<3.13,>=3.11",
  "evaluation": "NOT_EVALUATED"
}
pandas<3.0.0,>=2.3.0runtime
matplotlib
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "<3.13,>=3.11",
  "evaluation": "NOT_EVALUATED"
}
matplotlib<4.0.0,>=3.10.3runtime
scipy
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "<3.13,>=3.11",
  "evaluation": "NOT_EVALUATED"
}
scipy<2.0.0,>=1.15.3runtime
plotly
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "<3.13,>=3.11",
  "evaluation": "NOT_EVALUATED"
}
plotly<7.0.0,>=6.2.0runtime
dash
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "<3.13,>=3.11",
  "evaluation": "NOT_EVALUATED"
}
dash<4.0.0,>=3.1.1runtime
py-imu
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "<3.13,>=3.11",
  "evaluation": "NOT_EVALUATED"
}
py-imu<0.2.0,>=0.1.0runtime

Distribution files

2 collected
adaptive_oscillator-0.2.1-py3-none-any.whl

bdist_wheel · 22.08 KB · Python py3

Source file
adaptive_oscillator-0.2.1.tar.gz

sdist · 18.78 KB · Python source

Source file

Repository

PENDING
tum-aries-lab/adaptive-oscillators

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 19:07 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:55f66e3ba7bd7d1e66a5c8ea3cbc33ee587796e7a2c6a6f5f2774c0501a496c2

Other collected versions

View all collected versions →