/pyaer

Low-level Python APIs for Accessing Neuromorphic Devices.

Primary LanguagePythonMIT LicenseMIT

PyAER


GitHub release PyPI - Version build license DOI

Linux macOS AMD64 ARM

DVS128 eDVS DVS240C DVS346 DVXLite DVX EVK

WARNING: This repository is under major refactor. There is no specific timeline. You are advised to build from scratch from the master branch.

Special thanks to iniVation for making this possible!

The project is in its Beta development stage, please submit an issue if you encountered a problem.

NEWS As from 0.2.5, we switched CI/CD from Travis CI to Github Actions because the building on travis-ci.org is ceased. We are looking for solutions to produce ARM64 build.

Why PyAER?

iniVation has released DV, a new platform and an SDK for accessing and developing with event cameras.

For robotics projects, you may find rpg_dvs_ros when you use ROS.

So the natural question is: why PyAER?

In a nutshell, PyAER is a combination of a Pythonic libcaer and a light-weight "ROS". PyAER serves as an agile package that focus on fast development and extensibility. In fact, in some scenario, e.g., edge devices, PyAER is more user friendly than other alternatives.

Design Principle

  • Minimum installation effort.
  • Clean, simple, easy to manage.
  • Well documented, human-readable code.

Installation

  1. Install libcaer dependency (RECOMMEND)

    # for Ubuntu
    sudo apt-get install libcaer-dev
    # for macOS
    brew tap inivation/inivation
    brew install libcaer --with-libserialport --with-opencv

    Update udev rules if you use a Linux system:

    $ bash <(curl -s https://raw.githubusercontent.com/duguyue100/pyaer/master/install-udev.sh)

    NOTE: The libcaer installation has taken care of the udev update. However, if the problem persists, please try it.

  2. Install pyaer from pypi (RECOMMEND)

    $ pip install pyaer
  3. Install pyzmq and h5py

    $ pip install pyzmq
    $ pip install h5py
    

    NOTE: pyzmq is not available on ARM-based computer, you will need to build yourself.

Development

For development purpose, you might build pyaer from source. Please follow the instructions in INSTALL_FROM_SOURCE.md

Running Examples

  • The scripts folder provides some examples for you to play with.

  • Extra more advanced demos are available at pyaer-demo.

Limitations and Notes

  • 2022-08-05: Address the building issue with the latest libcaer release.

  • 2022-06-07: We now switch to follow libcaer official release.

  • 2021-12-01: For DAVIS346 Color model, we now support color events.

  • 2021-01-13: DVXplorer cameras are officially supported (Thanks iniVation) for borrowing devices. Samsung EVK support is yet to be tested.

  • 2020-12-02: From 0.2.0, we support a zeromq-based communication module that allow users to leverage multiple processes during development. It can support multiple devices and concurrent logging and visualization. If you are familiar with ROS, you should find this feature comfortable.

  • DYNAP is generally supported. We are currently looking for the correct bias configuration mechanism so that it can easily support the use of the device. We have mapped some core functions that are essential to device configuration.

Contacts

Yuhuang Hu Email: duguyue100@gmail.com