Code Monkey home page Code Monkey logo

rts_project's Introduction

RTS project

Author: Maxime Vaidis [email protected]

Update: September 30th 2023 by Maxime Vaidis

Code to process RTS data

This RTS library aims to develop the processing of Robotic Total Stations data in mobile robotics. Codes, datasets and examples are provided in this repository. This library is linked to the project RTS of the Norlab Laboratory.

Contents:

Installation

RTS_Extrinsic_Calibration is supported on Python 3.8.14 on Ubuntu 22.04. You might also want to use a virtual environment for the installation. The requirements.txt file contains all the packages needed for the installation.

Manual

Details about the code are in the Wiki.

Datasets

A 2023 dataset consisting of .bag files with RTS data is available Here with a details explanation about the data collected.

The RTS-GT dataset was taken with two different robotic platform and contains over 49 kilometers of prism trajectories tracked by three RTSs.

Note: the dataset of 2023 was collected through ROS 1 for the RTS data, and ROS 2 for the robots' data

Contributing Utilities

A few "inoffical" scripts for special use-cases are collected in the contrib/ directory of the repository. They are inofficial in the sense that they don't ship with the package distribution and thus aren't regularly tested in continuous integration.

Contributing

Patches are welcome, preferably as pull requests.

Trouble

First aid:

License

MIT

If you use this package for your research, a footnote with the link to this repository is appreciated: github.com/norlab-ulaval/RTS_Extrinsic_Calibration.

Papers linked

2023: RTS-GT: Robotic Total Stations Ground Truthing dataset (Submitted to ICRA 2024)

2023: Uncertainty analysis for accurate ground truth trajectories with robotic total stations (IROS 2023)

2023: Extrinsic calibration for highly accurate trajectories reconstruction (ICRA 2023)

2021: Accurate outdoor ground truth based on total stations (CRV 2021)

rts_project's People

Contributors

aguenette avatar effie28 avatar iamphytan avatar vdsmax avatar williamdubois avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

rts_project's Issues

Generalize read_calibration function

We use different function to read the extrinsic calibration file of one experiment. (read_calibration_gps_prism, read_calibration_gps_prism_lidar, read_calibration_prism_lidar_marmotte). See if it is possible to generalize these functions.

Correct application of delta_t parameter

Currently, the delta_t parameter in the notebook Full_pipeline.ipynb is applied on the prediction numpy.array. It should be applied on the training dataset to cut the edge of it.

Outlier for interpolated data before resection

Code a new type of outlier for the interpolated data before applying the new resection.
Current outlier is based on the speed of the prism.
We need to do a new one which keep the interpolated prism positions near the raw data prism position according to a time window.
Should be done in two functions:

  1. Input: 1x interpolated prism positions, 1x raw position data of this prism, time distance threshold
    Function: keep the interpolated points near their raw data according to the time distance threshold
    Output: mask of the points selected according to the list of interpolated prism positions given as input
  2. Input: 3x interpolated prism positions, 3x mask list
    Function: merge mask list into one and gives the correct interpolated prism positions with the mask applied
    Output: 3x interpolated prism positions filtered

Refactor data's directory structure

Inverse the structure of the data directory.

Current structure:

data/
├─ calibration/
│  ├─ distance_calib/
│  │  ├─ YYYYMMDD_calibration_distance.csv
│  │  └─ ...
│  └─ lab_calib/
│     ├─ YYYYMMDD_calibration_robotname.csv
│     └─ ...
├─ error/
├─ gps/
│  ├─ YYYYMMDD/
│  └─ ...
├─ groundtruth/
│  ├─ YYYYMMDD/
│  └─ ...
├─ prediction/
│  ├─ YYYYMMDD/
│  └─ ...
├─ raw_data/
│  ├─ YYYYMMDD/
│  └─ ...
├─ simulation/
│  └─ ...
└─ total_station/
   ├─ YYYYMMDD/
   └─ ...

New structure:

data/
├─ README.md
├─ experiment_title_YYYYMMDD/
│  ├─ calibration/
│  │  ├─ calibration_robotname_result.csv
│  │  └─ calibration_robotname_raw.csv
│  ├─ figures/
│  │  └─ ...
│  ├─ gps/
│  │  ├─ gps12_distance.csv
│  │  ├─ gps13_distance.csv
│  │  ├─ gps23_distance.csv
│  │  ├─ gps_back.csv
│  │  ├─ gps_front.csv
│  │  └─ gps_middle.csv
│  ├─ ground_truth/
│  │  └─ ground_truth.txt
│  ├─ prediction/
│  │  ├─ GP-10-20_1.csv
│  │  ├─ GP-10-20_2.csv
│  │  └─ GP-10-20_3.csv
│  ├─ resection/
│  │  ├─ manual/
│  │  │  └─ tf_manual.csv
│  │  └─ automatic/
│  │     └─ tf_auto.csv
│  ├─ simulation/
│  │  └─ ...
│  ├─ total_station/
│  │  ├─ theodolite_reference_prisms.txt
│  │  ├─ trimble1.csv
│  │  ├─ trimble2.csv
│  │  └─ trimble3.csv
│  ├─ raw_data/
│  │  ├─ GP-10-20_1.csv
│  │  ├─ GP-10-20_2.csv
│  │  ├─ GP-10-20_3.csv
│  │  ├─ trimble1.csv
│  │  ├─ trimble2.csv
│  │  └─ trimble3.csv
│  └─ README.md
└─ ...

The idea is to have a structure that will make it easy to write function that will load and save all the necessary files containing the data based only on one path instead of having to specify the path for each file.

Function for geomatic resection method

Input: 2 point coordinates, 1 distance between these two points, 3 height values for the total stations
Function: see document topoll_cours02a_H22_theorie.pdf, slide 34
output: position of the total station

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.