Skip to content

Commit b60e942

Browse files
authored
Merge pull request #6 from SwarmUS/correction_how_to
Correction on antenna setup and offset description
2 parents adba046 + fab615f commit b60e942

2 files changed

Lines changed: 21 additions & 7 deletions

File tree

README.md

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ The python scripts are :
66
- [Send_angle_params](#send_angle_params)
77
- [Visualization](#visualization)
88
- [Validate](#validate)
9-
9+
1010
## Installation
1111
Prerequisites:
1212

@@ -21,12 +21,24 @@ Follow this flow chart in order to find which script to run depending on your ne
2121
This script enables the user to extract the raw DW1000 data from the HiveBoard/BeeBoards assembly. The test-bench will turn by a chosen stepping angle and acquire the desired amount of raw data per step.
2222
#### Hardware setup
2323
- Place a BeeBoards assembly in the middle of the test-bench. The 0deg axis of the assembly needs to point in a parallel fashion to the mounted laser pointer.
24+
- The **assembly** is described as :
25+
- The BeeBoard mount
26+
- The 3 wings boards
27+
- The 3 USC-C cables
28+
- The HiveBoard
29+
- The channel used for each BeeBoard.
2430
- The BeeBoards have to be connected to a HiveBoard mounted to the test-bench using the same cable and ports as labeled on the assembly. If the cables and assembly are not indicated be sure to note which BeeBoards are used, plugged with which cables and in which channel on which HiveBoard. **The calibration will only be valid for this configuration and has to be completly re-performed if any of this component is changed or plugged differently.**
31+
- The BeeBoard assembly should be mounted as follow:<br />
32+
**If, for any reason, the antenna are not plugged in the same channel as asked per the hardware setup, absolutely refer to the [angle documentation](https://swarmus.github.io/SwarmUS-doc/sections/reference/Interloc/how_it_works/angle/) as everything is dependent on this.**
33+
<img src="img/Beeboard_asbly.png" width="400"><br />
2534
- Connect power and communication interface to the HiveBoard.
35+
- Ensure the HiveBoard has the latest version of the [HiveMind](https://github.com/SwarmUS/HiveMind)
2636
- Connect a usb cable to the Arduino.
2737
- Connect power to the drive submodule (red = 12&nbsp;V, white = ground)
2838
- To align the receiver with the emmiter, use the laser pointer. Each laser should point to the alignment target of the other laser assembly. This position ensures a 0 degree relative orientation between the two radio setup.
29-
- The laser mount should be calibrated periodicly to ensure its position and accuracy,
39+
- The laser mount should be calibrated periodicly to ensure its position and accuracy.
40+
- Press button 0 on the emmiter to enable the continuous sending mode.
41+
- Ensure that nothing is between the emmiter and the BeeBoard assembly (ensure line of sight).
3042
#### Runnning the script
3143
The script can be run from `/src/extractRawData`.<br />
3244
Requires the [TestBench-Arduino](https://swarmus.github.io/SwarmUS-doc/) code to be installed on the test-bench's Arduino in order to be interfaced.
@@ -56,16 +68,18 @@ Parses and presents the PDOA values from the previously acquired raw data (from
5668
The script can be run from `src/parser`.
5769
#### Adjustable parameters
5870
`dataFolderPath` : folder path where the extracted raw data CSV produced by [ExtractRawData](#pxtractRawData) has been saved.<br />
59-
`dataName` : name of the file to parse the data from.<br />
60-
`usedPairs` : the antenna pairs to be used. Encoded as follow :<br />
71+
`dataName` : name of the file to parse the data from, without the extension.<br />
72+
`usedPairs` : the antenna pairs to be used. Use 0,1 and 5 for default operation. Encoded as follow :<br />
6173
<pre><code> pair 0 = antenna 0 - antenna 1<br />
6274
pair 1 = antenna 0 - antenna 2<br />
6375
pair 2 = antenna 1 - antenna 0<br />
64-
....<br />
76+
pair 3 = antenna 1 - antenna 2<br />
77+
pair 4 = antenna 2 - antenna 0<br />
6578
pair 5 = antenna 2 - antenna 1<br /></code></pre>
79+
Refer to the [angle documentation](https://swarmus.github.io/SwarmUS-doc/sections/reference/Interloc/how_it_works/angle/) for a better understanding of the antenna pairs and their selection. <br />
6680
`EXPORT_PDOA` : `True` will prompt the second set of plots (slopes extraction) and save the calibration result in a **pickle** format.
6781
#### Behavioral descriptionand user interaction
68-
Upon runnning the script, the first plot to appear will ask the user to select points from which to offset the whole dataset. Theoretically, the plot should represent a **sin** wave, the offset in this section will prevent the signal from wrapping over 2&pi;and under 0. If the **sin** is not wrapping, no points need to be selected, as no offset needs to be applied, simply close the plot.The points selected should then be the very bottom of a **sin** *parabola* section. Also, to obtain a better estimation of the offset needed, it is possible to select the very bottom of the *parabola*, and a top of this *parabola* that has wrapped over. Many points can be selected, the mean of the *y axis* will be used as the offset. This process has to be repeted for the number of `usedPairs` selected. Here is an exemple of the process.<br />
82+
Upon runnning the script, the first plot to appear will ask the user to select points from which to offset the whole dataset. Theoretically, the plot should represent a **sin** wave. The goal is to offset the signal until it wraps minimally. If the **sin** is not wrapping, no points need to be selected, as no offset needs to be applied, simply close the plot. Otherwise, the points selected should then be the very bottom of a **sin** *parabola* section. Also, to obtain a better estimation of the offset needed, it is possible to select the very bottom of the *parabola*, and a top of this *parabola* that has wrapped over. Many points can be selected, the mean of the *y axis* will be used as the offset. This process has to be repeted for the number of `usedPairs` selected. Here is an exemple of the process.<br />
6983
![](img/ex_offset.png)<br />
7084
A plot of the result will then appear. If all curves are not wrapping, the first step is succesful. Otherwise, the script must be re-run and better points must be selected until all curves do not wrap. <br />
7185

@@ -147,4 +161,4 @@ Similarly to [ExtractRawData](#extractRawData), the *TurningStation* will turn b
147161
analyze_validation("../data/validation_hb6.csv")
148162
```
149163
#### Note
150-
Communication with the HiveBoard is done using the [Pheromones submodule](https://github.com/SwarmUS/Pheromones). If communication problems occur, ensure that the version used by the script is the same as on the HiveBoard.
164+
Communication with the HiveBoard is done using the [Pheromones submodule](https://github.com/SwarmUS/Pheromones). If communication problems occur, ensure that the version used by the script is the same as on the HiveBoard.

img/Beeboard_asbly.png

349 KB
Loading

0 commit comments

Comments
 (0)