Skip to content

AMPy is a baseline library for active matter data processing.

License

Notifications You must be signed in to change notification settings

swarmtronics/AMPy

Repository files navigation

Pipeline_image Pipeline_image

Python PyPI version Docs Status Coverage Status Linting Status PyPI - License

Website | Documentation | Paper | Video Tutorial (TBD) | Colab Notebook

AMPy is a baseline library built upon OpenCV and NumPy to easily process experimental video data for active matter and disordered systems. Our library turns the processing of experiment recordings into a cakewalk, considerably accelerating extraction of system dynamics.

Overview

The library is comprised of 4 components: processing.py, statistic2d.py, statistic3d.py, animation.py, and utils.py.

  • processing.py handles the initial processing of experimental video recordings and tracks the ArUco markers placed on the robots' upper surfaces.

  • statistics2d.py extracts various two-dimensional statistical measures from obtained kinematics (such as Cartesian displacement or order parameters).

  • statistics3d.py evaluates position, orientation, and velocity correlation maps for the entire platform.

  • animation.py generates .gif/.mp4 with different visual augmentations of an input video.

  • utils.py provides methods for reading/saving video data.

If you want a brief introduction into library capabilities, we prepared a Colab tutorial for that occasion.

Installation

AMPy is available at the Python Package Index:

$ pip install ampy

Preparing markers

For users' convenience, we provide the .ipynb notebook allowing to generate ArUco- and AprilTag-based markers for tracking of their own robots.

Contact us

If you have some questions about the code, you are welcome to open an issue, we will respond to that as soon as possible. Contributions towards extension of AMPy functionality are more than welcome!

License

Established code released as open-source software under the GPLv3 license.

Citation

@misc{
      dmitriev2023swarmobot,
      title={Swarmodroid 1.0: A Modular Bristle-Bot Platform for Robotic Active Matter}, 
      author={Alexey A. Dmitriev and Alina D. Rozenblit and Vadim A. Porvatov and
              Mikhail K. Buzakov and Anastasia A. Molodtsova and Daria V. Sennikova and
              Vyacheslav A. Smirnov and Oleg I. Burmistrov and Ekaterina M. Puhtina and
              Nikita A. Olekhno},
      year={2023},
      eprint={2305.13510},
      archivePrefix={arXiv},
      primaryClass={cond-mat.soft}
}