You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+21-7Lines changed: 21 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ The python scripts are :
6
6
-[Send_angle_params](#send_angle_params)
7
7
-[Visualization](#visualization)
8
8
-[Validate](#validate)
9
-
9
+
10
10
## Installation
11
11
Prerequisites:
12
12
@@ -21,12 +21,24 @@ Follow this flow chart in order to find which script to run depending on your ne
21
21
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.
22
22
#### Hardware setup
23
23
- 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.
24
30
- 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.**
- Connect power and communication interface to the HiveBoard.
35
+
- Ensure the HiveBoard has the latest version of the [HiveMind](https://github.com/SwarmUS/HiveMind)
26
36
- Connect a usb cable to the Arduino.
27
37
- Connect power to the drive submodule (red = 12 V, white = ground)
28
38
- 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).
30
42
#### Runnning the script
31
43
The script can be run from `/src/extractRawData`.<br />
32
44
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
56
68
The script can be run from `src/parser`.
57
69
#### Adjustable parameters
58
70
`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 />
61
73
<pre><code> pair 0 = antenna 0 - antenna 1<br />
62
74
pair 1 = antenna 0 - antenna 2<br />
63
75
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 />
65
78
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 />
66
80
`EXPORT_PDOA` : `True` will prompt the second set of plots (slopes extraction) and save the calibration result in a **pickle** format.
67
81
#### 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π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 />
69
83
<br />
70
84
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 />
71
85
@@ -147,4 +161,4 @@ Similarly to [ExtractRawData](#extractRawData), the *TurningStation* will turn b
147
161
analyze_validation("../data/validation_hb6.csv")
148
162
```
149
163
#### 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.
0 commit comments