https://github.com/decargroup/uwb_calibration
A Python package to calibrate the UWB modules in order to improve ranging accuracy.
https://github.com/decargroup/uwb_calibration
calibration localization ranging-sensor uwb
Last synced: 5 months ago
JSON representation
A Python package to calibrate the UWB modules in order to improve ranging accuracy.
- Host: GitHub
- URL: https://github.com/decargroup/uwb_calibration
- Owner: decargroup
- License: mit
- Created: 2022-09-23T15:54:25.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-03-15T01:27:09.000Z (about 1 year ago)
- Last Synced: 2024-10-30T04:39:36.382Z (6 months ago)
- Topics: calibration, localization, ranging-sensor, uwb
- Language: Python
- Homepage:
- Size: 3.85 MB
- Stars: 20
- Watchers: 1
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# UWB Calibration Package
**This package is still in development. Any contribution is welcome!**
A Python package to calibrate the UWB modules in order to improve ranging accuracy.
## Example
```python
from pyuwbcalib.machine import RosMachine
from pyuwbcalib.postprocess import PostProcess
from configparser import ConfigParser, ExtendedInterpolation# The configuration file
config_file = 'config/ifo_3_drones_rosbag.config'# Parse through the configuration file
parser = ConfigParser(interpolation=ExtendedInterpolation())
parser.read(config_file)# Create a RosMachine object for every machine
machines = {}
for i,machine in enumerate(parser['MACHINES']):
machine_id = parser['MACHINES'][machine]
machines[machine_id] = RosMachine(parser, i)# Process and merge the data from all the machines
data = PostProcess(machines)# Instantiate a UwbCalibrate object, and remove static extremes
calib = UwbCalibrate(data, rm_static=True)# Extract the raw bias measurements
bias_raw = np.array(calib.df['bias'])# Correct antenna delays
calib.calibrate_antennas()# Extract the antenna-delay-corrected measurements
bias_antenna_delay = np.array(calib.df['bias'])# Correct power-correlated bias
calib.fit_power_model()# Extract the fully-calibrated measurements
bias_fully_calib = np.array(calib.df['bias'])
```## Installation
Python 3.6 or greater is required. Inside this repo's directory, you may runpip3 install .
orpip3 install -e .
which installs the package in-place, allowing you make changes to the code without having to reinstall every time.
The documentation can be compiled using
cd cdocs
make htmlThe file `docs/build/html/index.html` can then be opened in a web browser.
## Citation
M. A. Shalaby, C. C. Cossette, J. R. Forbes and J. Le Ny, "Calibration and Uncertainty Characterization for Ultra-Wideband Two-Way-Ranging Measurements," 2023 IEEE International Conference on Robotics and Automation (ICRA), London, United Kingdom, 2023.