Skip to main content

A package for estimating 3D ego-motion velocity using millimetre-wave (mmWave) radar.

Project description

tempEgo3D

tempEgo3D is a Python package for calculating the 3D ego-motion velocity of a sensing platform from a millimetre-wave (mmWave) radar data. This package implements the proposed ego-motion estimation methods detailed in [Temporally Constrained Instantaneous Ego-Motion Estimation using 4D Doppler Radar](link to be added).

The two methods are:

  • TEMPSAC: TEMporal SAmpling Consensus implements a weighted sliding window of sensor measurements biasing the algorithm to estimate the velocity using newer samples in time.
  • TWLSQ: Temporally Weighted Least Squares implements a sliding window and temporal weighting scheme for model fitting.

Prerequisites

A method of supplying this package with mmWave data, either using a physical sensor or a pre-existing dataset.

For use with the Coloradar dataset please install the desired dataset from here. For out of the box usage of this package with the Coloradar dataset follow the directory structure implemented here. If you do not need the extra functionality of the coloradar_package simply clone the repository to get the correct directory structure.

Installation

Use the package manager pip to install tempEgo3D.

pip install tempEgo3D

or

Clone the Github Repository

Prereq: Git installation

git clone https://github.com/samuelLovett/tempEgo3D.git
cd tempEgo3D
pip install .

Usage

The main.py script provides an example of how to use each velocity estimation method.

Hyperparameters:

Shared:

  • n: Minimum number of samples to estimate parameters
  • k: Maximum iterations allowed
  • epsilon: Threshold value to determine if a sample is an inlier
  • rho: Number of inlier samples required to assert model fits well

TEMPSAC & TWLSQ:

  • buffer_size: Size of the sliding window (m)
  • fff_lambda: fixed forgetting factor as defined in (14) of [Temporally Constrained Instantaneous Ego-Motion Estimation using 4D Doppler Radar](link to be added). 0 uses only the most recent samples and 1 uses all samples equally.

To change the values presented in [Temporally Constrained Instantaneous Ego-Motion Estimation using 4D Doppler Radar](link to be added), change their definition within the set_kb() , set_tempsac() , set_twlsq() methods.

Results

Comparison of average absolute pose error for different trajectories. The average root-mean-squared absolute pose error is presented in metres.

[| Algorithm | Edgar Classroom Dataset | Intelligent Robotic Lab Dataset | Edgar Army tunnel Dataset | | ------------- |:-------------:| ------------- |:-------------:| | TEMPSAC | 2.812 | 2.352 | 5.615 | | TWLSQ | 2.338 | 2.166 | 5.653 | | KB | 3.644 | 3.603 | 5.672 |

The average absolute pose error for 100 trials is shown in the above Table. Both our methods outperform KB, with TEMPSAC showing an average improvement of 19.5% and TWLSQ showing an average improvement of 25.3%.]: #

The results figure from Temporally Constrained Instantaneous Ego-Motion Estimation using 4D Doppler Radar.

A Note on Potential Errors

If you get an error along the lines of

File "C:\path-to-package\tempEgo\dataset_loaders.py", line *some number*, in *some function*
    t, r = read_tf_file(tf_filename)
TypeError: cannot unpack non-iterable NoneType object

It is likely being caused by a path error to a file within the dataset (like the config file or the path to the dataset itself).

License

MIT

Acknowledgement

I would like to acknowledge the support of the bioMechatronics Lab as well as my supervisors Dr. Carlos Rossa and Dr. Sreeraman Rajan in the creation of [Temporally Constrained Instantaneous Ego-Motion Estimation using 4D Doppler Radar](link to be added).

Citation

When citing our work please use:

Citation to be added

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tempEgo3D-0.1.0.tar.gz (21.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tempEgo3D-0.1.0-py3-none-any.whl (23.0 kB view details)

Uploaded Python 3

File details

Details for the file tempEgo3D-0.1.0.tar.gz.

File metadata

  • Download URL: tempEgo3D-0.1.0.tar.gz
  • Upload date:
  • Size: 21.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.11.7

File hashes

Hashes for tempEgo3D-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7962dcf84313c42c114431317bfe9568b3aa166337b0a1961d0944bd2c3d4b8a
MD5 61558772656667a8cd4bac4bd2e948bc
BLAKE2b-256 32db5dbbc5594d72f24cb536438e344a600cb3fa5784302d1a9e0044a9ba2873

See more details on using hashes here.

File details

Details for the file tempEgo3D-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: tempEgo3D-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 23.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.11.7

File hashes

Hashes for tempEgo3D-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 900f22b5278fa568ba207c60431dc59d1da1de02e716034018dfeaa973e97c43
MD5 d52a82987fd6c8dd4f36caf49e714af5
BLAKE2b-256 577079eea80bb6adcb04b14c29b0dca5863e7312092b1aa8fb538b0bdcd8e7c8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page