GithubHelp home page GithubHelp logo

gtec-udc / rostoa Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 316 KB

Several ROS nodes related with TimeOfArrival sensors and measurements.

License: MIT License

CMake 0.67% C++ 87.56% C 9.95% Makefile 1.82%

rostoa's Introduction

NOTE: This repository is related with the next scientific work:

Barral, V.; Escudero, C.J.; García-Naya, J.A.; Maneiro-Catoira, R. NLOS Identification and Mitigation Using Low-Cost UWB Devices. Sensors 2019, 19, 3464.https://doi.org/10.3390/s19163464

If you use this code for your scientific activities, a citation is appreciated.

README

This repository includes several tools and ROS nodes to process TOA (Time Of Arrival) measurements coming from Decawave EVK1000/TRECK1000 or Pozyx tags and anchors.

The nodes included in the repository are:

  • anchors This node reads the 3D positions of a set of anchors from an .xml file and publish them in the ROS environment to be read by other nodes.
  • dwfixer This node receives measurements from a Decawave EVK1000/TRECK1000 tag and applies a bias correction (See Assessment of UWB Ranging Bias in Multipath Environments ). Finally it publishes the result in a new message of type gtec/Ranging.
  • pozyxfixer This node receives measurements from a Pozyx tag and parses them to extract the information and to publish it as a new gtec/Ranging message.

Dependencies

GTEC ROS TOA package has the next dependencies:

Building the nodes

To build the nodes, source code must be cloned inside a catkin work space on a ROS installation (see Creating a workspace for catkin). If the catkin work space is located at ~/catkin_ws then:

$ cd ~/catkin_ws/src
$ mkdir gtec
$ cd gtec
$ git clone rostoa

Then catkin_make must be used to build the nodes:

$ cd ~/catkin_ws
$ catkin_make

Launching the nodes

There are several .launch files in the project to launch the nodes using the roslaunch command.

Launching anchors node:

$ roslaunch gtec_rostoa anchors.launch

Launching dwfixer node:

$ roslaunch gtec_rostoa dwfixer.launch

Launching pozyxfixer node:

$ roslaunch gtec_rostoa pozyxfixer.launch

Nodes configuration

Each node has different configuration parameters. Some of them are set through a .xml file while others are set in the .launch.

Anchors node

There is an anchors.xml file inside ~/catkin_ws/src/gtec/rostoa/config that defines the number and position of each anchor. The content of this file looks like:

<config>
 <anc ID="0" label="A0" x="2.129" y="6.114" z="1.652"/>
 <anc ID="1" label="A1" x="4.00" y="0.361" z="1.765"/>
 <anc ID="2" label="A2" x="7.327" y="6.478" z="1.752"/>
 <anc ID="3" label="A3" x="8.351" y="0.361" z="1.765"/>
 <anc ID="4" label="A4" x="12.513" y="2.886" z="1.834"/>
</config>

DWFixer node

Parameters of DWFixer node are set in the ~/catkin_ws/src/gtec/rostoa/dwfixer.launch file:

        <param name="useCustomBiasFix" type="bool" value="true" />
        <param name="customBiasFixMode" type="int" value="3" />
        <param name="cableLength" type="double" value="0.4" />
        <param name="tableBiasLOS" value="$(find gtec_rostoa)/src/rostoa/config/tableBiasLOS.csv"></param>
        <param name="tableBiasLOSError" value="$(find gtec_rostoa)/src/rostoa/config/tableBiasLOSError.csv"></param>
        <param name="tableBiasNLOSFP" value="$(find gtec_rostoa)/src/rostoa/config/tableBiasNLOSFP.csv"></param>
        <param name="tableBiasNLOSFPError" value="$(find gtec_rostoa)/src/rostoa/config/tableBiasNLOSFPError.csv"></param>
  • useCustomBiasFix: if true the custom bias fix is applied.
  • customBiasFixMode: different custom bias fix modes are available. Possible values are:
    • 0 Uses a scenario of LOS
    • 1 Uses a scenario of NLOS
    • 3 Auto mode, switch from one scenario to other according to some quality parameters.
  • cableLength: length in meter of the connection cable between the tag and the computer that receives the data. This length must be taken into account because it introduces a delay that must be corrected.
  • tableBiasLOS, tableBiasLOSError, tableBiasNLOSFP, tableBiasNLOSFPError: are a set of .csv files with real measurements of Decawave chips that are used by the node to correct the bias in the ranging estimation.

PozyxFixer

Parameters of PozyxFixer node are also set in the launch file located at ~/catkin_ws/src/gtec/rostoa/pozyxfixer.launch

<param name="numAnchors" type="int" value="6" />
<param name="cableLength" type="double" value="0.0" /
  • numAnchors: the number of anchors to receive measurements from. Measurements from anchors with ids greater that this number will be ignored.
  • cableLength: length in meter of the connection cable between the tag and the computer that receives the data. This length must be taken into account because it introduces a delay that must be corrected.

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.