Navigine / Direction-of-Arrival-DoA-Estimation-Algorithm

Project for finding beacon location using Angle of Arrival (AoA) signal. The Direction of Arrival estimation is based on the MUltiple SIgnal Classification (MUSIC) algorithm here.
MIT License
62 stars 21 forks source link

Some questions about parameters #3

Open CLlauger opened 2 years ago

CLlauger commented 2 years ago

Здравствуйте,

First of all, I want to congratulate you for the work you did here, it seems very interesting to me, but I have some questions about it:

Очень благодарю вас

tim-chikichev-navigine commented 2 years ago

@CLlauger, to mak ethis easier for the future possible readers i will write this in English, sorry for inconvenience.

Thanks for such a good feedback. And regarding your questions:

Why you don't just pass the X and the Y? This is our internal format. Having coordinates between 0 and 1 allows easier plotting on location map and make possible to see if point is out of the navigation zone in logs (especially for rectangular test location).

Could you explain more in detail these parameters?

d = 0.05 # inter element spacing - aoa antennas is an array of elements.

From Direction Finding overview Direction Finding whitepaper 1159720_173 v1.1 / 2020-08-24

Usually Bluetooth LE devices are placed farther apart than this, meaning the signal undergoes multiple wave cycles as it propagates from the transmitter to the receiver. By measuring the phase difference of the signal as received by different antennas, the AoA receiver can determine the direction from which the signal is received. This is done with simple trigonometry, the phase difference yields a difference in travel time for the signal, and thus distance traveled.

So to say, to measure the position we need the phase difference. For a planar case we need at least two elements from single antenna. Just the simplest binocular case is presented.

M = 2 # number of antenna elements in the antenna system

Not all of antennas elements we utilized. Sometimes the locator's(antenna device) manufacturer provides you the angles, so you don't need to compute them directly..

Also, I observed you have your antenna on the floor (we have ours tied on the ceiling) is there any reason for that? How this affects to the process? It shoudn't, as we consider only the angles to antenna's coordinate space. There's still a question about multipath propagation and how this may affect our experiment, however this factor was not considered. In our current configuration we have the antenna mounted on the ceiling, we may record new logs from antenna and compare the data. Write us if you need this data. There's a common guidelines about how to position your antennas, but for pilot version, there's no need to condiuct the full series of experiments. The location of antenna is important, but for this particular device we have not conducted experiments on this. Cause the device is sensible to many other factors, we have no option to conduct this experiment now. If you have any ideas or requests, please contact us.

And last but not least, I've seen your switch pattern is not the one that it comes by default, is this important? How does this affects to the process?

there's a device only by default. we are testing the linear array of elements, the simplest possible case to consider. configuration and results will not change much if using not (:) pattern but (: .) or similar. However coordinate configuration will be more complicated. Guess we should provide statistics for 2 vs 3 vs more elements used for the linear case. We will conduct additional experiments when possible. Stay tuned.

With regards, Timur, Navigine dev

miguelsoares14 commented 2 years ago

Hello all, first of all, congratulations for the fantastic work,

However I have some doubts, based on your algorithm and demo data, by running your code with the static data it gives azimuth and elevation angle. How is that possible considering that your are only using 2 antennas (M=2)?

Best regards, Miguel Soares

miguelsoares14 commented 2 years ago

Anyone? @tim-chikichev-navigine @AlexeyPanyov @PavelTychinin

notenoughsun commented 2 years ago

Hello all, first of all, congratulations for the fantastic work,

However I have some doubts, based on your algorithm and demo data, by running your code with the static data it gives azimuth and elevation angle. How is that possible considering that your are only using 2 antennas (M=2)?

Best regards, Miguel Soares

Hello, Miguel

Thanks for your interest. Work we discuss was related to angle reconstruction, only one variable from two close antenna elements. It is not possible to accurately reconstruct distance from this data. Using pair of elements in another axis we can reconstruct another angle. RSSI based distance reconstruction is possible, but it is not the point of interest here.

notenoughsun commented 2 years ago

Hello all, first of all, congratulations for the fantastic work,

However I have some doubts, based on your algorithm and demo data, by running your code with the static data it gives azimuth and elevation angle. How is that possible considering that your are only using 2 antennas (M=2)?

Best regards, Miguel Soares

Hello again, My comment above was a bit confusing. Just take a look on the latest version of code uploaded. M=2 is the setting for music algorithm. We configure the antenna phases, which elements to read. Two antennas in each axis.

Then in code, we have two phases, processing the elevation and the azimuth independently. Because of horizontal orientation of locator, some coordinate transformation has to be performed. The xy coordinates are then obtained from known z coordinates of both transmitter and locator.

miguelsoares14 commented 2 years ago

Hello all, first of all, congratulations for the fantastic work, However I have some doubts, based on your algorithm and demo data, by running your code with the static data it gives azimuth and elevation angle. How is that possible considering that your are only using 2 antennas (M=2)? Best regards, Miguel Soares

Hello again, My comment above was a bit confusing. Just take a look on the latest version of code uploaded. M=2 is the setting for music algorithm. We configure the antenna phases, which elements to read. Two antennas in each axis.

Then in code, we have two phases, processing the elevation and the azimuth independently. Because of horizontal orientation of locator, some coordinate transformation has to be performed. The xy coordinates are then obtained from known z coordinates of both transmitter and locator.

Hi @notenoughsun thank you by the prompt reply!! :) Ok, now I understand, you made use of 2 antennas at each axis, right? Total of 4 antennas, where 2 where placed horizontally for azimuth detection and other 2 vertically for elevation detection, am I correct?

At this moment I'm only focused on obtain the angles, so the XY location is not an issue at the moment. (By the way, I assume that you used the Nordic radio, is that true?)

Really thanks for your time and help!!! :)))

notenoughsun commented 2 years ago

Hello all, first of all, congratulations for the fantastic work, However I have some doubts, based on your algorithm and demo data, by running your code with the static data it gives azimuth and elevation angle. How is that possible considering that your are only using 2 antennas (M=2)? Best regards, Miguel Soares

Hello again, My comment above was a bit confusing. Just take a look on the latest version of code uploaded. M=2 is the setting for music algorithm. We configure the antenna phases, which elements to read. Two antennas in each axis.

Then in code, we have two phases, processing the elevation and the azimuth independently. Because of horizontal orientation of locator, some coordinate transformation has to be performed. The xy coordinates are then obtained from known z coordinates of both transmitter and locator.

Hi @notenoughsun thank you by the prompt reply!! :) Ok, now I understand, you made use of 2 antennas at each axis, right? Total of 4 antennas, where 2 where placed horizontally for azimuth detection and other 2 vertically for elevation detection, am I correct?

At this moment I'm only focused on obtain the angles, so the XY location is not an issue at the moment. (By the way, I assume that you used the Nordic radio, is that true?)

Really thanks for your time and help!!! :)))

One single antenna array, some of elements enabled (Minew AOA locator). Total of 3/4 elements, depending on configuration. (: ./ : . .) It's is based on Nordic, not sure on this point. You got all this right.