Skip to content

project_logo_name


  • Set up in 10 minutes


    Install the dependencies (Phidget22 MRPT), the project and get up and running in minutes

    Getting started

  • Sensor compatibility


    The Phidget Load Cell and Encoder interfaces are compatible with a wide range of sensors

    More information

  • Highly configurable


    Sensors are defined into group types, working in a modular and flexible way

    Configuration file

  • Data recording and CSV export


    It supports sampling rates up to 100 Hz and CSV data export, with or without sensor calibration parameters

  • Calibration feature


    It includes an interactive calibration panel to adjust sensor calibration parameters

    Calibrate sensors

  • Open Source, GPL-3.0


    The software is licensed under the GNU GPL-3.0 and available on GitHub

    License

About the Software

Software main page

A python software for synchronized data management of specific force platforms sensors compatible with Phidget API and other sensor types such as IMUs.

This project is part of the author's master's thesis in industrial engineering at the University of Almería and funded by the "Programa Operativo FEDER 2014-2020" and the Andalusian "Consejería de Transformación Económica, Industria, Conocimiento y Universidades", under the project UAL2020-CTS-A2100.

union_europea-junta_de_andalucia

A flexible configuration

The configuration file uses YAML format for better readability, and all sensors are stored in a single configuration section for a more structured setup.

Sensors are then organized into sensor groups. If a sensor does not belong to a group, it will be ignored.

Sensor groups are fully flexible

You can define a group with sensors of the same type or different types.

Within the program, you can enable or disable specific sensors within a group or an entire group.

For more details, check out the following documentation page:

  Configuration file

Just simple and straightforward settings.

You can even import customized configuration files with different sensors and group setups.

settings:
  custom_config_path: null
  test:
    name: Name
    folder_path: /tests/
    results:
      save_raw: true
      save_calib: true
  recording:
    data_interval_ms: 10
    tare_data_amount: 300
  calibration:
    data_interval_ms: 10
    data_amount: 300

Group your sensors to get specific graphs based on the group type and enhance data organization in CSV exports.

sensor_groups:
  imus:
    name: Body IMUs
    type: GROUP_DEFAULT
    read: true
    sensor_list:
    - imu_1
    - imu_2
    - imu_3
  barbell_encoders:
    name: Barbell encoders
    type: GROUP_DEFAULT
    read: true
    sensor_list:
    - encoder_1
    - encoder_2

Define all your sensors in this section.

sensors:
  encoder_1:
    name: Encoder_Z_1
    type: SENSOR_ENCODER
    read: true
    connection:
      channel: 0
      serial: 641800
    initial_position: 0
    properties:
      serial_number: AAAA
      max_length: 2500mm
    calibration:
      slope: 0.01875
      intercept: 0.0

Data graphs and CSV export

Software tab graphs page

You can visualize the recorded data directly from the graphs tabs.

There are graphs for each recorded sensor, as well as specific ones depending on the sensor group type, such as force platforms.

It is also possible to trim the data and adjust the Butterworth filter used for signal processing.

For data export, the CSV format is used, allowing both raw data export and processed data export using the sensors' calibration parameters.

Quick setup

Install the required dependencies and clone the project into your workspace.

You can follow this steps to set it up in a few minutes.

Only Linux distributions are supported, preferably Ubuntu 22.04 LTS

The project has been developed and tested in Ubuntu 22.04 LTS. Phidget does support Windows and Mac OS, but Taobotics IMUs do not.

Tip

Do it in a virtual environment to avoid module installation issues (using virtualenv, for example).

This project is developed with Python v3.10.6

  • Step 1: Install the external dependencies


    curl -fsSL https://www.phidgets.com/downloads/setup_linux | sudo -E bash - &&\
    sudo apt-get install -y libphidget22
    
    sudo add-apt-repository ppa:joseluisblancoc/mrpt
    sudo apt install libmrpt-dev mrpt-apps
    sudo apt install python3-pymrpt
    
  • Step 2: Clone the force_platform repository


    git clone https://github.com/AaronPB/force_platform.git
    
    git clone git@github.com:AaronPB/force_platform.git
    
  • Step 3: Install the project requirements


    pip install -r requirements.txt