Skip to content

spaceuma/fts-assessment

Repository files navigation

FTS Assessment

arxiv Python 3.10 CI-Pytest CI-Ruff License: MIT

This repository contains the scripts we used to assess force-torque sensor data for a paper that is currently under review.

This project is licensed under the MIT License.

Paper

A preprint of the paper is available at arxiv.org:

@misc{gerdes2024fieldassessmentforcetorque,
      title={Field Assessment of Force Torque Sensors for Planetary Rover Navigation}, 
      author={Levin Gerdes and Carlos Pérez del Pulgar and Raúl Castilla Arquillo and Martin Azkarate},
      year={2024},
      eprint={2411.04700},
      archivePrefix={arXiv},
      primaryClass={cs.RO},
      doi={10.48550/arXiv.2411.04700},
      url={https://arxiv.org/abs/2411.04700}, 
}

The preprint was prepared with version v0.1-preprint of this code.

Both bibtex and formatted text citation can be copied using Github's "Cite this Repository" button in the right-hand side toolbar.

Dependencies

This repository uses Python 3.10. All requirements are listed in pyproject.toml.

Install them via uv

uv sync
uv pip install -e .

or pip

python3 -m venv .venv
source .venv/bin/activate
pip install -e .

Data path

Point the scripts to the Baseprod traverse data. You can use your own path like so:

  1. Set the environment variable for your path, e.g.

    export BASEPROD_TRAVERSE_PATH="/mnt/baseprod/sensor_data"
  2. Alternatively, modify the default path (if no correct environment variable is found) in preprocessing/traverse_overview.

Preprocessing

  • Check how much data is usable according to the distance computed by Fy/Tx with preprocessing/find_usable.py.

    python -m preprocessing.find_usable
  • Generate the dataset for the later machine learning with preprocessing/export_classification_stats.py.

    python -m preprocessing.export_classification_stats

    Creates three output files (training_data.csv, training_data_ft.csv, training_data_imu.csv) containing the data for all sensors, only the force torque sensors, and only the IMU data, respectively.

    If only a subset of FTSs should be included, --fts_names FL FR can be passed to only include the data from FTSs FL and FR (plus IMU) for example.

  • Plot FTS and IMU data with preprocessing/plot_fts_imu.py

    python -m preprocessing.plot_fts_imu

Run classification training

From the project's root, invoke

python -m ml.svm --csv training_data_ft.csv --data_source fts

or

python -m ml.train --csv training_data.csv --data_source all

See all possible arguments by passing --help.