Skip to main content

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

Project description

tempEgo

tempEgo is a Python package for calculating the ego-motion velocity of a sensing platform from millimetre-wave (mmWave) radar data. This package implements the ego-motion estimation methods detailed in [Enhancing Doppler Ego-Motion Estimation: A Temporally Weighted Approach to RANSAC](link to be added).

The three methods are:

  • KB: Traditional ego-motion estimation technique as detailed in D. Kellner et al., "Instantaneous ego-motion estimation using doppler radar," in 16th ITSC, 2013, pp. 869–874
  • 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 tempEgo.

pip install tempEgo

or

Clone the Github Repository

Prereq: Git installation

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

Usage

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

Hyperparameters:

Shared:

  • n: Minimum number of data points to estimate parameters
  • k: Maximum iterations allowed
  • epsilon: Threshold value to determine if points are fit well
  • z: Number of close data points 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 [Enhancing Doppler Ego-Motion Estimation: A Temporally Weighted Approach to RANSAC](link to be added). 0 uses only the most recent samples and 1 uses all samples equally.

To change the from the values presented in [Enhancing Doppler Ego-Motion Estimation: A Temporally Weighted Approach to RANSAC](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 environments. The average 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 Enhancing Doppler Ego-Motion Estimation: A Temporally Weighted Approach to RANSAC.

A comparison of the results generated by TEMPSAC (blue), TWLSQ (green), and KB (red) over EC (left), IRL (centre), and EA (right) datasets. The top panel shows the xy trajectories, the middle panel shows the absolute pose error over time, and the bottom panel shows the average absolute pose error for the 100 trials. TEMPSAC and TWLSQ outperform KB.

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 data set like the config file or the location to the dataset itself.

License

MIT

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

tempEgo-0.0.1.tar.gz (19.4 kB view details)

Uploaded Source

Built Distribution

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

tempEgo-0.0.1-py3-none-any.whl (21.0 kB view details)

Uploaded Python 3

File details

Details for the file tempEgo-0.0.1.tar.gz.

File metadata

  • Download URL: tempEgo-0.0.1.tar.gz
  • Upload date:
  • Size: 19.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.13

File hashes

Hashes for tempEgo-0.0.1.tar.gz
Algorithm Hash digest
SHA256 409b7ae2e9313c947c4db74909b18821c662a8e51d84c3e087a2d38c7db9fd8e
MD5 58b6bb20740e20f328c7c0b1dbfa0cc8
BLAKE2b-256 d128a596dce2cfeb62c96b43a21635ca5f4420551b3c0b5b15e1831eac9d7b95

See more details on using hashes here.

File details

Details for the file tempEgo-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: tempEgo-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 21.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.13

File hashes

Hashes for tempEgo-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f6ac1af50827a9a7c07962a19fd51d30b8b6ff709f7c8a9ef2fb5c8df83029e9
MD5 4b047b00c41af5c3f94bb209fd3b1261
BLAKE2b-256 72e2bfda6e15a1deb04472b5c4c121018eca8687f3ed4dcbeaddf175ad744b25

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